Oracle GoldenGate 疑難排解 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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。

修正此問題
  1. 登入來源資料庫,然後啟動 Oracle GoldenGate 命令列界面 (ggsci)。以下範例會顯示登入的格式。

    dblogin userid oggadm1@OGGSOURCE
  2. 使用 ggsci 命令列,設定 EXTRACT 程序的起始 SCN。下列範例將 EXTRACT 的 SCN 設為 223274。

    ALTER EXTRACT EABC SCN 223274 start EABC
  3. 登入目標資料庫。以下範例會顯示登入的格式。

    dblogin userid oggadm1@OGGTARGET
  4. 使用 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;