SQ死鎖及死鎖的解決
1、模擬死鎖的場景:
登入sqlplus,如下輸入命令不提交。
2、在開啟一個sqlplus,如下輸入命令:
此時在PL/SQL Developer中輸入一下命令,查詢出來鎖。
然後輸入以下命令,查詢出來sid和serial#:
然後輸入以下命令,殺死死鎖:alter
system kill session ‘sid,serial#’
殺死完成後,再回頭看看,剛才鎖住的sql,如下所示:
已經執行完成了!
登入sqlplus,如下輸入命令不提交。
點選(此處)摺疊或開啟
-
C:\Windows\System32>sqlplus /nolog
-
-
SQL*Plus: Release 12.1.0.1.0 Production on 星期六 11月 7 16:02:00 20
-
-
Copyright (c) 1982, 2013, Oracle. All rights reserved.
-
-
SQL> conn / as sysdba
-
已連線。
-
SQL> conn scott/windows
-
已連線。
-
SQL> delete from emp;
-
-
已刪除 12 行。
-
- SQL>
點選(此處)摺疊或開啟
-
Microsoft Windows [版本 6.1.7601]
-
版權所有 (c) 2009 Microsoft Corporation。保留所有權利。
-
-
C:\Windows\System32>sqlplus /nolog
-
-
SQL*Plus: Release 12.1.0.1.0 Production on 星期六 11月 7 16:55:03 2015
-
-
Copyright (c) 1982, 2013, Oracle. All rights reserved.
-
-
SQL> conn scott/windows
-
已連線。
- SQL> delete from emp;
點選(此處)摺疊或開啟
-
select /*+ RULE */
-
ls.osuser os_user_name,
-
ls.username user_name,
-
decode(ls.type,
-
'RW',
-
'Row wait enqueue lock',
-
'TM',
-
'DML enqueue lock',
-
'TX',
-
'Transaction enqueue lock',
-
'UL',
-
'User supplied lock') lock_type,
-
o.object_name object,
-
decode(ls.lmode,
-
1,
-
null,
-
2,
-
'Row Share',
-
3,
-
'Row
-
Exclusive',
-
4,
-
'Share',
-
5,
-
'Share Row Exclusive',
-
6,
-
'Exclusive',
-
null) lock_mode,
-
o.owner,
-
ls.sid,
-
ls.serial# serial_num,
-
ls.id1,
-
ls.id2
-
from sys.dba_objects o,
-
(select s.osuser,
-
s.username,
-
l.type,
-
l.lmode,
-
s.sid,
-
s.serial#,
-
l.id1,
-
l.id2
-
from v$session s, v$lock l
-
where s.sid = l.sid) ls
-
where o.object_id = ls.id1
-
and o.owner <> 'SYS'
- order by o.owner, o.object_name;
點選(此處)摺疊或開啟
-
SELECT /*+ rule */
-
lpad(' ', decode(l.xidusn, 0, 3, 0)) || l.oracle_username User_name,
-
o.owner,
-
o.object_name,
-
o.object_type,
-
s.sid,
-
s.serial#
-
FROM v$locked_object l, dba_objects o, v$session s
-
WHERE l.object_id = o.object_id
-
AND l.session_id = s.sid
- ORDER BY o.object_id, xidusn DESC
點選(此處)摺疊或開啟
-
Microsoft Windows [版本 6.1.7601]
-
版權所有 (c) 2009 Microsoft Corporation。保留所有權利。
-
-
C:\Windows\System32>sqlplus /nolog
-
-
SQL*Plus: Release 12.1.0.1.0 Production on 星期六 11月 7 17:43:49 2015
-
-
Copyright (c) 1982, 2013, Oracle. All rights reserved.
-
-
SQL> conn / as sysdba
-
已連線。
-
SQL> alter system kill session '129,17';
-
-
系統已更改。
-
-
SQL> alter system kill session '134,71';
-
-
系統已更改。
-
- SQL>
點選(此處)摺疊或開啟
-
Microsoft Windows [版本 6.1.7601]
-
版權所有 (c) 2009 Microsoft Corporation。保留所有權利。
-
-
C:\Windows\System32>sqlplus /nolog
-
-
SQL*Plus: Release 12.1.0.1.0 Production on 星期六 11月 7 16:55:03 2015
-
-
Copyright (c) 1982, 2013, Oracle. All rights reserved.
-
-
SQL> conn scott/windows
-
已連線。
-
SQL> delete from emp;
-
-
已刪除 12 行。
-
- SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22275400/viewspace-1825262/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 死鎖檢測及解決
- 面試:什麼是死鎖,如何避免或解決死鎖;MySQL中的死鎖現象,MySQL死鎖如何解決面試MySql
- MySQL 死鎖解決MySql
- MySQL解決死鎖MySql
- mysql之神奇的死鎖及解決思路MySql
- 什麼是死鎖?如何解決死鎖?
- 常見的死鎖情況及解決方法
- 例項詳解 Java 死鎖與破解死鎖Java
- 解決Oracle死鎖的快捷方法Oracle
- ORA-00060死鎖的產生及解決
- Java鎖——死鎖Java
- Java 程式死鎖問題原理及解決方案Java
- 死鎖
- ORACLE ERP解決死鎖的方案Oracle
- MySQL死鎖分析與解決之路MySql
- oracle死鎖測試與解決Oracle
- 解決Oracle資料庫死鎖Oracle資料庫
- 作業系統(5) 死鎖的概念 死鎖產生的必要條件 死鎖的處理策略 預防死鎖 避免死鎖 死鎖的檢測和解除 銀行家演算法作業系統演算法
- 面試官:什麼是死鎖?怎麼排查死鎖?怎麼避免死鎖?面試
- oracle 死鎖表解決方法Oracle
- 殺死Oracle死鎖程式Oracle
- Oracle資料表死鎖的解決方法Oracle
- 死鎖分析
- oracle 死鎖Oracle
- 由Oracle觸發器死鎖及行級鎖限制所衍生的解決方案Oracle觸發器
- 解決Oracle死鎖問題步驟Oracle
- mysql慢查詢,死鎖解決方案MySql
- SQLserver 程式被死鎖問題解決SQLServer
- oracle 死鎖解決方法一例Oracle
- innodb_lock_monitor解決mysql死鎖MySql
- 鎖的種類,阻塞,死鎖產生與解決辦法。
- LiteOS:SpinLock自旋鎖及LockDep死鎖檢測
- 檢視oracle死鎖程式並結束死鎖Oracle
- MySQL死鎖系列-線上死鎖問題排查思路MySql
- ORACLE死鎖及處理方式Oracle
- MySQL 死鎖和鎖等待MySql
- MySQL:一個死鎖分析 (未分析出來的死鎖)MySql
- Oracle死鎖的檢視以及解決辦法Oracle