科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道诊断Oracle数据库Hanging问题

诊断Oracle数据库Hanging问题

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

适用范围:Oracle任何平台上的企业版数据库 适用对象:所有数据库管理员和数据库支持人员 本文目的:这篇文章主要描述用于诊断数据库hanging和性能问题的方法和 工具,这些问题可能是由于调整问题。

作者:中国IT实验室 来源:中国IT实验室 2007年10月7日

关键字: ORACLE

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共6页)

   上述这些保存了锁和latch的会话是否关闭了终端但是没有退出,这可能会导致一个影子进程继续保存那些资源,这样就需要杀掉相应的进程,可以使用如下语句:

    alter system kill session '<sid, serial# from v$session>'

    如果会话没有被挂起而只是运行缓慢,那么需要查看会话的具体信息:

    SELECT s.sid, s.value, t.name

    FROM v$sesstat s, v$statname t

    WHERE s.statistic# = t.statistic#

    AND s.sid = <sid>;

    如果会话极度的缓慢或者是被挂起了,那么需要查看会话的等待信息:

    SELECT *

    FROM v$session_wait

    where sid = <sid>;

    如果是个分布式事务,那么需要在各个节点上都运行如下SQL语句:

    SELECT * FROM dba_2pc_pending;

    SELECT * FROM pending_sessions$;

    SELECT * FROM pending_sub_sessions$;

    SELECT * FROM dba_2pc_neighbors;

    如果是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次左右,以便能够确定数据库或者进程是否是真的挂起还是激活状态。

    对于Oracle 8.0.5.x to 8.1.7.x的版本:

    $ svrmgrl

    svrmgr> connect internal

    svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME HANGANALYZE LEVEL 3';

    wait 90 seconds

    svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME HANGANALYZE LEVEL 3';

    EXIT …… then reconnect

    svrmgr>ALTER SESSION SET MAX_DUMP_FILE_SIZE=UNLIMITED;

    svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL 10';

    wait 90 seconds

    svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL 10';

    wait 90 seconds

    svrmgr>ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME SYSTEMSTATE LEVEL 10';

 

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章