其他检查
在本节主要检查当前 crontab 任务是否正常,检查 Oracle Job 是否有失败等共六个部分。
1 检查当前 crontab 任务是否正常
oracle$ crontab -l
2 Oracle Job 是否有失败
select
job,what,last_date,next_date,failures,broken
from
dba_jobs
Where
schema_user='CAIKE';
如有问题建议重建 job,如:
exec sys.dbms_job.remove(1);
commit;
exec sys.dbms_job.isubmit(1,'REFRESH_ALL_SNAPSHOT;',SYSDATE+1/1440,'SYSDATE+4/1440');
commit;
3. 监控数据量的增长情况
select
A.tablespace_name, (1 - (A.total) / B.total) * 100 used_percent
from
(select
tablespace_name, sum(bytes) total
from
dba_free_space
group by
tablespace_name) A,
(select
tablespace_name, sum(bytes) total
from
dba_data_files
group by
tablespace_name) B
where
A.tablespace_name = B.tablespace_name;
根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施:
删除历史数据
移动规定数据库中至少保留 6 个月的历史数据,所以以前的历史数据可以考虑备份然后进行清除以便释放其所占的资源空间。
扩表空间
alter tablespace add datafile '' size autoextend off;
备份方法是:
执行SQL语句:
alter database backup controlfile to '/home/backup/control.bak';
或:
alter database backup controlfile to trace;
这样,会在 USER_DUMP_DEST (初始化参数文件中指定)目录下生成创建控制文件的 SQL 命令。
4. 检查失效的索引
select
index_name, table_name, tablespace_name, status,owner
From
dba_indexes
Where
status <> 'VALID';
alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME;
5. 检查不起作用的约束
SELECT
owner, constraint_name, table_name, constraint_type, status
FROM
dba_constraints
WHERE
status = 'DISABLE'
and constraint_type = 'P';
如有失效约束则启用,如:
alter Table TABLE_NAME Enable Constraints CONSTRAINT_NAME;
6. 检查无效的trigger
SELECT
owner, trigger_name, table_name, status
FROM
dba_triggers
WHERE
status = 'DISABLED';
如有失效触发器则启用,如:
alter Trigger TRIGGER_NAME Enable;