1、Oracle 进行归档的进程,输出显示为:“ora_arc0_ CKDB”Oracle 进行检查点的进程,输出显示为:“ora_ckpt_ CKDB”Oracle 进行恢复的进程,输出显示为:“ora_reco_ CKDB”2第二部分 Oracle数据库检查2.1数据库状态2.1.1检查oracle环境变量# cat /home/oracle/.profile2.1.2检查监听状态$ lsnrctl status2.1.3查看Oracle初始化参数 show parameter2.1.4检查Oracle的实例状态 select status from v$instance;其中STATUS表示
2、Oracle当前的实例状态,必须为OPEN;DATABASE_STATUS表示Oracle当前数据库的状态,必须为ACTIVE。2.1.5检查数据库读写状态 select open_mode from v$database;2.1.6查看oracle数据库的版本 select * from v$version;检查结果:正常2.1.7查看sga、pga详细信息 select * from v$sgainfo; select * from v$pgastat;2.1.8检查控制文件状态 select name,status from v$controlfile;2.1.9检查日志文件状态 sel
3、ect group#,status,type,member from v$logfile;2.1.10检查alter日志 show parameter background_dump_dest$ tail -1000 alert_实例名.log查看有无“ORA-”,Error”,“Failed”等出错信息。根据错误信息进行分析并解决2.1.11 检查当前crontab任务(1)任务清单$ crontab -l(2)Oracle Job是否有失败 select job,what,last_date,next_date,failures,broken from dba_jobs Where sch
4、ema_user=CAIKE;2.2数据库空间监控2.2.1检查数据库的大小,和空间使用情况(1)查所有表空间总量: select sum(tablespace_size * 8192 / 1024 / 1024 /1024) totalmsize(G) from dba_tablespace_usage_metrics;(2)datafile占文件系统的空间 select sum(bytes)/1024/1024/1024 GB from dba_data_files;(3)查所有表空间使用量(11g) SQL SELECT /* + RULE */ df.tablespace_name T
5、ablespace, df.bytes / (1024 * 1024) Size (MB) SUM(fs.bytes) / (1024 * 1024) Free (MB) Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) % Free Round(df.bytes - SUM(fs.bytes) * 100 / df.bytes) % Used FROM dba_free_space fs, (SELECT tablespace_name,SUM(bytes) bytes FROM dba_data_files GROUP BY tablespace_n
6、ame) df WHERE fs.tablespace_name (+) = df.tablespace_name GROUP BY df.tablespace_name,df.bytes UNION ALL SELECT /* + RULE */ df.tablespace_name tspace, fs.bytes / (1024 * 1024), SUM(df.bytes_free) / (1024 * 1024), Nvl(Round(SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1), Round(SUM(fs.bytes) -
7、df.bytes_free) * 100 / fs.bytes) FROM dba_temp_files fs, (SELECT tablespace_name,bytes_free,bytes_used FROM v$temp_space_header GROUP BY tablespace_name,bytes_free,bytes_used) df GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used ORDER BY 4 DESC;(4)检查一些扩展异常的对象 select Segment_Name,Segme
8、nt_Type,TableSpace_Name, (Extents / Max_extents) * 100 Percent From sys.DBA_SegmentsWhere Max_Extents != 0 and (Extents / Max_extents) * 100 = 95order By Percent;2.2.2 查看数据库是否处于归档模式 archive log list;2.2.3 检查表空间物理文件的名称及大小 col name for a55 select file#,ts#,status,name from v$datafile; 2.2.4 数据库数据文件等所在
9、目录使用情况# df -h2.3数据库性能、资源、对象检查2.3.1 负载情况(Load Profile)生成awr报告 ?/rdbms/admin/awrrpt 如果DBtime远小于elapse说明数据库比较空闲如果Logons大于每秒12个、Hard parses大于每秒100、全部parses超过每秒300表明可能有争用问题2.3.2数据库内存命中率(Instance Efficiency Percentages (Target 100%)Buffer Nowait表示在内存获得数据的未等待比例。Buffer Nowait的这个值一般需要大于99%。否则可能存在争用,可以在后面的等待事
10、件中进一步确认。Redo NoWait表示在LOG缓冲区获得BUFFER的未等待比例。如果太低(可参考90%阀值),考虑增加LOG BUFFERbuffer hit表示进程从内存中找到数据块的比率。常应在95%以上。否则,小于95%,需要调整重要的参数,小于90%可能是要加db_cache_size。In-memory Sort:在内存中排序的比率。如果低于95%,可以通过适当调大初始化参数PGA_AGGREGATE_TARGET或者SORT_AREA_SIZE来解决library hit表示Oracle从Library Cache中检索到一个解析过的SQL或PL/SQL语句的比率。如果lib
11、rary hit ratio低于90%,可能需要调大shared pool区。Soft Parse:软解析的百分比(softs/softs+hards)小于95%,需要考虑绑定,如果低于80%,那么就可以认为sql基本没有被重用Execute to Parse:是语句执行与分析的比例。该值99%,否则存在严重的性能问题。Parse CPU to Parse Elapsd:解析实际运行时间/(解析实际运行时间+解析中等待资源时间)越高越好。Non-Parse CPU :SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多2.3.3监控等待事件(Top 5 Time
12、d Events )一个性能良好的系统,cpu time应该在top 5的前面,否则说明你的系统大部分时间都用在等待上。2.3.4检查无效的数据对象 col OBJECT_NAME for a35 SELECT owner, object_name, object_type,status FROM dba_objects WHERE status = INVALID如存在状态为N/A的表示分区对象,不用理会2.3.5检查碎片程度高的表 SELECT segment_name table_name,COUNT(*) extents FROM dba_segments WHERE ownerNOT
13、 IN (SYS, SYSTEM) GROUP BY segment_name HAVING COUNT(*)=(SELECT MAX(COUNT(*) FROM dba_segments GROUP BY segment_name);2.3.6 检查排序区 select name,value from v$sysstat where name like %sort%如果disk/(memoty+row) 的比例过高,则需要调整2.3.7 检查日志缓冲区 select name,value from v$sysstat where name in (redo entries,redo buff
14、er allocation retries);如果 redo buffer allocation retries/redo entries 超过 1% ,则需要增大 log_buffer。2.3.8 检查Oracle初始化文件中相关参数值 select resource_name,max_utilization,initial_allocation, limit_value from v$resource_limit;若 LIMIT_VALU-MAX_UTILIZATION20order by 2;2.3.12 检查死锁 select sid,serial#,username,SCHEMANA
15、ME,osuser,MACHINE,terminal,PROGRAM,owner,object_name,object_type,o.object_idfrom dba_objects o, v$locked_object l, v$session s where o.object_id = l.object_id and s.sid = l.session_id;2.4数据库备份检查2.4.1 检查数据库备份日志信息# cat XX.log|grep i error2.4.2 检查backup卷中文件产生的时间# ls lt /XXX/XXX2.4.3检查oracle用户的email# tail -n 300 /var/mail/oracle3第三部分 总结
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2