0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS DMS CDC(差分反映構成)

Posted at

差分反映(CDC)

ここでは、Database Migration Service(以下DMS)のCDC(変更データキャプチャ)という、ソースのDBの差分をターゲットに継続的に反映し続けるタスクの設定について解説します。
DMSの基本的な構成については、AWS Database Migration ServiceのDB移行の設定をご確認ください。

CDCの移行タスクの作成

DMSのデータベース移行タスクを作成します。(前提となる構成についてはAWS Database Migration ServiceのDB移行の設定に記載のため割愛。)
image.png
レプリケーションインスタンス、エンドポイントは同様。
移行タイプの選択が異なります。ここでは、「既存のデータを移行して、継続的な変更をレプリケートする」を選択。必要に応じてCDCの動作を変更してください。ここでは停止モードを無効(停止しない設定)を選択。
スキーマの設定等は、他の移行タスクと同様でOK。
image.png
移行タスクが作成されます。
image.png

image.png

移行前評価

移行前評価を作成します。
image.png
S3バケットやIAMロールを設定し、利用可能な評価を選択します。
フルロードの時より、前提条件が厳しく、この環境では44個のタスクを選択できました。
image.png

image.png

image.png

image.png

image.png

image.png

エラーメッセージの対応例

移行前評価が終わると、評価が表示されます。
失敗した評価を選択して対応方法を確認の上、対応します。
image.png

image.png

image.png

CDCでは、より多くの前提条件が必要とされている。

CDC-1 : アーカイブログの時間

アーカイブログの保持期間の指定例。基本的にマニュアルに記載のSQLで対応する。
当記事の検証の環境の都合上、ソースのOracleはRDS for Oracleで構築している。RDSの場合はコマンドラインから利用できる権限が異なるため、代替となるプロシージャー(API)を実行する場合がある。以下は一例
RDS Oracle のアーカイブログ保持を検証
Archived logs retention period is set to value lower than 24 hours, It is recommend to ensure that the source database is configured to retain archived logs for a sufficient time 24 hours is usually enough.

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

CDC#2: 対応テーブル毎のエラー

通常サーバ

GRANT READ ON DIRECTORY ONLINELOG_DIR TO dms_user;
GRANT READ ON DIRECTORY ARCHIVELOG_DIR TO dms_user;

RDS用コマンド

exec rdsadmin.rdsadmin_master_util.create_onlinelog_dir;
exec rdsadmin.rdsadmin_master_util.create_archivelog_dir;

CDC対応テーブル毎のエラー

CDCへの対応は、テーブル単位での対応が必要になる場合がある。
以下が例
プライマリまたは一意のキーがあるテーブルで補足ロギングが有効になっているかどうかを検証
(Add all columns of the XXX unique index to the supplemental logも同対応でクリア)

プライマリキーに補足ログ
ALTER TABLE TBLnnnn ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

すべての列に補足ログが必要かどうかを検証します

全列に補足ログ
ALTER TABLE TBLnnnn ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

対応後、移行前検証を行い、検証がクリアするまで繰り返す。

移行の実行と確認

image.png
しばらく待機 (検証環境はデータが少なく30分程度)
image.png
image.png

変更反映を確認

CDCが停止しない設定で構成したため、停止するまで差分反映が継続する。
ソースDBが変更された場合、ターゲットDBも変更される。
データだけでなく、テーブルの作成/削除についても変更が反映される。
つまり、Schema Conversion Toolがなくても、DMSだけでスキーマ変換が反映されるような機能を持ち合わせている。(ただし、テーブルやカラムのコメントが反映されない等、機能は限定的な模様)

image.png

CDCを手動停止

CDCを停止する。
(ソースDBが変更された場合は、ターゲットDBにも反映する)
image.png
image.png
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?