SUPERUSER 権限のない Amazon RDS MySQL からの移行

SUPERUSER 権限が許可されていない Amazon RDS MySQL ソースを使用して移行ジョブを正常に作成して実行するには、いくつかの追加の手順が必要になることがあります。

Amazon RDS MySQL 移行ジョブを作成する

  1. MySQL では、送信元ホスト名の定義が 60 文字に制限されています。Amazon RDS データベースのホスト名は通常、60 文字を超えます。移行するデータベースがこれに該当する場合は、DNS リダイレクトを構成して、ドメイン名を Amazon RDS DB インスタンスのドメイン名に関連付ける CNAME レコードを作成します。DNS CNAME の設定について詳しくは、Cloud DNS のドキュメントまたは AWS Route53 のドキュメントをご覧ください。

  2. バイナリログは標準のブロック ストレージに保存する必要があり、Amazon S3 に保存することはできません。

  3. 手動ダンプを指定して継続的な移行ジョブを作成するには、GTID を有効にする必要があります。GTID_MODE は、ONOFF、または OFF_PERMISSIVE のいずれかにする必要があります。ON_PERMISSIVEGTID_MODE 値はサポートされていません。

移行ジョブを実行する

MySQL Amazon RDS と SUPERUSER 権限のないソースの両方で最初の完全ダンプを行うには、ソースでの書き込みを約 20 秒間停止する必要があります。

書き込みを停止するには、リードレプリカから移行するか、移行元データベースで書き込みを直接停止します。

リードレプリカから移行するには:

  1. Amazon Web Services(AWS)にリードレプリカを作成します。

  2. AWS 読み取りレプリカの接続情報を使用して、Database Migration Service の移行元接続プロファイルを構成します。

  3. 移行ジョブのステータスが [Starting | Waiting for source writes to stop] に変わったら、AWS プライマリとその読み取りレプリカ間のレプリケーションを約 20 秒間無効にします。

  4. 移行ジョブのステータスが [実行中 | 完全なダンプの処理中] に変わったら、AWS でリードレプリカへのレプリケーションを再度有効にします。

AWS のリードレプリカから移行して書き込みを停止する代わりに、移行元データベースで直接書き込みを停止できます。 スクリプトを使用して、ソース データベースへのすべての書き込みが停止したことを確認できます。

書き込みを停止して再開するタイミングは、移行ジョブのステータスとサブステータスに示されます。ステータスの変更は、API、コンソール、または Cloud Monitoring で直接追跡できます。

  1. ステータスが [Starting | Waiting for source writes to stop] に変わったら、移行元データベースへの書き込みを停止する必要があります。Database Migration Service は書き込みが停止したことを検出し、ステータスが [実行中 | ダンプの準備中] に変わります。

  2. ステータスが [実行中 | 完全なダンプの処理中] に変わったら、移行元データベースへの書き込みを再開しても安全です。

Database Migration Service は、約 20 分間、初期ダンプの取得を試行し続けます。書き込みが停止されていない場合、またはステータスの更新前に書き込みが再開された場合、プロセスは失敗し、失敗の原因を説明するエラーが返されます。