【EM】鎖等待故障模擬及排查

secooler發表於2011-07-21
  本文給出使用Oracle Enterprise Manager診斷並排除Oracle資料庫鎖等待故障的方法。

1.進入到Windows命令列介面

點選“開始” → 選擇“執行”
輸入“cmd” 回車後進入到Windows命令列介面。

2.連線到SCOTT使用者
C:\Documents and Settings\Administrator>sqlplus scott/tiger

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 7月 20 13:49:43 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

3.查詢EMP表資料
SQL> select ename,sal from emp;

ENAME             SAL
---------- ----------
SMITH             800
ALLEN            1600
WARD             1250
JONES            2975
MARTIN           1250
BLAKE            2850
CLARK            2450
SCOTT            3000
KING             5000
TURNER           1500
ADAMS            1100

ENAME             SAL
---------- ----------
JAMES             950
FORD             3000
MILLER           1300

已選擇14行。

4.將SCOTT員工的薪水修改為20000
SQL> update emp set sal=20000 where ename='SCOTT';

已更新 1 行。

SQL>

注意,這裡不提交事物。

5.另外單獨開啟一個會話
步驟與上面的操作過程一致。
調整SCOTT的薪水為60000
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>sqlplus scott/tiger

SQL*Plus: Release 11.1.0.6.0 - Production on 星期三 7月 20 13:57:41 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> update emp set sal=60000 where ename='SCOTT';

注意這裡的現象:此修改語句長時間無法完成。
原因:由於在第一個會話中對SCOTT對應的行資料進行了修改,但是沒有提交也沒有回滾,導致一直持有該條記錄的鎖定。因此限制其他會話對其進行修改。

6.有關該故障的排查過程請參考以下在Enterprise Manager中的操作資訊
1)以SYS使用者登陸Enterprise Manager
【EM】鎖等待故障模擬及排查

2)監控資料庫的活動會話數
【EM】鎖等待故障模擬及排查

3)點選“例項鎖”
【EM】鎖等待故障模擬及排查

4)點選“終止會話”
【EM】鎖等待故障模擬及排查

5)點選“顯示SQL”檢視對應的SQL語句
【EM】鎖等待故障模擬及排查

6)點選“返回”
【EM】鎖等待故障模擬及排查

7)選擇“立即中斷”點選“是”
【EM】鎖等待故障模擬及排查

8)故障處理完畢
【EM】鎖等待故障模擬及排查

9)第一個會話已經被強行殺死
【EM】鎖等待故障模擬及排查

10)第二個會話鎖等待現象消失
【EM】鎖等待故障模擬及排查

7.小結
  在處理Oracle資料庫環境中有關鎖等待故障的過程中,需要重點關注兩方面:①確定鎖定及被鎖定的會話資訊;②分析後決定殺死的會話目標。使用Enterprise Manager來發現和診斷鎖等待故障比較直觀和便捷。BTW:建議使用SQL命令方式輔助發現和處理鎖等待故障。

Good luck.

secooler
11.07.21

-- The End --



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-702945/,如需轉載,請註明出處,否則將追究法律責任。

相關文章