smon程式互為死鎖案例--oracle一個bug處理
smon程式互為死鎖案例--oracle一個bug處理[@more@]以下這篇文章發表在我的blog上。
貼到這裡與大家共享。
=====================
環境:
OS: AIX 5.2
DB: oracle9206 RAC
兩個例項上面smon程式都在等待enqueue事件。從而導致部分使用者無法登陸,排序請求臨時表空間也不行。。。
接到客戶電話,說有些使用者無法登陸,掛在那裡,修改它的密碼也是掛在那裡。並且好多查詢結果都出不來。。
登上去檢查,發現smon程式在等待enqueue事件。所以引起了上面的現象。檢查v$lock
A節點:
12 TX 2752512 475202 6 0
12 TM 22 0 3 0
12 TM 18 0 3 0
12 TX 1441873 792576 0 6
B節點:
12 TX 1441873 792576 6 0
12 TM 22 0 3 0
12 TM 18 0 3 0
12 TX 2752512 475202 0 6
從這裡也可以發現,兩個例項之間發生死鎖了。
客戶說他前一天晚上重起過資料庫,重啟後也是一樣的。
檢查smon程式的sql語句:
select o.owner#,o.obj#,decode(o.linkname,null, decode(u.name,null,'SYS',u.name),o.remoteowner),
o.name,o.linkname,o.namespace,o.subname
from user$ u, obj$ o where u.user#(+)=o.owner# and o.type#=1
and not exists (select p_obj# from dependency$ where p_obj# = o.obj#)
order by o.obj# for update;
從SQL語句上看,應該是smon程式在清理obj$物件。
在metalink搜尋,發現oracle有個這樣的bug,導致互為死鎖。oracle提供了相應的補丁,但是沒有aix上面的版本。
現在由於兩個例項的smon程式都在清理obj$表格,從而導致了死鎖,如果禁止掉一個smon程式清理obj$表格,這個bug不就可以避免了嗎?
於是想起10052事件,其功能禁止smon程式清理obj$表。
event="10052 trace name context forever"
在其中一個例項上填加10052事件後,重啟這個例項後,一切正常。
貼到這裡與大家共享。
=====================
環境:
OS: AIX 5.2
DB: oracle9206 RAC
兩個例項上面smon程式都在等待enqueue事件。從而導致部分使用者無法登陸,排序請求臨時表空間也不行。。。
接到客戶電話,說有些使用者無法登陸,掛在那裡,修改它的密碼也是掛在那裡。並且好多查詢結果都出不來。。
登上去檢查,發現smon程式在等待enqueue事件。所以引起了上面的現象。檢查v$lock
A節點:
12 TX 2752512 475202 6 0
12 TM 22 0 3 0
12 TM 18 0 3 0
12 TX 1441873 792576 0 6
B節點:
12 TX 1441873 792576 6 0
12 TM 22 0 3 0
12 TM 18 0 3 0
12 TX 2752512 475202 0 6
從這裡也可以發現,兩個例項之間發生死鎖了。
客戶說他前一天晚上重起過資料庫,重啟後也是一樣的。
檢查smon程式的sql語句:
select o.owner#,o.obj#,decode(o.linkname,null, decode(u.name,null,'SYS',u.name),o.remoteowner),
o.name,o.linkname,o.namespace,o.subname
from user$ u, obj$ o where u.user#(+)=o.owner# and o.type#=1
and not exists (select p_obj# from dependency$ where p_obj# = o.obj#)
order by o.obj# for update;
從SQL語句上看,應該是smon程式在清理obj$物件。
在metalink搜尋,發現oracle有個這樣的bug,導致互為死鎖。oracle提供了相應的補丁,但是沒有aix上面的版本。
現在由於兩個例項的smon程式都在清理obj$表格,從而導致了死鎖,如果禁止掉一個smon程式清理obj$表格,這個bug不就可以避免了嗎?
於是想起10052事件,其功能禁止smon程式清理obj$表。
event="10052 trace name context forever"
在其中一個例項上填加10052事件後,重啟這個例項後,一切正常。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-899037/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 死鎖處理Oracle
- Oracle死鎖處理Oracle
- ORACLE死鎖及處理方式Oracle
- oracle 死鎖查詢處理Oracle
- MySQL:Innodb 一個死鎖案例MySql
- 關於Oracle死鎖處理方法Oracle
- Oracle死鎖查詢及處理Oracle
- 【Oracle】死鎖的產生與處理Oracle
- Mysql如何處理死鎖MySql
- 殺死Oracle死鎖程式Oracle
- 【MySQL】死鎖案例之一MySql
- oracle case處理案例(一)Oracle
- 記一個openwrt reboot非同步訊號處理死鎖問題boot非同步
- 如何處理執行緒死鎖執行緒
- 對於死鎖的處理流程:
- 死鎖案例分析
- 檢視oracle死鎖程式並結束死鎖Oracle
- MySQL死鎖案例一(回滾導致死鎖)MySql
- 剖析6個MySQL死鎖案例的原因以及死鎖預防策略MySql
- 關於處理死鎖的一點小知識
- 一個ORACLE死鎖問題的追蹤Oracle
- GreatSQL 死鎖案例分析SQL
- 萬萬沒想到,一個 MongoDB.Driver 的 bug 導致 .NET5 程式死鎖!MongoDB
- 完全乾掉Oracle死鎖程式Oracle
- oracle殺死鎖表的程式Oracle
- 表死鎖查詢及處理辦法
- oracle 死鎖Oracle
- 【MySQL】死鎖案例之六MySql
- 【MySQL】死鎖案例之七MySql
- 【MySQL】死鎖案例之八MySql
- 【MySQL】死鎖案例之四MySql
- 【MySQL】死鎖案例之二MySql
- 【MySQL】死鎖案例之三MySql
- MySQL:一個死鎖分析 (未分析出來的死鎖)MySql
- APM RUEI processor處理程式hang死處理方法
- Oracle SMON程式的作用Oracle
- Oracle TX鎖的處理Oracle
- ios GCD 死鎖幾個案例 詳細講解iOSGC