分享免费的编程资源和教程

网站首页 > 技术教程 正文

ORACLE RAC数据库的挂起分析

goqiw 2024-11-23 15:13:55 技术教程 10 ℃ 0 评论

RAC数据库挂起、运行缓慢、阻塞的情况,以及如何在这些情况下进行挂起分析(hang analysis) 当一个数据库运行速度慢得令人无法接受,或者由千系统内部死锁或latch导致的数据库挂起,再或者持续很久的死锁或阻塞影响了数据库的整体性能,这时候建议使用挂起分析,将非常有助于找出问题的根本原因。

SQL> sqlplus / as sysdba

SQL> oradebug setmypid

SQL> oradebug unlimit

SQL> oradebug setinst all --在集群范围内使用挂起分析

SQL> oradebug -g all hanganalyze 3 --通常使用的级别是3

<<等持几分钟>>

SQL> oradebug -g all hanganalyze 3

挂起分析的级别可以设置为1到5,或者10hanganalyze命令后,息将写入到转储文件中,放在ORACLE_BASE/diag/rdbms/dbname/instance name/trace目录中,息可以析和解

实例演示:

演示一个RAC数据库的阻塞问题,并使用下面的程序来测试实际的过程。然后将分析产生的跟踪文件的内容来解决阻塞问题。在进行这个测试之前首先创建EMP表:

SQL> create table emp (enpno number (3),deptno number(2), sal number(9));

向表中插入一些记录, 然后再执行下面的修改语句:

SQL> update pacs3i.emp set sal=sal+100 where empno=7900 --未提交

然后,对相同记录执行修改语句来模拟阻塞情形:

SQL> update emp set sal=sal+200 where empno=7900

此时会话将会挂起,光标不会返回到SQL提示符下。这时从另一会话,如下执行挂起分析:

SQL> oradebug setmypid;

Statement processed.

SQL> oradebug setinst all ;

Statement processed.

SQL> oradebug -g all hanganalyze 3

Hang Analysis in /u01/app/oracle/diag/rdbms/dbrac/DBRAC1/trace/DBRAC1_diag_4448.trc

对跟踪文件的内容进行初步排查和分析,根据上下文找到阻塞的持有者和被阻塞下面是跟件的部分

通过命令进行排查问题

SQL> !less /u01/app/oracle/diag/rdbms/dbrac/DBRAC1/trace/DBRAC1_diag_4448.trc

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表