MySQL の移行前提条件の構成
MySQL ソース データベースから同期ジョブを実行するには、データベースの構成変更が必要になる場合があります。 Relational Migrator でデータベースの構成変更が必要と判断された場合は、必要な変更を伴う SQL スクリプトが自動的に生成されます。 データベース管理者(DBA)にこのスクリプト内のコマンドを確認し、データベース サーバー上で実行することをお勧めします。 MySQL Server の構成は 同期ジョブ のタイプによって異なります。
スナップショット同期ジョブはすべてのデータを移行し、その後停止します。
継続的な同期ジョブはスナップショットを実行し、その後 CDC ステージに入り、データ変更を継続的に複製します。
MySQL でサポートされているバージョンの詳細については、「 サポートされているデータベースとバージョン 」を参照してください。
手順
(任意)ユーザー権限を設定する
次のコードでは、MySQL インスタンスに接続するための Relational Migrator 用の新しい MySQL サービス アカウントが作成されます。 あるいは、既存の MySQL サービス アカウントを使用して、適切な権限を持つ Relational Migrator に接続することもできます。
サービス アカウントを作成します。
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; サービス アカウントに必要な権限を付与します。
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%'; ユーザー特権の変更を適用します。
FLUSH PRIVILEGES;
Relational Migrator で継続的なジョブを実行するには、 バイナリ ログ が必要です MySQL インスタンスで有効にする必要があります。バイナリ ログ(Binlog)には、すべての操作がデータベースにコミットされる順序で記録されます。
(任意)ユーザー権限を設定する
次のコードでは、MySQL インスタンスに接続するための Relational Migrator 用の新しい MySQL サービス アカウントが作成されます。 あるいは、既存の MySQL サービス アカウントを使用して、適切な権限を持つ Relational Migrator に接続することもできます。
サービス アカウントを作成します。
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; サービス アカウントに必要な権限を付与します。
GRANT SELECT, RELOAD, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'%'; ユーザー特権の変更を適用します。
FLUSH PRIVILEGES;
(任意)Binlog が有効になっているかどうかを手動で確認します
Relational Migrator はこの設定を自動的にチェックします。 Binlog
オプションが有効になっているかどうかを手動で確認するには、MySQL のバージョンに対して以下のクエリを使用します。
注意
Binlog
は、MySQL 8.x
バージョンではデフォルトで自動的に有効になっています。
SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM performance_schema.global_variables WHERE variable_name='log_bin';
SELECT variable_value as "BINARY LOGGING STATUS (log-bin) ::" FROM information_schema.global_variables WHERE variable_name='log_bin';
MySQL 構成ファイルを見つけて更新します
次の SQL クエリを実行して、MySQL インスタンスの
server_id
値を取得します。SELECT variable_value FROM performance_schema.global_variables WHERE variable_name='server_id'; SELECT variable_value FROM information_schema.global_variables WHERE variable_name='server_id'; MySQL インスタンスの構成ファイルを見つけるには、ターミナルで次の
mysqld
コマンドを実行します。mysql --help | findstr cnf mysql --help | grep cnf MySQL 構成ファイルの
[mysqld]
セクションの下に、次の行を追加します。XXXXX
の値を前のクエリのserver_id
に置き換えます。server-id = XXXXX log_bin = mysql-bin binlog_format = ROW binlog_row_image = FULL binlog_expire_logs_seconds = 864000 server-id = XXXXX log_bin = mysql-bin binlog_format = ROW binlog_row_image = FULL expire_log_days = 10 注意
MySQLAmazon Web ServicesRDS と 自動バックアップ で を実行している場合
Binlog
が有効になっていない場合は、構成ファイルで値が設定されている場合でも、 は無効になります。
詳細
Relational Migrator は、行レベルの変更をキャプチャするためにオープンソースの Debezium コネクターに依存しています。 詳細については、「 Debezium MySQL 」を参照してください。