Oracle数据库巡检报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3.2
检查结果:正常
Buffer Nowait表示在内存获得数据的未等待比例。Buffer Nowait的这个值一般需要大于99%。否则可能存在争用,可以在后面的等待事件中进一步确认。
Redo NoWait表示在LOG缓冲区获得BUFFER的未等待比例。如果太低(可参考90%阀值),考虑增加LOG BUFFER
2.1.5
SQL>select open_mode from v$database;
检查结果:正常
2.1.6
SQL>select * from v$version;
检查结果:正常
2.1.7
SQL>select * from v$sgainfo;
SQL>select * from v$pgastat;
library hit表示Oracle从Library Cache中检索到一个解析过的SQL或PL/SQL语句的比率。如果library hit ratio低于90%,可能需要调大shared pool区。
Soft Parse:软解析的百分比(softs/softs+hards)小于<95%,需要考虑绑定,如果低于80%,那么就可以认为sql基本没有被重用
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),
检查结果:正常
若LIMIT_VALU-MAX_UTILIZATION<=5,则表明与RESOURCE_NAME相关的Oracle初始化参数需要调整。
2.3.9检查数据库连接情况
SQL> select sid,serial#,username,program,machine,status from v$session;
检查结果:正常
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
SQL>show parameter background_dump_dest
Oracle监听客户端连接进程状态的进程,输出显示为:“ora_pmon_CKDB”
Oracle进行归档的进程,输出显示为:“ora_arc0_ CKDB”
Oracle进行检查点的进程,输出显示为:“ora_ckpt_ CKDB”
Oracle进行恢复的进程,输出显示为:“ora_reco_ CKDB”
order By Percent;
检查结果:正常
2.2.2
SQL> archive log list;
检查结果:正常
2.2.3
SQL> col name for a55
SQL>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大于每秒1~2个、Hard parses大于每秒100、全部parses超过每秒300表明可能有争用问题
检查结果:正常
2.2
2.2.1
(1)查所有表空间总量:
SQL> select sum(tablespace_size * 8192 / 1024 / 1024 /1024) "totalmsize(G)" fromdba_tablespace_usage_metrics;
(2)datafile占文件系统的空间
ORDER BY 4 DESC;
(4)检查一些扩展异常的对象
SQL> select Segment_Name,Segment_Type,TableSpace_Name,
(Extents / Max_extents) * 100 Percent From sys.DBA_Segments
Where Max_Extents != 0 and (Extents / Max_extents) * 100 >= 95
FROM dba_free_space fs,
(SELECT tablespace_name,SUM(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) df
WHERE fs.tablespace_name (+) = df.tablespace_name
buffer hit表示进程从内存中找到数据块的比率。常应在95%以上。否则,小于95%,需要调整重要的参数,小于90%可能是要加db_cache_size。
In-memory Sort:在内存中排序的比率。如果低于95%,可以通过适当调大初始化参数PGA_AGGREGATE_TARGET或者SORT_AREA_SIZE来解决
Execute to Parse:是语句执行与分析的比例。该值<0通常说明shared pool设置或者语句效率存在问题,造成反复解析
Latch Hit:Latch是一种保护内存结构的锁。要确保>99%,否则存在严重的性能问题。
Parse CPU to Parse Elapsd:解析实际运行时间/(解析实际运行时间+解析中等待资源时间)越高越好。
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"
检查结果:正常
建议通过sid查到操作系统的spid,使用ps –ef|grep spidno的方式确认spid不是ORACLE的后台进程。使用操作系统的kill -9命令杀掉连接),SID为1到10(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操作。
2.3.10检查system表空间内的内容
XXX数据库【XXX】巡检报告
1
1.1
# top
检查结果:正常
1.2
(1)检查所有oracle相关进程
# ps -ef|grep ora_
(2)查看是否有僵死进程
SQL>select spid from v$process where addr not in (select paddr from v$session);
NOT IN ('SYS', 'SYSTEM') GROUP BY segment_name HAVING COUNT(*)=(SELECT MAX(COUNT(*)) FROM dba_segments GROUP BY segment_name);
检查结果:正常
2.3.6检查排序区
SQL> select name,value from v$sysstat where name like '%sort%';
检查结果:正常
如果disk/(memoty+roቤተ መጻሕፍቲ ባይዱ)的比例过高,则需要调整
2.3.7检查日志缓冲区
SQL> select name,value from v$sysstat where name in ('redo entries','redo buffer allocation 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;
Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1),
Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes)
FROM dba_temp_files fs,
(SELECT tablespace_name,bytes_free,bytes_used
2
2.1
2.1.1
# cat /home/oracle/.profile
检查结果:正常
2.1.2
$ lsnrctl status
检查结果:正常
2.1.3
SQL> show parameter
检查结果:正常
2.1.4
SQL> select status from v$instance;
检查结果:正常
其中"STATUS"表示Oracle当前的实例状态,必须为"OPEN";"DATABASE_STATUS"表示Oracle当前数据库的状态,必须为"ACTIVE"。
Non-Parse CPU :SQL实际运行时间/(SQL实际运行时间+SQL解析时间),太低表示解析消耗时间过多
2.3.3
检查结果:正常
一个性能良好的系统,cpu time应该在top 5的前面,否则说明你的系统大部分时间都用在等待上。
2.3.4
SQL> col OBJECT_NAME for a35
检查结果:正常
在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程:
Oracle写数据文件的进程,输出显示为:“ora_dbw0_CKDB”
Oracle写日志文件的进程,输出显示为:“ora_lgwr_ CKDB”
Oracle监听实例状态的进程,输出显示为:“ora_smon_ CKDB”
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
SQL> select distinct(owner) from 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';
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)",
SQL> SELECT owner, 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 owner
$ tail -1000 alert_实例名.log
检查结果:正常
查看有无“ORA-”,Error”,“Failed”等出错信息。根据错误信息进行分析并解决
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';
相关文档
最新文档