数据库巡检报告_第1页
数据库巡检报告_第2页
数据库巡检报告_第3页
数据库巡检报告_第4页
数据库巡检报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、XXX数据库【XXX】巡检报告1 第一部分操作系统参数检查21.1 检查数据库cpu、I/O、内存性能21.2 检查Oracle服务进程22 第二部分Oracle数据库检查22.1 数据库状态22.1.1 检查oracle环境变量22.1.2 检查监听状态32.1.3 查看Oracle初始化参数32.1.4 检查Oracle的实例状态32.1.5 检查数据库读写状态32.1.6 查看oracle数据库的版本32.1.7 查看sga、pga详细信息32.1.8 检查控制文件状态42.1.9 检查日志文件状态42.1.10 检查alter日志42.1.11 检查当前crontab任务42.2 数据

2、库空间监控42.2.1 检查数据库的大小,和空间使用情况42.2.2 查看数据库是否处于归档模式62.2.3 检查表空间物理文件的名称及大小62.2.4 数据库数据文件等所在目录使用情况62.3 数据库性能、资源、对象检查62.3.1 负载情况(Load Profile)62.3.2数据库内存命中率(Instance Efficiency Percentages (Target 100%))62.3.3监控等待事件(Top 5 Timed Events )62.3.4检查无效的数据对象72.3.5检查碎片程度高的表72.3.6 检查排序区72.3.7 检查日志缓冲区72.3.8 检查Oracl

3、e初始化文件中相关参数值72.3.9 检查数据库连接情况72.3.10 检查system表空间内的内容82.3.11 检查表空间碎片率82.3.12 检查死锁82.4 数据库备份检查82.4.1 检查数据库备份日志信息82.4.2 检查backup卷中文件产生的时间92.4.3检查oracle用户的email93 第三部分总结91 第一部分操作系统参数检查1.1 检查数据库cpu、I/O、内存性能# top检查结果: 正常1.2 检查Oracle服务进程(1)检查所有oracle相关进程# ps -ef|grep ora_(2)查看是否有僵死进程SQL> select spid from

4、 v$process where addr not in (select paddr from v$session); 检查结果: 正常在检查 Oracle 的进程命令输出后,输出显示至少应包括以下一些进程:Oracle 写数据文件的进程,输出显示为:“ora_dbw0_CKDB”Oracle 写日志文件的进程,输出显示为:“ora_lgwr_ CKDB”Oracle 监听实例状态的进程,输出显示为:“ora_smon_ CKDB”Oracle 监听客户端连接进程状态的进程,输出显示为:“ora_pmon_CKDB”Oracle 进行归档的进程,输出显示为:“ora_arc0_ CKDB”Or

5、acle 进行检查点的进程,输出显示为:“ora_ckpt_ CKDB”Oracle 进行恢复的进程,输出显示为:“ora_reco_ CKDB”2 第二部分Oracle数据库检查2.1 数据库状态2.1.1 检查oracle环境变量# cat /home/oracle/.profile检查结果: 正常2.1.2 检查监听状态$ lsnrctl status检查结果: 正常2.1.3 查看Oracle初始化参数SQL> show parameter检查结果: 正常2.1.4 检查Oracle的实例状态SQL> select status from v$instance;检查结果:

6、正常其中"STATUS"表示Oracle当前的实例状态,必须为"OPEN";"DATABASE_STATUS"表示Oracle当前数据库的状态,必须为"ACTIVE"。2.1.5 检查数据库读写状态SQL> select open_mode from v$database;检查结果: 正常2.1.6 查看oracle数据库的版本SQL> select * from v$version; 检查结果:正常2.1.7 查看sga、pga详细信息SQL> select * from v$sgainfo;S

7、QL> select * from v$pgastat;检查结果:正常2.1.8 检查控制文件状态SQL> select name,status from v$controlfile;检查结果:正常2.1.9 检查日志文件状态SQL> select group#,status,type,member from v$logfile; 检查结果:正常2.1.10 检查alter日志SQL> show parameter background_dump_dest$ tail -1000 alert_实例名.log检查结果:正常查看有无“ORA-”,Error”,“Failed

8、”等出错信息。根据错误信息进行分析并解决2.1.11 检查当前crontab任务(1)任务清单$ crontab -l(2)Oracle Job是否有失败SQL> select job,what,last_date,next_date,failures,broken from dba_jobs Where schema_user='CAIKE'检查结果:正常2.2 数据库空间监控2.2.1 检查数据库的大小,和空间使用情况(1)查所有表空间总量:SQL> select sum(tablespace_size * 8192 / 1024 / 1024 /1024) &

9、quot;totalmsize(G)" from dba_tablespace_usage_metrics;(2)datafile占文件系统的空间SQL> select sum(bytes)/1024/1024/1024 GB from dba_data_files;(3)查所有表空间使用量(11g) SQL> SELECT /* + RULE */ df.tablespace_name "Tablespace", df.bytes / (1024 * 1024) "Size (MB)", SUM(fs.bytes) / (1024

10、 * 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_name) df WHERE fs.tablespace_n

11、ame (+) = 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) - df.bytes_free) * 100 / fs.byt

12、es) 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 WHERE fs.tablespace_name (+) = df.tablespace_name GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used ORDER BY 4 DESC; (4)检查一些扩展异常的对象SQL&

13、gt; select Segment_Name,Segment_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 查看数据库是否处于归档模式SQL> archive log list;检查结果:正常2.2.3 检查表空间物理文件的名称及大小SQL> col name for a55SQ

14、L> select file#,ts#,status,name from v$datafile;检查结果:正常2.2.4 数据库数据文件等所在目录使用情况# df -h检查结果:正常2.3 数据库性能、资源、对象检查2.3.1 负载情况(Load Profile)生成awr报告SQL> ?/rdbms/admin/awrrpt 检查结果:正常如果DBtime远小于elapse说明数据库比较空闲如果Logons大于每秒12个、Hard parses大于每秒100、全部parses超过每秒300表明可能有争用问题数据库内存命中率(Instance Efficiency Percenta

15、ges (Target 100%))检查结果:正常Buffer Nowait表示在内存获得数据的未等待比例。Buffer Nowait的这个值一般需要大于99%。否则可能存在争用,可以在后面的等待事件中进一步确认。Redo NoWait表示在LOG缓冲区获得BUFFER的未等待比例。如果太低(可参考90%阀值),考虑增加LOG BUFFERbuffer hit表示进程从内存中找到数据块的比率。常应在95%以上。否则,小于95%,需要调整重要的参数,小于90%可能是要加db_cache_size。In-memory Sort:在内存中排序的比率。如果低于95%,可以通过适当调大初始化参数PGA_

16、AGGREGATE_TARGET或者SORT_AREA_SIZE来解决library hit表示Oracle从Library Cache中检索到一个解析过的SQL或PL/SQL语句的比率。如果library hit ratio低于90%,可能需要调大shared pool区。Soft Parse:软解析的百分比(softs/softs+hards)小于<95%,需要考虑绑定,如果低于80%,那么就可以认为sql基本没有被重用Execute to Parse:是语句执行与分析的比例。该值<0通常说明shared pool设置或者语句效率存在问题,造成反复解析Latch Hit:Lat

17、ch是一种保护内存结构的锁。要确保>99%,否则存在严重的性能问题。Parse CPU to Parse Elapsd:解析实际运行时间/(解析实际运行时间+解析中等待资源时间)越高越好。Non-Parse CPU :SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多监控等待事件(Top 5 Timed Events )检查结果:正常一个性能良好的系统,cpu time应该在top 5的前面,否则说明你的系统大部分时间都用在等待上。检查无效的数据对象SQL> col OBJECT_NAME for a35SQL> SELECT owner,

18、object_name, object_type,status FROM dba_objects WHERE status = 'INVALID' 检查结果: 正常如存在状态为N/A的表示分区对象,不用理会2.3.5检查碎片程度高的表SQL> SELECT segment_name table_name,COUNT(*) extents FROM dba_segments WHERE ownerNOT IN ('SYS', 'SYSTEM') GROUP BY segment_name HAVING COUNT(*)=(SELECT MAX

19、(COUNT(*) FROM dba_segments GROUP BY segment_name);检查结果:正常2.3.6 检查排序区SQL> select name,value from v$sysstat where name like '%sort%'检查结果:正常如果disk/(memoty+row) 的比例过高,则需要调整2.3.7 检查日志缓冲区SQL> select name,value from v$sysstat where name in ('redo entries','redo buffer allocation

20、retries');检查结果:正常如果 redo buffer allocation retries/redo entries 超过 1% ,则需要增大 log_buffer。2.3.8 检查Oracle初始化文件中相关参数值SQL> select resource_name,max_utilization,initial_allocation, limit_value from v$resource_limit;检查结果:正常若 LIMIT_VALU-MAX_UTILIZATION<=5,则表明与 RESOURCE_NAME 相关的Oracle 初始化参数需要调整。2.3

21、.9 检查数据库连接情况SQL> select sid,serial#,username,program,machine,status from v$session;检查结果:正常建议通过 sid 查到操作系统的 spid,使用 ps ef|grep spidno 的方式确认 spid 不是ORACLE 的后台进程。使用操作系统的 kill -9 命令杀掉连接),SID 为 1 到10(USERNAME 列为空)的会话,是 Oracle 的后台进程,不要对这些会话进行任何操作。2.3.10 检查system表空间内的内容SQL> select distinct(owner) fro

22、m dba_tables where tablespace_name='SYSTEM' and owner!='SYS' and owner!='SYSTEM' Union select distinct(owner) from dba_indexes where tablespace_name='SYSTEM' and owner!='SYS' and owner!='SYSTEM'检查结果:正常如果记录返回,则表明 system 表空间内存在一些非 system 和 sys 用户的对象。应该进一

23、步检查这些对象是否与我们应用相关。如果相关则把这些对象移到非 System 表空间,同时应该检查这些对象属主的缺省表空间值。2.3.11 检查表空间碎片率(1)查看fsfi值,如果碎片率小于30则说明碎片过多SQL> select a.tablespace_name,trunc(sqrt(max(blocks)/sum(blocks)* (100/sqrt(sqrt(count(blocks),2) fsfi from dba_free_space a,dba_tablespaces bwhere a.tablespace_name=b.tablespace_nameand b.contents not in('TEMPORARY','UNDO','SYSAUX')group by A.tabl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论