数据库项目组日常运维与应急故障处理手册范本

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常见问题及处理方案

CPU使用率高的问题

通过操作系统命令top topas glance等查看top进程号,确认是系统进程还是oracle应用进程,查询当前top进程执行的操作和sql语句进行分析。

根据进程号获取正在执行的sql

SELECT a.osuser, ername,b.address,b.hash_value, b.sql_text from v$session a, v$sqltext b, v$process p

where p.spid = &spid

and p.addr = a.paddr

and a.STATUS = 'ACTIVE'

and a.sql_address =b.address

order by address, piece;

数据库无法连接

数据库无法连接,一般可能是如下原因造成:

(1)数据库宕了

(2)监听异常

(3)数据库挂起

(4)归档目录满

(5)数据库或应用主机的网卡出现问题不能正常工作

(6)应用主机到数据库主机的网络出现问题。

1、数据库宕了

立即启动数据库。

2、监听异常

此时一般体现为:

监听进程占用CPU资源大;

监听日志异常。

此时,立即重启监听,监听重启一般能在1分钟之完成。

3、数据库挂起

立即重启数据库。

4、归档目录满

(1)在没有部署OGG数据同步的情况下,立即清理归档日志文件。

(2)如果部署了OGG数据同步,查看OGG正在读取的归档日志文件,立即

清理OGG不再需要的日志文件。

5、数据库或应用主机的网卡出现问题不能正常工作。

立即联系主机工程师处理。

6、应用主机到数据库主机的网络出现问题。

立即联系网络维护人员查看。

CRS/GI无法启动

对于10g及11gR1版本的CRS问题

1、进入/tmp目录下,看是否产生了crsctl.xxxxx文件

如果有的话,看文件容,一般会提示OCR无法访问,或者心跳IP无法

正常绑定等信息。

2、如果/tmp目录下没有crsctl.xxxxx文件

此时查看ocssd.log文件,看是否能从中得到有价值的信息。

可能的问题:网络心跳不通。

3、/tmp目录无crsctl.xxxxx且日志中没有报错信息,只有停CRS时的日志信

息。

此时可能是RAC两个节点对并发裸设备的访问有问题,此时考虑:

(1)停掉两个节点的CRS。

(2)两个节点先同时去激活并发VG,然后再激活VG。

(3)重新启动CRS。

对于11gR2的GI问题

分析$GRID_HOME/log/nodename目录下的日志文件,看是否能从中找出无法启动的原因。常见问题:

1、心跳IP不同。

2、ASM实例无法启动。

对CRS的故障诊断和分析,参加本文档中RAC部分的MOS文档.

数据库响应慢

应急处理步骤:

(1)找到占用CPU资源大的sql或者模块,然后停掉此应用模块。

(2)如果属于由于种种原因引起的数据库hang住情况,立即重启数据

库,此时重启需要约15分钟时间。

重要说明:

如果重启数据库的话,会有如下负面影响:

(1)要kill掉所有连接到数据库中的会话,所有会话都会回滚。

(2)立即重启的话,不能获取并保留分析数据库挂起原因的信息,在后续分析问题时,没有足够信息用于分析问题产生的根本原因。

一般正常重启的话,都需要手动获取用于分析数据库重启原因的信息,以便编写分析报告,但是在最长情况下,获取日志信息可能就要40分钟时间。此时一般做systemstate dump,且如果是rac情况的话,需要2个节点都做,且需要做2次或以上。

常规处理步骤,分如下几种情况处理:

(1)所有业务模块都慢。

(2)部分业务模块慢。

(3)数据库hang住。

所有业务模块都慢

此时首先查看系统资源,看是否属于CPU资源使用率100%的问题,如果是,参考本章“CPU使用率高的问题”解决办法。如果系统资源正常,那很可能是数据库hang住了,此时参考数据库Hang部分。

部分业务模块慢

分析运行慢的模块的sql语句:

(1)看是否是新上的sql。

(2)看执行计划是否高效。

(3)优化运行慢的模块的sql语句。

数据库hang住

应急处理方式:重启数据库。

常规处理方式:

(1)分析alert日志,看是否能从alert日志中,可以很快找到引起问题的原

因。

(2)做3级别的hanganalyze,先做一次,然后隔一分钟以后再做一次。

并分析hanganalyze 生成的trace文件,看是否可以找到引起数据库hang

住的会话的信息。

(3)做systemstate dump

此时生成systemstate dump的时间会比较长,尤其是在会话数量较多的情

况下。且生成dump文件的大小较大,在G级别以上。在生成一次以

后,过一分钟再收集一次,另外如果是RAC,那么两个节点都需要收

集。

对hang做dump请参考“对数据库HANG做DUMP一章”。

数据误删除

此问题,没有应急办法,只能按如下步骤处理:

1、对于10g及以上版本,看是否可以通过闪回进行恢复。

2、查看测试环境数据库,看其中是否有需要的数据。

3、使用备份进行恢复,此方法一般花费时间较长。

快速shutdown数据库

1.停止监听

2.做一个检查点操作

SQL> alter system checkpoint;

3.杀掉所有LOCAL=NO的操作系统进程

AIX、HP-UX、Linux、Solaris:

$ ps -ef|grep $ORACLE_SID| grep LOCAL=NO | grep -v grep |awk '{print $2}'|xargs -i kill -9 {}

Windows:

SQL> select 'orakill ' ||

(select value from v$parameter where name = 'instance_name') || ' ' ||p.spid

from v$process p, v$bgprocess bp

where p.ADDR = bp.PADDR(+)

and bp.PADDR is null

and p.SPID is not null;

在命令行执行:

C:\> orakill db1 7642

相关文档
最新文档