Amazon RDS MySQL ソースまたは SUPERUSER 権限を許可しないソースを使用して移行ジョブを正常に作成して実行するには、いくつかの追加手順が必要になる場合があります。
Amazon RDS MySQL 移行ジョブを作成する
MySQL では、ソース ホスト名の定義が 60 文字に制限されています。Amazon RDS データベースのホスト名は通常、60 文字を超えます。移行するデータベースがこれに該当する場合は、DNS リダイレクトを構成して、ドメイン名を Amazon RDS DB インスタンスのドメイン名に関連付ける CNAME レコードを作成します。DNS CNAME の設定の詳細については、Cloud DNS のドキュメントまたは AWS Route53 のドキュメントをご覧ください。
バイナリログは標準のブロック ストレージに保存する必要があります。Amazon S3 に保存することはできません。
手動ダンプを指定して継続的な移行ジョブを作成する場合は、
GTID
を有効にする必要があります。GTID_MODE
は、ON、OFF、または OFF_PERMISSIVE のいずれかにする必要があります。ON_PERMISSIVE のGTID_MODE
値はサポートされていません。
移行ジョブを実行する
MySQL Amazon RDS と SUPERUSER
権限のないソースの両方で最初の完全ダンプを取得するには、ソースで書き込みを約 20 秒間停止する必要があります。
書き込みを停止するには、リードレプリカから移行するか、移行元データベースで直接書き込みを停止します。
リードレプリカから移行するには:
Amazon Web Services(AWS)にリードレプリカを作成する。
AWS 読み取りレプリカの接続情報を使用して、Database Migration Service のソース接続プロファイルを構成します。
移行ジョブのステータスが [Starting | Waiting for source writes to stop] に変わったら、AWS プライマリとそのリードレプリカ間のレプリケーションを 20 秒ほど無効にします。
移行ジョブのステータスが [実行中 | 完全なダンプの処理中] に変わったら、AWS のリードレプリカへのレプリケーションを再度有効にします。
AWS のリードレプリカから移行して書き込みを停止する代わりに、移行元データベースで直接書き込みを停止できます。 スクリプトを使用して、ソース データベースへの書き込みがすべて停止されていることを確認できます。
書き込みを停止および再開するタイミングは、移行ジョブのステータスとサブステータスに示されます。ステータスの変更は、API、コンソール、または Cloud Monitoring で直接追跡できます。
ステータスが Starting | Waiting for source writes to stop に変更されたら、移行元データベースへの書き込みを停止する必要があります。Database Migration Service は書き込みが停止したことを検出し、ステータスが [実行中 | ダンプ準備中] に変わります。
ステータスが [実行中 | 完全なダンプの処理中] に変わったら、移行元データベースへの書き込みを再開できます。
Database Migration Service は、約 20 分間、初期ダンプを取ろうとし続けます。書き込みが停止されていない場合、またはステータスの更新前に書き込みが再開された場合、プロセスは失敗し、失敗の原因を示すエラーが返されます。