LoginSignup
0
0

More than 1 year has passed since last update.

AWS Database Migration Service (DMS) 概要

Posted at
  • AWSのDB移行サービスであるAWS Data Migration Serviceについて個人用にメモする。

概要

  • DB移行に利用するAWSサービス

特徴

  • セットアップ・利用が容易
  • 異種データベース間の連携に対応
  • テーブル定義を補助するツールの提供
  • 継続的なレプリケーション

ユースケース

  • 同種/異種のデータベース間での移行
  • クロスリージョンリードレプリカの作成
  • メジャー/マイナーバージョンアップグレード
  • S3へのデータアーカイブ
  • NoSQL→SQL、SQL→NoSQLへの移行

アーキテクチャ

  • 論理レプリケーション

    dms_lr.png

    • 移行元DBで作成されたトランザクションログファイルからDMLを作成し、移行先DBに適用する。
      • MySQLの場合:binlog_format=ROWのバイナリログ
    • 連携単位:テーブル単位
    • DMSで作成されるオブジェクトはテーブルと主キーなどの一部の制約のみ
    • インデックスやプロシージャ、ビューは移行先に手動で反映する必要がある

FULL Load方式

dms_fullload.png

  1. SOURCE_UNLOADを実行する。
    • 移行元データベースに対してselect 文を1万件ずつ実行する。
      • 複数テーブルに対して同時に実施する(デフォルト8テーブル)。
  2. TARGET_LOADを実行する。
    • 移行先データベースに対してデータをロードする。
      • ロード方法はターゲットのエンジンにより異なる。
      • フルロード実施中発生した更新差分データは受信バッファで保持する。

Change Data Capture(CDC)方式

dms_cdc.png

  1. SOURCE_CAPTUREを実行する。
    • 移行元で発生したデータ変更を受信バッファにキャプチャする。
  2. SORTERを実行する。
    • キャプチャされたデータ変更を移行元から移行先へ仲介するバッファ
      • データ変更:コミット順にソート、コミット済みデータのみ送信バッファへ移動など
  3. TARGET_APPLYを実行する
    • 送信バッファにキャプチャされたデータ変更を移行先へ適用する。

参考情報

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