您所在位置:网站首页 > 海量文档
 > 计算机 > 数据库
ORACLE紧急情况检查应急预案.doc9页
本文档一共被下载:次,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
数据库紧急情况检查应急预案
第一章、公共检查部分2
1.1、数据库可用性检查2
1.2、检查OS日志2
1.3、系统资源检查2
1.4、数据库日志检查3
1.5、检查数据库归档日志目录3
第二章、数据库个别业务性能问题3
2.1、大部分业务基本正常,个别业务长时间执行未成功3
2.2、单个ORACLE连接进程持续非常繁忙4
第三章、数据库整体性能问题5
3.1 等待事件5
3.2 获取STATSPACK\AWR报告5
3.3 获取执行计划5
3.4 相应的处理建议6
第四章、整个数据库hang6
4.1不能使用sqlplus / as sysdba进入数据库时6
4.2能使用sqlplus / as sysdba进入数据库时6
4.3 执行RDA收集信息7
4.4 收集最近的STATSPACK/AWR报告7
4.5 收集10G ASH报告8
4.6 收集10GR2的CRS信息8
公共检查部分
1.1、数据库可用性检查
分别尝试从pl/sql开发工具和数据库主机登录数据库看能否登录
oracle用户登录后,执行如下操作:
select object_id from dba_objects where rownum < 5;
create table tmp0001 select object_id from dba_objects where rownum < 5;
drop table tmp0001;
select * from dba_2pc_pending;
1)如果以上SQL可顺利快速执行,最后的SQL也没有返回被挂起的两阶段提交事务,说明数据库不是阻塞所有业务的原因
2)如果以上SQL执行非常缓慢或被HANG住,表明当前数据库存在问题
3)如果应用、中间件日志中有数据库方面的报错,根据错误号进行分析
1.2、检查OS日志
查看OS日志,看是否有相应的报错。
根据不同的平台选择以下命令查看
LINUX:vi /var/log/message
AIX:errpt、mail
HPUX:vi /var/adm/syslog/syslog.log、dmesg 、mail
1.3、系统资源检查
LINUX下使用top/iostat/vmstat 等命令;AIX下使用TOPAS/vmstat/lsps –a/sar 等命令;HPUX下使用top /glance/vmstat/swapinfo –atm/sar等命令,查看当前CPU/mem/swap的占用情况
1)如果CPU有超过平常很高的WIO
2)如果user很高,查看top cpu占用的进程是否为oracle进程
如果是oracle后台进程CPU占用高,则联系ORACLE驻场工程师协助判断是否碰到了某个已知的BUG
如果是oracle连接进程CPU占用高,执行$ORACLE_BASE/sql/get_by_spid.sh获得高CPU进程正在执行的语句和相应的执行计划
3)如果MEM很低,SWAP区page out很频繁,需要联系系统管理员检查内存情况,如是否出现异常的memory leak。同时针对ORACLE检查以下情况
连接数 v$session 根据status/machine/program/username分组统计(group by),与应用一起分析连接数异常的原因。
获得占用高MEMORY的oracle进程,执行$ORACLE_BASE/sql/pga_sid.sql获得该进程PGA的内存使用情况,执行$ORACLE_BASE/sql/get_by_spid.sh获得高CPU进程正在执行的语句和相应的执行计划。
1.4、数据库日志检查
执行$ORACLE_BASE/sql/oracle_health_check.sql查看数据库alert日志/UDUMP/BDUMP是否有异常信息,如ORA-报错,此前没有或很少出现的警告提示信息.如果检查到报错信息,根据报错情况进行分析和采取相应的处理办法。
1.5、检查数据库归档日志目录
1)切换频率是否正常/目录权限及使用率
2)如果数据库日志长时间没有写入信息,没有日志切换,可能数据库已经处于挂起的状态(此时须先排除归档太大占空间100%问题)
数据库个别业务性能问题
2.1、大部分业务基本正常,个别业务长时间执行未成功
2.1.1、 根据应用的pid、sid等信息,找到数据库中对应的session、SQL。得到该SQL的执行计划。
1)执行$ORACLE_BASE/sql/show_spid.sql即可根据SID快速获取操作系统进行号spid的信息;
2)执行$ORACLE_BASE/sql/get_by_spi
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名:
验证码:
匿名?
发表评论