诊断Oraacle数据库Hanging问题
2007-05-07 12:07:40 来源:WEB开发网如果是MTS服务器,那么可以查看一下当前的dispatcher的繁忙程度:select name,network,status,
(busy /(busy + idle)) * 100 "% of time busy"
from v$dispatchers;
还可以查看V$SHARED_SERVERS视图获取相应的信息:
select name,status,requests, (busy /(busy + idle)) * 100
"% of time busy"
from v$shared_servers
收集操作系统的相关信息:
1) 简短的描述你的架构,包括CPU的数量,磁盘的数量。是否使用了裸设备,使用了NFS文件系统,共享磁盘...是否镜像了这些?
2) 测量不同操作系统级别的活动:过量的CPU或者I/O,页面,交换区等。有许多的工具可以监测这些,例如TOP。
Unix上的工具:SAR,VMSTAT,NETSTAT,TOP,TRUSS等;
Vms上的工具:MONITOR,ANALYZE,PROCESS等;
Windows上的工具:Performance Monitor, Event Monitor, Dr. Watson,qslice等;
3) 检查系统的日志文件,在大多数Unix平台上日志文件都存在于/var/adm目录下。
获取SYSTEMSTATE和HANGANALYZE的dump
这两个命令将在user_dump_dest目录下创建一个非常大的跟踪文件,初始化参数文件中的MAX_DUMP_FILE_SIZE参数确定了能够容纳的最大跟踪文件的大小。使用Oradebug命令设置unlimit将能允许执行一个完全的dump。请确认整个数据库已经挂起或者即将挂起,并且在Alert告警日志文件中没有任何归档的错误的时候才可以做此操作。
注意:当数据库是集群数据库的时候,如果需要诊断挂起的问题,则需要在每个节点上都执行systemstate dump操作,建议做3次左右,以便能够确定数据库或者进程是否是真的挂起还是激活状态。
更多精彩
赞助商链接