このページでは、継続的な同種 MySQL 移行用に次のソース データベース インスタンスを構成する方法について説明します。
- Cloud SQL for MySQL
- セルフホスト型 MySQL
- Amazon RDS for MySQL
- Amazon Aurora for MySQL
- Microsoft Azure Database for MySQL
Cloud SQL for MySQL ソースを構成する
移行プロセス用に Cloud SQL for MySQL のソース インスタンスを構成するには、次の操作を行います。
- ソース データベースに、
DEFINER句を使用してユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句でメタデータを確認するをご覧ください。同種の MySQL 移行用の Database Migration Service では、ユーザー アカウントとログインは移行されません。
DEFINER句を含むユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysのシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認してください。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗することがあります。 -
移行元データベースでバイナリログを有効にして構成します。
Cloud SQL for MySQL では、ポイントインタイム リカバリ(PITR)を使用すると、バイナリ ロギングが自動的に有効になります。ログの形式と保持期間は、Cloud SQL で使用可能なシステムフラグを使用して構成できます。次の操作を行います。
- インスタンスで PITR を有効にします。この機能により、バイナリ ロギングが自動的に有効になります。Cloud SQL で PITR を使用せずにバイナリ ロギングを有効にすることはできません。Cloud SQL のドキュメントの ポイントインタイム リカバリ(PITR)をご覧ください。
- Cloud SQL フラグを使用して、ロギング構成を調整します。詳細については、Cloud SQL のドキュメントのデータベース フラグを構成するをご覧ください。
- Database Migration Service では、
binlog_formatをROWに設定する必要があります。この設定を調整する必要はありません。Cloud SQL for MySQL はbinlog_formatフラグをROWに自動的に設定します。 -
ログの保持期間を、データベースの移行をサポートするのに十分な期間に設定します。通常は 1 週間ほどで十分です。
次のいずれかのフラグを使用します。
- MySQL 5.6 ~ 5.7:
expire_logs_days - MySQL 8.0 以降:
expire_logs_days、binlog_expire_logs_seconds
- MySQL 5.6 ~ 5.7:
- Database Migration Service では、
-
インスタンスに移行専用のユーザー アカウントを作成します。 Cloud SQL ドキュメントの ユーザーを作成するをご覧ください。次の点を確認してください。
- 専用ユーザー アカウントが任意のホスト(
host=%)から接続できるようにします。 - アカウントのパスワードの長さが 32 文字を超えていない。 MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用ユーザー アカウントが任意のホスト(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。継続的な移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
マネージド ダンプ
Database Migration Service で移行元データベースの完全ダンプを自動的に取得する場合は、ユーザー アカウントに次の権限を割り当てます。
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERRELOAD- ソース MySQL バージョン 8.0 以降の場合: 移行アカウントに
BACKUP_ADMIN権限がないことを確認します。
手動ダンプ
mysqldumpで作成した独自のダンプファイルを使用する場合は、CDC フェーズに必要な権限を付与する必要があります。
セルフホスト型 MySQL ソースを構成する
移行プロセス用に自己ホスト型の MySQL ソース インスタンスを構成するには、次の操作を行います。
- すべてのテーブル(システム データベース内のテーブルを除く)で InnoDB ストレージ エンジンが使用されていることを確認します。別のストレージ エンジンを使用する場合は、テーブルの変換が必要になることがあります。詳細については、 MyISAM から InnoDB へのテーブルの変換をご覧ください。
- ソース データベースに、
DEFINER句を使用してユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句を使用してメタデータを検証するをご覧ください。Database Migration Service の同タイプの MySQL 移行では、ユーザー アカウントとログインは移行されません。
DEFINER句を含むユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysのシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認してください。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗することがあります。 server-idの設定を1以上の値に構成します。詳細については、 レプリケーションとバイナリログのオプションと変数をご覧ください。-
GTID_MODEがONまたはOFFに設定されていることを確認します。他の値はサポートされていません。Database Migration Service では、次のシナリオで
GTID_MODEをONに設定する必要があります。- リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合。
- 移行プロセスが完了した後に カスケード リードレプリカを設定する場合。
- ダンプファイルを手動で作成し、移行ジョブで提供する場合。
GTID_MODEの詳細については、 グローバル トランザクション ID システム変数をご覧ください。 -
ソース データベースでバイナリログを有効にして構成します。手順は次のとおりです。
- 移行元データベースでバイナリログを有効にします。
binlog_formatを'ROW'に設定します。行ベースのバイナリ ロギングをご覧ください。-
ログの保持期間を、データベースの移行をサポートするのに十分な期間に設定します。通常は 1 週間ほどで十分です。次のいずれかのフラグを使用します。
- MySQL 5.5 ~ 5.7:
expire_logs_days - MySQL 8.0:
expire_logs_days、binlog_expire_logs_seconds
- MySQL 5.5 ~ 5.7:
-
インスタンスに移行専用のユーザー アカウントを作成します。 アカウント管理に関する声明をご覧ください。次の点を確認してください。
- 専用ユーザー アカウントが任意のホスト(
host=%)から接続できるようにします。 - アカウントのパスワードが 32 文字以内である。MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用ユーザー アカウントが任意のホスト(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。継続的移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
マネージド ダンプ
Database Migration Service で移行元データベースの完全ダンプを自動的に取得する場合は、ユーザー アカウントに次の権限を割り当てます。
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERGTID_MODE = ON設定のあるソースの場合:RELOADマネージド ダンプフローでは、リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合にのみ、Database Migration Service で
GTID_MODE = ONの設定が必要になります。- ソース MySQL バージョン 8.0 以降の場合: 移行アカウントに
BACKUP_ADMIN権限がないことを確認します。
手動ダンプ
mysqldumpで作成されたダンプファイルを独自に指定する場合は、CDC フェーズに必要な権限を付与する必要があります。
Amazon RDS for MySQL ソースを構成する
移行プロセス用に Amazon RDS for MySQL のソース インスタンスを構成するには、次の操作を行います。
- Amazon RDS for MySQL は、デフォルトで InnoDB ストレージ エンジンを使用しますが、他のストレージ エンジンを使用することもできます。すべてのテーブル(システム データベースのテーブルを除く)で InnoDB ストレージ エンジンが使用されていることを確認します。別のストレージ エンジンを使用している場合は、テーブルの変換が必要になることがあります。詳細については、 MyISAM から InnoDB へのテーブルの変換をご覧ください。
- ソース データベースに
DEFINER句でユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句でメタデータを確認するをご覧ください。同種の MySQL 移行用の Database Migration Service では、ユーザー アカウントとログインは移行されません。
DEFINER句を含むユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysのシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認してください。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗する可能性があります。 -
GTID_MODEがONまたはOFFに設定されていることを確認します。他の値はサポートされていません。Amazon RDS for MySQL は、デフォルトでGTID_MODE = OFFを使用します。Database Migration Service では、次のシナリオで
GTID_MODEをONに設定する必要があります。- リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合。
- ダンプファイルを手動で作成し、移行ジョブで提供する場合。
GTID_MODEの詳細については、 グローバル トランザクション ID システム変数をご覧ください。 -
移行元データベースでバイナリログを確認して構成します。手順は次のとおりです。
- インスタンスで自動バックアップが使用されていることを確認します。Amazon RDS は、自動バックアップが有効になっている場合にのみバイナリログを生成します。詳細については、Amazon RDS ドキュメントの自動バックアップの有効化をご覧ください。
-
ログの保持期間を、データベースの移行をサポートするのに十分な期間に設定します。通常は 1 週間ほどで十分です。 Amazon RDS ドキュメントの バイナリログ構成の設定と表示をご覧ください。
- サーバーを再起動して、変更を反映させます。
-
インスタンスに移行専用のユーザー アカウントを作成します。 アカウント管理ステートメントをご覧ください。次のことを確認してください。
- 専用ユーザー アカウントが任意のホスト(
host=%)から接続できるようにします。 - アカウントのパスワードが 32 文字以下である。MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用ユーザー アカウントが任意のホスト(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。継続的な移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
マネージド ダンプ
Database Migration Service で移行元データベースの完全ダンプを自動的に取得する場合は、ユーザー アカウントに次の権限を割り当てます。
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERLOCK TABLESGTID_MODE = ON設定のあるソースの場合:RELOADマネージド ダンプフローでは、リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合にのみ、Database Migration Service で
GTID_MODE = ONの設定が必要になります。- ソース MySQL バージョン 8.0 以降の場合: 移行アカウントに
BACKUP_ADMIN権限がないことを確認します。
手動ダンプ
mysqldumpで作成されたダンプファイルを指定する場合は、CDC フェーズに必要な権限を指定する必要があります。
Amazon Aurora for MySQL ソースを構成する
移行プロセス用に Amazon Aurora for MySQL のソース インスタンスを構成するには、次の操作を行います。
- ソース データベースに
DEFINER句でユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句を使用してメタデータを検証するをご覧ください。同種の MySQL 移行用の Database Migration Service では、ユーザー アカウントとログインは移行されません。
DEFINER句を使用してユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認します。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗する可能性があります。 -
GTID_MODEがONまたはOFFに設定されていることを確認します。他の値はサポートされていません。Amazon Aurora for MySQL は、デフォルトでGTID_MODE = OFFを使用します。Database Migration Service では、次のシナリオで
GTID_MODEをONに設定する必要があります。- リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合。
- ダンプファイルを手動で作成し、移行ジョブで提供する場合。
GTID_MODEの詳細については、 グローバル トランザクション ID システム変数をご覧ください。 -
ソース データベースでバイナリログを有効にして構成します。手順は次のとおりです。
- MySQL データベースのバイナリ ロギングを有効にします。
-
ログの保持期間を、データベースの移行をサポートするのに十分な期間に設定します。通常は 1 週間ほどで十分です。 バイナリログの構成の設定と表示をご覧ください。
- サーバーを再起動して、変更を反映させます。
-
インスタンスに移行専用のユーザー アカウントを作成します。 アカウント管理ステートメントをご覧ください。次の点を確認してください。
- 専用ユーザー アカウントが任意のホスト(
host=%)から接続できるようにします。 - アカウントのパスワードが 32 文字以下である。MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用ユーザー アカウントが任意のホスト(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。継続的移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
マネージド ダンプ
Database Migration Service で移行元データベースの完全ダンプを自動的に取得する場合は、ユーザー アカウントに次の権限を割り当てます。
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERLOCK TABLESGTID_MODE = ON設定のあるソースの場合:RELOADマネージド ダンプフローでは、リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合にのみ、Database Migration Service で
GTID_MODE = ONの設定が必要になります。- ソース MySQL バージョン 8.0 以降の場合: 移行アカウントに
BACKUP_ADMIN権限がないことを確認します。
手動ダンプ
mysqldumpで作成されたダンプファイルを独自に指定する場合は、CDC フェーズに必要な権限を付与する必要があります。
Microsoft Azure Database for MySQL ソースを構成する
移行プロセス用に Microsoft Azure Database for MySQL のソース インスタンスを構成するには、次の操作を行います。
- ソース データベースに、
DEFINER句を使用してユーザーが定義したメタデータが含まれているかどうかを確認します。DEFINER句を使用してメタデータを検証するをご覧ください。同種の MySQL 移行用の Database Migration Service では、ユーザー アカウントとログインは移行されません。
DEFINER句を含むユーザー アカウントで定義されたメタデータを含むソースは、移行をブロックする可能性があります。 - ソース データベースに
mysql、performance_schema、information_schema、ndbinfo、sysシステム スキーマのテーブルを参照するオブジェクトが含まれている場合は、レプリカ データベースにもこれらのシステム スキーマ テーブルが含まれていることを確認します。レプリカ データベースにこれらのテーブルがない場合、移行ジョブが
Unknown table in system schemaで失敗することがあります。 -
GTID_MODEがONまたはOFFに設定されていることを確認します。他の値はサポートされていません。Microsoft Azure Database for MySQL では、デフォルトでGTID_MODE = OFFが使用されます。Database Migration Service では、次のシナリオで
GTID_MODEをONに設定する必要があります。GTID_MODEの詳細については、 グローバル トランザクション ID システム変数をご覧ください。 -
移行元データベースのバイナリ ロギング設定を確認して構成します。次のように対応します。
- Microsoft Azure Database for MySQL では、バイナリ ロギングがデフォルトで有効になっています。有効にする必要はありませんが、この機能が有効になっていることを確認してください。詳細については、 Microsoft のドキュメントをご覧ください。
-
binlog_expire_logs_secondsには、データベースの移行をサポートするのに十分な期間を設定します。通常は 1 週間ほどで十分です。詳細については、Azure Database for MySQL でサーバー パラメータを構成すると、Microsoft ドキュメントの
binlog_expire_logs_secondsパラメータをご覧ください。 - サーバーを再起動して、変更を反映させます。
require_secure_transport設定の値を確認します。デフォルトでは、Microsoft Azure データベースではすべての受信接続で SSL/TLS 暗号化が必要です。
require_secure_transportの値に応じて、ソース接続プロファイルを作成するときに、次のいずれかの暗号化設定を使用します。require_secure_transportがonに設定されている場合は、[Basic]、[TLS]、[mTLS] のいずれかを選択します。require_secure_transportがoffに設定されている場合は、[なし] を選択します。
-
インスタンスに移行専用のユーザー アカウントを作成します。 アカウント管理ステートメントをご覧ください。次の点を確認してください。
- 専用ユーザー アカウントが任意のホスト(
host=%)から接続できるようにします。 - アカウントのパスワードが 32 文字以下である。MySQL ユーザーのパスワードの長さの制限については、MySQL バグ #43439 をご覧ください。
- 専用ユーザー アカウントが任意のホスト(
-
移行専用のユーザー アカウントに必要な権限を割り当てます。継続的移行の場合、必要な権限の完全なリストは、独自のダンプファイルを提供するか、Database Migration Service のマネージド ダンプ機能を使用するかによって異なります。
マネージド ダンプ
Database Migration Service で移行元データベースの完全なダンプを自動的に取得する場合は、ユーザー アカウントに次の権限を割り当てます。
REPLICATION SLAVEEXECUTEREPLICATION CLIENTSELECTSHOW VIEWTRIGGERGTID_MODE = ON設定のソースの場合:RELOADマネージド ダンプフローでは、リードレプリカが有効になっている 既存の移行先インスタンスに移行する場合にのみ、Database Migration Service で
GTID_MODE = ONの設定が必要になります。- ソース MySQL バージョン 8.0 以降の場合: 移行アカウントに
BACKUP_ADMIN権限がないことを確認します。
手動ダンプ
mysqldumpで作成されたダンプファイルを指定する場合は、CDC フェーズに必要な権限を指定する必要があります。
次のステップ
同種の Cloud SQL for MySQL 移行の詳細な移行手順については、 Cloud SQL for MySQL 移行のスタートガイドをご覧ください。