今天要將oracle goldengate 的extract 從classic 轉成integrated mode.
真是簡單的任務阿~ 趕緊做完下班囉~
結果!
在upgrade 之前我們看info upgrade一下,出現了上面這個錯誤,簡單來說就是需要recovery SCN 3777070365 追上SCN 3787881916。
後面的這個SCN 就是我們在register database時的scn(可以查DBA_capture) ,兩個重疊後我們轉換才不會有資料遺失。
查了一下MOS
Upgrading from Classic Extract To Integrated Reports 'Extract is not ready to be upgraded because recovery SCN Has Not Reached' (Doc ID 2582705.1)
裡面有如何轉換的步驟,排錯的方式就是將Extract 重新打開讓他跑一下,追上就好了,但! 如果這樣就好我還寫個屁?
研究一下這個recover SCN 到底是三,為啥都不動? 原來這叫做recover checkpoint: The recovery checkpoint is the position when the oldest open transaction starts.
那看起來就是有open transaction 導致,查一下!
還真的有,SCN也對上了,已經做了12小時還在做,應該是有鬼...
How-To Identify a transaction by XID which is provided in the SEND EXTRACT NAME SHOWTRANS (Doc ID 1504667.1)
Select * from v$transaction where xidusn=8 and XIDSLOT =11 and XIDSQN =186649;
然後可以v$transaction 的 ses_addr 串 v$session 的 saddr
也可以再去串v$session 的SQL_ADDRESS 與 v$sql 的SQL_ADDRESS
就這樣找到哪個transaction 卡在那邊囉~
下班!