- 检查当前crontab 任务是否正常
- 检查oracle JOB 是否有失败
- 监控数据量的增长情况
- 检查失效的索引
- 检查不起作用的约束
- 检查无效的trigger
[oracle@TEST backup]$ crontab -l
#每天1点exp导出hs,scott用户的对象和数据
0 1 * * * /backup/exp.sh
#每天2点删除2天前的归档日志
* 2 * * * /arch/d-archivelog.sh
#每天3点删除2天前的exp备份文件
* 3 * * * /backup/d-exp.sh
2.检查oracle JOB 是否有失败
SQL> select job,what,last_date,next_date,failures,broken from dba_jobs
2 where schema_user='CAIKE';
no rows selected
如有问题建议重建 job,如:
删除job 1,删除后在dba_jobs_running查看依然存在,
那么就是运行job的会话还在运行,需要手动去杀死会话。
exec sys.dbms_job.remove(1);
commit;
重建job 1
exec sys.dbms_job.isubmit(1,'REFRESH_ALL_SNAPSHOT;',SYSDATE+1/1440,'SYSDATE+4/1440');
commit;
DECLARE
jobno numeric;
BEGIN
dbms_job.submit(jobno,
'getAndSyncKey;',
sysdate,
'trunc(sysdate,''mi'')+1');
END;
其中第二个参数;号必须带上
字符串里有字符串的多加一个双引号 比如第四个参数
其中是getAndSyncKey存储过程或者function
sysdate表示执行开始时间
最后一个参数表示下一次执行的时间的脚本 +1一般表示加1天
3.监控数据量的增长情况
SQL> select a.tablespace_name,(1-(a.total)/(b.total))*100 used_percent
2 from
3 (select tablespace_name,sum(bytes) total from dba_free_space group by tablespace_name) a,
4 (select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) b
5 where a.tablespace_name=b.tablespace_name;
TABLESPACE_NAME USED_PERCENT
------------------------------ ------------
HSCMP_TBL_SAL 91.5
SYSAUX 94.7115385
UNDOTBS1 8.01587302
HSCMP_IDX 92.125
HSCMP_TBL_STK 11.3125
USERS 26.25
SYSTEM 98.8686709
HSCMP_TBL_LOG 4
8 rows selected.
根据本周每天的检查情况找到空间扩展快的数据库对象,并采取相应的措施。
(1)删除历史数据
移动规定数据库中至少保留6个月的历史数据,所以以前的历史数据可以考虑备份然后进行清除以便释 放所占用的资源空间。
(2)扩展空间
SQL> alter tablespace HSCMP_TBL add datafile '/u01/data/HSCMP_TBL_2.dbf' size 50M
autoextend off;
Tablespace altered.
注意:在数据库结构发生变化时,如增加了表空间,增加了数据文件或重做日志文件这些操作,都会
造成Oracle数据库控制文件的变化,DBA应及进行控制文件的备份,备份方法是:
SQL> alter database backup controlfile to '/backup/control.bak';
Database altered.
或者生成trace 这个文件在trace路径下 user_dump_test下
SQL> alter database backup controlfile to trace;
4.检查失效的索引
SQL> select index_name,table_name,tablespace_name,status from dba_indexes
2 where owner='CTAIS2' and status !='VALID';
no rows selected
注:分区表上的索引status为N/A是正常的,如有失效索引则对该索引做
rebuild ,如:
Sql> alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME;
5.检查不起作用的约束
SQL> select owner,constraint_name,table_name,constraint_type,status from dba_constraints
2 where status='DISABLE' and constraint_type='P';
no rows selected
如有失效约束则启用,如:
Sql> alter Table TABLE_NAME Enable Constraints CONSTRAINT_NAME;
6.检查无效的trigger
SQL> select owner,trigger_name,table_name,status from dba_triggers where status='DISABLED';
OWNER TRIGGER_NAME TABLE_NAME STATUS
------------------------------ ------------------------------ ----------------------------- --------
WMSYS NO_VM_DDL DISABLED
WMSYS NO_VM_DROP_A DISABLED
SYS CDC_ALTER_CTABLE_BEFORE DISABLED
SYS CDC_CREATE_CTABLE_AFTER DISABLED
SYS CDC_CREATE_CTABLE_BEFORE DISABLED
SYS CDC_DROP_CTABLE_BEFORE DISABLED
EXFSYS EXPFIL_RESTRICT_TYPEEVOLVE
如有失效触发器则启用,如:
Sql> alter Trigger TRIGGER_NAME Enable;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31419698/viewspace-2132380/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31419698/viewspace-2132380/