Oracle数据库日常检查文档

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-600ORA-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';

检查结果

正常    □异常

备注

 检查失效原因

 

 

请使用浏览器的分享功能分享到微信等