AWS DMSを使ってみた⑤継続レプリケート(CDC)で移行


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

初めに

前回の続きとして、SCTで変換したスキーマにCDCの移行タスクでデータ移行します。

前回:AWS DMSを使ってみた⓸SCTツールでスキーマ移行
    https://cloud5.jp/aws-dms-20220521/

検証の流れ的に、初心者に誤解しやすそうなので、一応、SCTの使用はCDC利用可否に関連性がないことを説明します。

【スキーマ変換方式】
・DDL作成
・SCTツール(でDDL作成)

【データ移行の方式】
・全ロード
・継続レプリケート(CDC)

前章で説明しましたが、データベースの移行は、スキーマ移行してからデータ移行する方式となっています。⓵章~⓷章までは、「DDL作成のスキーマ変換方式」+「全ロードのデータ移行方式」でDMS移行を検証しましたので、⓸章からは「SCTツール」+「CDC」でDMS移行を検証したいとのことです。別にDDL+CDCでも移行可能です。実際のお客様の要件に合わせて検討にしましょう。

⓹継続レプリケート(CDC)で移行

エンドポイント、レプリケーションインスタンス、移行スキーマなどのリソースは、前の検証で作成完了していますので、そのまま利用してCDC検証を行います。

Step1 CDCの移行タスク作成

移行タイプ「データ変更のみをレプリケートする」を選択する。
file

ソースがOracleのため、継続レプリケートには事前設定が必要ですね。それは、タスク作成が終わったら設定しましょう。
file

他の設定は全ロードとそっくりだから、割愛します。
全ロード:⓶移行タスクの作成

file

Step2 ソースRDS(Oracle)のパラメータ設定

・サプリメンタル有効化の設定

サプリメンタル有効化はプライマリキー、インデックスによって設定が違うので、具体的の設定方法は以下に参照できます。

https://docs.aws.amazon.com/ja_jp/dms/latest/userguide/CHAP_Source.Oracle.html
ー サプリメンタル ロギングの設定

まずは、データベースレベルで有効に設定します。

SQL> SELECT supplemental_log_data_min FROM v$database;

SQL> exec rdsadmin.rdsadmin_util.alter_supplemental_logging('ADD');

file

そして、テーブル単位で有効化に設定します。
SQL> ALTER TABLE dmsuser2.dmstable2 ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
file

・アーカイブログ設定

アーカイブログの保持期間を24時間に設定する。

SQL> exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours', 24);

file

Step3 CDC移行

準備作業完了しているので、タスクを起動します。

file

少し時間を経ちましたら、ステータスが「レプリケーション進行中」になりました。
テーブル統計で見ると、スキーマとテーブルは導入されていることを確認できました。

file

それで、ソースRDSに100件のテストデータを挿入します。

file

コンソールから確認すると、100件の挿入がありました!

file

コマンドで確認しても同じですね。
良かった、それで成功です!

file

終わりに

すべてのデータ移行方式を検証し、問題なく手順を確認できましたので、DMS検証シリーズをここまで完了させて頂きます。
このブログはどなたの助けになると幸いです。
ここまで読んでいただき、誠にありがとうございました。

Last modified: 2022-05-23

Author