Oracle数据库日常检查文档
内容 |
数据库状态检查 |
检查方法 |
select status,database_status from v$instance; |
检查结果 |
□正常 □异常 |
备注 |
--返回结果是:OPEN ACTIVE属正常 |
| |
内容 |
表空间使用情况 |
检查方法 |
SELECT D.TABLESPACE_NAME,FILE_NAME "FILE_NAME",SPACE "SUM_SPACE(M)",SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)", ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",AUTOEXTENSIBLE FROM (SELECT FILE_ID,FILE_NAME,TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME,FILE_ID,FILE_NAME) D, (SELECT FILE_ID,TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME,FILE_ID) E, (SELECT FILE_ID,AUTOEXTENSIBLE FROM DBA_DATA_FILES) F WHERE D.TABLESPACE_NAME = E.TABLESPACE_NAME(+) AND D.FILE_ID = E.FILE_ID(+) AND D.FILE_ID = F.FILE_ID(+) UNION ALL --if have tempfile SELECT D.TABLESPACE_NAME,FILE_NAME "FILE_NAME",SPACE "SUM_SPACE(M)", USED_SPACE "USED_SPACE(M)", ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)",AUTOEXTENSIBLE FROM (SELECT FILE_ID,FILE_NAME,TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS FROM DBA_TEMP_FILES GROUP BY TABLESPACE_NAME,FILE_ID,FILE_NAME) D, (SELECT FILE_ID,TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE, ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE FROM V$TEMP_SPACE_HEADER GROUP BY TABLESPACE_NAME,FILE_ID) E, (SELECT FILE_ID,AUTOEXTENSIBLE FROM DBA_TEMP_FILES) F WHERE D.TABLESPACE_NAME = E.TABLESPACE_NAME(+) AND D.FILE_ID = E.FILE_ID(+) AND D.FILE_ID = F.FILE_ID(+) ORDER BY TABLESPACE_NAME,FILE_NAME; |
检查结果 |
□正常 □异常 |
备注 |
--如果发现用户表空间使用超过85%,马上报告 |
| |
内容 |
alert_SID.log文件 |
检查方法 |
检查alert_SID.log有无报错信息(ORA-600、ORA-1578) $oracle_home\admin\orcl\bdump\alert_orcl.log |
检查结果 |
□正常 □异常 |
备注 |
如果无法登陆数据库所在服务器,这步可忽略 |
| |
内容 |
备份文件是否正常 |
检查方法 |
检查文件大小及生成日期 检查export的日志文件 |
检查结果 |
□正常 □异常 |
备注 |
我们在本地数据库每天都做一些dmp备份,注意检查备份的自动执行情况。 |
| |
内容 |
锁与等待 |
检查方法 |
SELECT /*+ rule */ lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name, o.owner,o.object_name,o.object_type,s.sid,s.serial# FROM v$locked_object l,dba_objects o,v$session s WHERE l.object_id=o.object_id AND l.session_id=s.sid ORDER BY o.object_id,xidusn DESC; |
检查结果 |
□正常 □异常 |
备注 |
发现并报告锁与等待的对象 |
| |
内容 |
数据库是否有失效的约束 |
检查方法 |
SELECT OWNER,CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME FROM DBA_CONSTRAINTS WHERE owner not in ('SYS','SYSTEM') and STATUS='DISABLED'; |
检查结果 |
□正常 □异常 |
备注 |
|
| |
内容 |
数据库是否有失效的触发器 |
检查方法 |
SELECT OWNER,TRIGGER_NAME,TRIGGER_TYPE FROM DBA_TRIGGERS WHERE owner not in ('SYS','SYSTEM') and STATUS='DISABLED'; |
检查结果 |
□正常 □异常 |
备注 |
|
| |
内容 |
检查是否有失效的索引 |
检查方法 |
select index_name, owner, table_name, tablespace_name from dba_indexes where owner not in ('SYS','SYSTEM') and status != 'VALID'; |
检查结果 |
□正常 □异常 |
备注 |
|
| |
内容 |
检查是否有无效的对象 |
检查方法 |
select object_name, object_type, owner, status from dba_objects where status !='VALID' and owner not in ('SYS','SYSTEM') and object_type in ('TRIGGER','VIEW','PROCEDURE','FUNCTION'); |
检查结果 |
□正常 □异常 |
备注 |
如果存在无效的对象,手工重新编译一下。 |
| |
内容 |
检查有无运行失败的JOB |
检查方法 |
select job, this_date, this_sec, next_date, next_sec, failures, what from dba_jobs where NVL(failures,'0')<>'0'; |
检查结果 |
□正常 □异常 |
备注 |
检查失效原因 |
|