oracle??邏輯DG同步卡住,session等待row cache lock的處理過程
問題描述:
ORACLE 邏輯同步卡住了,日誌應用的程式還在。
日誌應用程式顯示“ORA-16121: 正在透過提交 SCN 0x0a7d.6adf4c69 應用事務處理”
處理過程:
(1)檢視DG 日誌應用程式
select t.sid,t.* from V$LOGSTDBY_PROCESS t ;
ORA-16121: 正在透過提交 SCN 0x0a7d.6adf4c69 應用事務處理
(2)檢視DG日誌應用程式的SESSION,看看在執行什麼語句,在等待什麼
select t.SQL_ID,t.PREV_SQL_ID,t.EVENT,t.* from v$session t where t.sid in ( 1144 );
EVENT:row cache lock
(3) 檢視執行的SQL
select * from v$sqlarea t where t.sql_id in ('4m7m0t6fjcs5x');
可以查到,當前日誌應用程式在執行更新序列SQL:
update seq$ set increment$=:2,minvalue=:3, maxvalue=:4,cycle#=:5,order$=:6,cache=:7,highwater=:8,audit$=:9,flags=:10 where obj#=:1
(4)上一步無法確定是哪個序列,需要進一步查上一步繫結變數(:1)的值
SELECT SQL_ID,NAME, POSITION, value_string, ANYDATA.accesstimestamp(value_anydata),A.*
From gV$sql_Bind_Capture A Where sql_id='4m7m0t6fjcs5x' and name=':1';
(5) 第四步可以得到(:1)的繫結變數的值,即為“value_string”列的值,根據查到的值,查詢dba_objects
select * from dba_objects t where t.object_id in ('1890586');
備註:怎麼知道(:1)=seq$.obj#= dba_objects .object_id ,可以看看 dba_sequences的定義。;
(6)對比主庫、從庫的當前序列值,發現 主庫的start with 的值是220000329100,而備庫是1055697702 。
DG卡住的原因就清晰了。 是因為從庫要同步主庫的SEQ,要從1055697702 加到220000329100。差了N個數量級,這樣同步肯定會卡死了。
處理辦法:在從庫刪除序列,重建成跟主庫一樣。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10995764/viewspace-2131466/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一次Row Cache Lock問題處理過程
- [ORACLE 11G]ROW CACHE LOCK 等待Oracle
- 物理DG與邏輯DG的區別與邏輯DG同步異常處理方法
- 等待事件之Row Cache Lock事件
- enq: TX - row lock contention等待事件處理ENQ事件
- 'library cache lock'等待事件的處理方法事件
- 由row cache lock等待事件引起的效能問題事件
- 尋找 library cache lock 等待事件的session事件Session
- oracle 'row cache objects' 等待事件解釋OracleObject事件
- oracle邏輯讀過程Oracle
- 記一次row cache lock引起的效能問題分析處理
- 當刪除oracle資料庫user時發生row cache lock 等待事件Oracle資料庫事件
- hang了,嚴重的row cache lock 等待事件--就因大sql文字事件SQL
- Oracle DG同步失敗故障處理(二)Oracle
- hibernate如何處理儲存過程中的複雜邏輯儲存過程
- 【TUNE_ORACLE】等待事件之“library cache lock”Oracle事件
- LIBRARY CACHE LOCK 等待事件事件
- Library cache pin問題的處理過程
- oracle處理SQL的過程OracleSQL
- 等待事件enq: TX - row lock contention事件ENQ
- 【等待事件】-enq: TX - row lock contention事件ENQ
- hanganalyze解決row cache lock(ZT)
- WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!AIENQ
- WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!的分析AIENQ
- latch:library cache lock等待事件事件
- 等待事件enq TX row lock contention分析事件ENQ
- 轉)用hanganalyze解決row cache lock
- (轉)用hanganalyze解決row cache lock
- library cache lock\pin的查詢與處理
- RAC 環境Library Cache Lock的處理方法
- cursor: pin S wait on X等待事件的處理過程AI事件
- [zt]Logical standby同步故障的處理過程
- 【DG】DBMS_LOGSTDBY包的應用--邏輯DG跳過某些操作
- enq:Library cache lock/pin等待事件ENQ事件
- ORACLE鎖等待的處理方法Oracle
- 故障排除:"WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! "AIENQ
- 轉貼_用hanganalyze解決row cache lock
- 用hanganalyze解決row cache lock(轉貼)