【EM】鎖等待故障模擬及排查
本文給出使用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
2)監控資料庫的活動會話數
3)點選“例項鎖”
4)點選“終止會話”
5)點選“顯示SQL”檢視對應的SQL語句
6)點選“返回”
7)選擇“立即中斷”點選“是”
8)故障處理完畢
9)第一個會話已經被強行殺死
10)第二個會話鎖等待現象消失
7.小結
在處理Oracle資料庫環境中有關鎖等待故障的過程中,需要重點關注兩方面:①確定鎖定及被鎖定的會話資訊;②分析後決定殺死的會話目標。使用Enterprise Manager來發現和診斷鎖等待故障比較直觀和便捷。BTW:建議使用SQL命令方式輔助發現和處理鎖等待故障。
Good luck.
secooler
11.07.21
-- The End --
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
2)監控資料庫的活動會話數
3)點選“例項鎖”
4)點選“終止會話”
5)點選“顯示SQL”檢視對應的SQL語句
6)點選“返回”
7)選擇“立即中斷”點選“是”
8)故障處理完畢
9)第一個會話已經被強行殺死
10)第二個會話鎖等待現象消失
7.小結
在處理Oracle資料庫環境中有關鎖等待故障的過程中,需要重點關注兩方面:①確定鎖定及被鎖定的會話資訊;②分析後決定殺死的會話目標。使用Enterprise Manager來發現和診斷鎖等待故障比較直觀和便捷。BTW:建議使用SQL命令方式輔助發現和處理鎖等待故障。
Good luck.
secooler
11.07.21
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-702945/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【EM】資料表誤刪除故障模擬及恢復
- 【實驗】【LOCK】“鎖等待”模擬、診斷及處理方法
- 等待模擬-cache buffer chainAI
- enq: TM - contention TM 等待事件的原因及模擬ENQ事件
- Seata 全域性鎖等待超時 問題排查
- 004.OpenShift命令及故障排查
- MySQL資料庫故障分析-鎖等待(一)MySql資料庫
- 等待模擬-read by other sessionSession
- 等待模擬-BUFFER BUSY WAITAI
- 故障排查
- 等待模擬-library cache 軟解析
- read by other session等待事件模擬Session事件
- 故障分析 | MySQL鎖等待超時一例分析MySql
- library cache pin等待事件的模擬事件
- 【DEADLOCK】Oracle“死鎖”模擬Oracle
- 模擬SQLserver死鎖現象SQLServer
- mysql InnoDB鎖等待的檢視及分析MySql
- cursor: pin S wait on X等待事件模擬AI事件
- rsync 故障排查整理
- 應用故障排查
- 關於oracle死鎖的模擬Oracle
- 光纖故障診斷和故障排查
- 等待模擬-library cache shared pool 硬解析
- cursor: pin S wait on X等待事件模擬(轉)AI事件
- MySQL 死鎖和鎖等待MySql
- Oracle Redo(重做日誌) 模擬故障和恢復Oracle Redo
- 桌面虛擬化產品XenDesktop常見故障排查寶典薦
- JVM 線上故障排查基本操作JVM
- Openstackneutron報錯503故障排查
- MogDB openGauss故障排查流程
- RDSforMySQLInnoDB行鎖等待和鎖等待超時的處理ORMMySql
- 模擬產生CBC LATCH與buffer busy wait等待事件AI事件
- 模擬cache buffers chains與library cache pin等待事件AI事件
- 模擬library cahe lock/pin等待事件以及問題定位事件
- 第十三課 SOLIDITY語法難點解析及故障排查Solid
- 【VMware vSAN】vSAN Data Protection Part 3:模擬故障。
- JMH模擬鎖高爭用,長臨界區,測試鎖效能
- CST—電磁及EMC模擬工具