资源描述:
《数据库日常运维及应急故障处理手册.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、常见问题及处理方案CPU使用率高的问题通过操作系统命令toptopasglance等查看top进程号,确认是系统进程还是oracle应用进程,查询当前top进程执行的操作和sql语句进行分析。根据进程号获取正在执行的sqlSELECTa.osuser,a.username,b.address,b.hash_value,b.sql_textfromv$sessiona,v$sqltextb,v$processpwherep.spid=&spidandp.addr=a.paddranda.STATUS='ACTIVE'anda.sql_address=b.addressorderb
2、yaddress,piece;数据库无法连接数据库无法连接,一般可能是如下原因造成:(1)数据库宕了(2)监听异常(3)数据库挂起(4)归档目录满(5)数据库或应用主机的网卡出现问题不能正常工作(6)应用主机到数据库主机的网络出现问题。1、数据库宕了立即启动数据库。2、监听异常此时一般体现为:监听进程占用CPU资源大;监听日志异常。此时,立即重启监听,监听重启一般能在1分钟之内完成。3、数据库挂起立即重启数据库。4、归档目录满(1)在没有部署OGG数据同步的情况下,立即清理归档日志文件。(2)如果部署了OGG数据同步,查看OGG正在读取的归档日志文件,立即清理OGG不再需要的日
3、志文件。5、数据库或应用主机的网卡出现问题不能正常工作。立即联系主机工程师处理。6、应用主机到数据库主机的网络出现问题。立即联系网络维护人员查看。数据库hang住应急处理方式:重启数据库。常规处理方式:(1)分析alert日志,看是否能从alert日志中,可以很快找到引起问题的原因。(2)做3级别的hanganalyze,先做一次,然后隔一分钟以后再做一次。并分析hanganalyze生成的trace文件,看是否可以找到引起数据库hang住的会话的信息。(3)做systemstatedump此时生成systemstatedump的时间会比较长,尤其是在会话数量较多的情况下。且生
4、成dump文件的大小较大,在G级别以上。在生成一次以后,过一分钟再收集一次,另外如果是RAC,那么两个节点都需要收集。对hang做dump请参考“对数据库HANG做DUMP一章”。数据误删除此问题,没有应急办法,只能按如下步骤处理:1、对于10g及以上版本,看是否可以通过闪回进行恢复。2、查看测试环境数据库,看其中是否有需要的数据。3、使用备份进行恢复,此方法一般花费时间较长。数据库自动任务维护10gselectjob_name,program_name,schedule_name,job_classfromdba_scheduler_jobswherejob_name='GA
5、THER_STATS_JOB';11gselectclient_name,statusfromdba_autotask_client;CLIENT_NAMESTATUS---------------------------------------------autooptimizerstatscollectionENABLEDautospaceadvisorENABLEDsqltuningadvisorENABLED其中“autooptimizerstatscollection”便是我们要寻找的自动收集统计信息的任务名称禁止自动收集统计信息的任务execDBMS_AUTO_TA
6、SK_ADMIN.DISABLE(client_name=>'autooptimizerstatscollection',operation=>NULL,window_name=>NULL);启用自动收集统计信息的任务execDBMS_AUTO_TASK_ADMIN.ENABLE(client_name=>'autooptimizerstatscollection',operation=>NULL,window_name=>NULL);快速shutdown数据库1.停止监听2.做一个检查点操作SQL>altersystemcheckpoint;3.杀掉所有LOCAL=NO的操作
7、系统进程AIX、HP-UX、Linux、Solaris:$ps-ef
8、grep$ORACLE_SID
9、grepLOCAL=NO
10、grep-vgrep
11、awk'{print$2}'
12、xargs-ikill-9{}Windows:SQL>select'orakill'
13、
14、(selectvaluefromv$parameterwherename='instance_name')
15、
16、''
17、
18、p.spidfromv$processp,v$bgprocessbpwherep.ADDR=bp.PADDR(