高效查看数据库基本情况Oracle日常巡检此外,定期对数据库进行“体检”也是很有必要的。数据库巡检是保证数据库稳定运行不可或缺的辅助手段。本文将简要介绍检查Oracle数据库的几个方面和方法。一、查看数据库的基本状态1、查看Oracle实例的状态SQL>selectinstance_name,host_name,startup_time,status,database_statusfromv$instance;“STATUS”表示Oracle当前实例状态,必须为“OPEN”;“DATABASE_STATUS”表示当前Oracle数据库的状态,必须是“ACTIVE”。SQL>selectname,log_mode,open_modefromv$database;其中“LOG_MODE”表示Oracle当前的归档模式;“ARCHIVELOG”表示数据库运行在归档模式;“NOARCHIVELOG”表示数据库在非归档模式下运行。在我们的系统中,数据库必须以存档模式运行。2、查看oracle服务进程$ps-ef|grepora_|grep-vgrep&&ps-ef|grepora_|grep-vgrep|wc–l查看oracle进程命令的输出后,输出显示至少有以下几个进程应该包括:Oracle写数据文件输出显示为:"oradbw0CKDB"Oracle写日志文件的过程,输出显示为:"oralgwrCKDB"Oracle监控实例状态的过程,输出显示为:“orasmonCKDB”。Oracle监控客户端连接进程状态的进程,输出显示为:"orapmonCKDB"Oracle的归档进程,输出显示为:"oraarc0CKDB"Oracle的检查点进程,输出显示为:"orackptCKDB"。Oracle的恢复过程,输出显示为:“orarecoCKDB”3.查看Oracle的监控状态。lsnrctlstatus"ServicesSummary"项表示哪些数据库实例正在被Oracle监控进程监控。查看监听进程是否存在:ps-ef|greplsn|grep-vgreporacle295410May07?00:01:17/data/oracle/product/11.2.0/bin/tnslsnrLISTENER–inherit2.查看系统和Oracle日志文件查看相关日志files主要包括:查看操作系统日志文件查看Oracle日志文件查看Oraclecoredump目录查看root用户和oracle用户的邮件,共四部分。1、查看操作系统日志文件#cat/var/log/messages|grepfailed,看是否有Oracle用户相关的错误信息。2、查看Oracle日志文件$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.log|grepora-$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.log|greperr$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.log|grepfail会在oracle运行的时候将数据库的一些运行情况记录在warninglog文件中,定期查看这个文件可以知道数据库的运行状态是否异常。3.检查Oraclecoredump目录$ls$ORACLE_BASE/admin/CKDB/cdump/*.trc|wc-l$ls$ORACLE_BASE/admin/CKDB/udump/*.trc|wc-l如果是上面的结果命令是daily两者都在增加,这意味着Oracle进程经常发生coredumps。这表明某些用户进程或数据库后台进程由于无法处理的原因而异常退出。频繁的核心转储,尤其是数据库后台进程的核心转储,会导致数据库异常终止。4、查看root用户和oracle用户的email#tail–n200/var/mail/root#tail–n200/var/mail/oracle,是否有与oracle用户相关的错误信息。3、查看oracle对象状态主要查看相关oracle对象状态,包括:查看oracle控制文件状态查看oracle在线日志状态查看oracle表空间状态查看所有oracle数据文件状态查看状态Oracle所有表、索引、存储过程、触发器、包等对象的状态。查看所有Oracle回滚段的状态,共六部分。1、查看控制文件状态SQL>selectstatus,namefromv$controlfile;输出结果“STATUS”应该是空的。状态为空表示控制文件状态正常。2、查看在线日志文件状态SQL>selectgroup#,status,type,memberfromv$logfile;输出结果“STATUS”不应为“INVALID”或“DELETED”。注意:“STATUS”显示为空表示正常。3.查看表空间的状态SQL>selecttablespace_name,statusfromdba_tablespaces;输出中的STATUS应该都是ONLINE。4、查看所有数据文件的状态SQL>selectname,statusfromv$datafile;输出中的“STATUS”应该是“ONLINE”或“AVAILABLE”5.检查无效对象记录返回,这意味着有一个无效的对象。如果这些对象与应用程序相关,则需要重新编译生成该对象。
