Oracle GoldenGate のトラブルシューティング
このセクションでは、Amazon RDS for Oracle で Oracle GoldenGate を使用する場合に発生する最も一般的な問題について説明します。
トピック
オンライン REDO ログを開くときにエラーが発生しました
アーカイブされた REDO ログを保持するようにデータベースを設定していることを確認してください。以下のガイドラインを検討します。
-
ログの保持期間を時間単位で指定します。最小値は 1 時間です。
-
この期間は、ソースインスタンスの潜在的なダウンタイム、潜在的な通信期間、ソースインスタンスのネットワーク問題の潜在的な期間を超えるように設定します。このような期間により、Oracle GoldenGate は必要に応じてソース DB インスタンスからログを復元できます。
-
ファイル用の十分なストレージがインスタンスにあることを確認します。
ログの保持を有効にしていない場合や、保持の値が小さすぎる場合、次のようなエラーメッセージが表示されます。
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
にレコードを挿入できます。Integrated 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;