数据库日常监控管理
1、 缓冲区命中率
显示了对于数据总读取量而言,非磁盘读取(缓冲区命中)的百分比。十分高的命中率并不代表数据库性能一定优良,也有可能是糟糕的SQL引起了大量的缓冲区读操作,只有在已经调整过首要的查询之后,这个命中率才能更好地反映数据库性能。
检查方法:
select (1- (sum(decode(name, 'physical reads', value, 0))/(sum(decode(name, 'dbblock gets', value, 0))+sum(decode(name, 'consistent gets', value, 0))))) * 100 "Hit Ratio" from v$sysstat;
2、 数据字典命中率
显示了对数据字典和其它对象的内存读操作的百分比。
检查方法:
select (1 - (sum(getmisses) / sum(gets))) * 100 "Hit Ratio" from v$rowcache;
3、 检查点情况
在数据库打开并运行之后,控制文件中的系统检查点、控制文件中的数据文件检查点scn和每个数据文件头中的启动scn都是相同的。控制文件中的每个数据文件的终止scn都为null。
检查方法:
select * from x$kccrt;
select * from v$datafile;
select * from v$log;
4、 在线日志效率
数据库繁忙时4-5分钟切换一次,如切换过于频繁,则检查IO瓶颈,需根据情况增大在线日志的大小。
检查方法:
select * from v$log_history;
5、 归档日志效率
归档日志是在线日志的备份,对系统性能影响一般不大。
检查方法:
select * from v$archived_log;
6、 归档日志空间
需保留足够的归档日志空间保存归档日志。
检查方法(操作系统):
df –k
7、 事务回滚率
事务回滚率越高系统所需资源越大。
检查方法:
select round((select value from v$sysstat where name='user rollbacks')*100/((select value from v$sysstat where name='user commits')+(select value from v$sysstat where name='transaction rollbacks')),4) || '%' as "Rollback p%" from dual;
8、 监听器状况
查看监听是否正常
检查方法:
lsnrctl status
9、 实例状况
检查实例是否正常
检查方法:
Sqlplus “/ as sysdba”
>show sga
10、 表空间使用状况
检查方法:
select A.tablespace_name,a.total free,b.total alltbs,(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;
11、 警告日志
检查方法:
$cat $ORACLE_BASE/admin/ORCL/bdump/