本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Oracle GoldenGate 疑難排解
本節說明使用 Oracle GoldenGate 搭配 Amazon RDS for Oracle 時最常見的問題。
開啟線上重做日誌時發生錯誤
確定您己將資料庫設定為保留封存的重做日誌。請考量下列準則:
-
指定記錄保留的持續時間 (以小時為單位)。最小值為一小時 。
-
將持續時間設定為超過來源資料庫執行個體的任何潛在停機時間、通訊的任何潛在期間,以及來源資料庫執行個體聯網問題的任何潛在期間。此持續時間可讓 Oracle GoldenGate 視需要從來源資料庫執行個體復原日誌。
-
請確定執行個體有足夠的儲存空間可存放這些檔案。
如果未啟用日誌保留,或如果保留值太小,您會收到如下訊息:
2022-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 Not able to establish initial position for begin time 2022-03-06 06:16:55.
Oracle GoldenGate 設定似乎正確,但複寫無法運作
針對既有的資料表,您必須指定 Oracle GoldenGate 從中運作的 SCN。
修正此問題
-
登入來源資料庫,然後啟動 Oracle GoldenGate 命令列界面 (
ggsci)。以下範例會顯示登入的格式。dblogin userid oggadm1@OGGSOURCE -
使用
ggsci命令列,設定EXTRACT程序的起始 SCN。下列範例將EXTRACT的 SCN 設為 223274。ALTER EXTRACT EABC SCN 223274 start EABC -
登入目標資料庫。以下範例會顯示登入的格式。
dblogin userid oggadm1@OGGTARGET -
使用
ggsci命令列,設定REPLICAT程序的起始 SCN。下列範例將REPLICAT的 SCN 設為 223274。start RABC atcsn 223274
由於 SYS."_DBA_APPLY_CDR_INFO" 上的查詢,整合式 REPLICAT 執行緩慢。
Oracle GoldenGate 衝突偵測與解決方案 (CDR) 提供了基本的衝突解決常式。例如,CDR 可以解決 INSERT 陳述式的唯一衝突。
當 CDR 解決碰撞時,它可以暫時地將記錄插入到例外資料表 _DBA_APPLY_CDR_INFO。整合的 REPLICAT 稍後會刪除這些記錄。在極少數情況下,整合的 REPLICAT 可以處理大量的碰撞,但新的整合 REPLICAT 不會取代它。不是被刪除,而是 _DBA_APPLY_CDR_INFO 中的現有資料列是孤立的。任何新的整合 REPLICAT 程序都會變慢,因為它們正在查詢 _DBA_APPLY_CDR_INFO 中的孤立資料列。
若要從 _DBA_APPLY_CDR_INFO 中移除所有資料列,請使用 Amazon RDS 程序 rdsadmin.rdsadmin_util.truncate_apply$_cdr_info。此程序是作為 2020 年 10 月發行版本和修補程式更新的一部分發行。此程序可在下列資料庫版本中提供:
下列範例會截斷資料表 _DBA_APPLY_CDR_INFO。
SET SERVEROUTPUT ON SIZE 2000 EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;