アップストリームMySQLインスタンス間のDM-worker接続の切り替え
DM-workerが接続するアップストリームMySQLインスタンスでダウンタイムのメンテナンスが必要な場合、またはインスタンスが予期せずクラッシュした場合は、DM-worker接続を同じ移行グループ内の別のMySQLインスタンスに切り替える必要があります。
ノート:
- DM-worker接続を、同じプライマリ-セカンダリ移行クラスタ内のインスタンスのみに切り替えることができます。
- 新しく接続するMySQLインスタンスには、DM-workerが必要とするbinlogが必要です。
- DM-workerはGTIDセットモードで動作する必要があります。つまり、対応するソース構成ファイルで
enable-gtid: true
を指定する必要があります。- 接続スイッチは、次の2つのシナリオのみをサポートします。各シナリオの手順に厳密に従ってください。そうしないと、新しく接続されたMySQLインスタンスに従ってDMクラスタを再デプロイし、データ移行タスクを最初からやり直す必要がある場合があります。
GTIDセットの詳細については、 MySQLドキュメントを参照してください。
仮想IPを介したDM-worker接続の切り替え
DM-workerが仮想IP(VIP)を介してアップストリームMySQLインスタンスに接続する場合、VIP接続を別のMySQLインスタンスに切り替えることは、アップストリーム接続アドレスを変更せずに、DM-workerに接続されたMySQLインスタンスを切り替えることを意味します。
ノート:
このシナリオでは、DMに必要な変更を加えます。そうしないと、VIP接続を別のMySQLインスタンスに切り替えるときに、DMが新しいMySQLインスタンスと古いMySQLインスタンスに同時に異なる接続で接続する可能性があります。この状況では、DMにレプリケートされたbinlogは、DMが受信する他のアップストリームステータスと一致しないため、予測できない異常やデータの損傷が発生します。
1つのアップストリームMySQLインスタンス(DM-workerがVIPを介してそれに接続する場合)を別のインスタンスに切り替えるには、次の手順を実行します。
query-status
コマンドを使用して、binlogレプリケーションの現在の処理ユニットがダウンストリームに複製したbinlogに対応するGTIDセット(syncerBinlogGtid
)を取得します。セットをgtid-S
としてマークします。- 新しいMySQLインスタンスで
SELECT @@GLOBAL.gtid_purged;
コマンドを使用して、パージされたbinlogに対応するGTIDセットを取得します。セットをgtid-P
としてマークします。 - 新しいMySQLインスタンスで
SELECT @@GLOBAL.gtid_executed;
コマンドを使用して、正常に実行されたすべてのトランザクションに対応するGTIDセットを取得します。セットをgtid-E
としてマークします。 - 以下の条件を満たしていることを確認してください。そうしないと、DM-work接続を新しいMySQLインスタンスに切り替えることができません。
gtid-S
にはgtid-P
が含まれます。gtid-P
は空にすることができます。gtid-E
にはgtid-S
が含まれます。
pause-task
を使用して、データ移行の実行中のすべてのタスクを一時停止します。- 新しいMySQLインスタンスに向けるようにVIPを変更します。
resume-task
を使用して、前の移行タスクを再開します。
DM-workerが接続するアップストリームMySQLインスタンスのアドレスを変更します
DM-workerの構成を変更して、DM-workerをアップストリームの新しいMySQLインスタンスに接続するには、次の手順を実行します。
query-status
コマンドを使用して、binlogレプリケーションの現在の処理ユニットがダウンストリームに複製したbinlogに対応するGTIDセット(syncerBinlogGtid
)を取得します。このセットをgtid-S
としてマークします。- 新しいMySQLインスタンスで
SELECT @@GLOBAL.gtid_purged;
コマンドを使用して、パージされたbinlogに対応するGTIDセットを取得します。このセットをgtid-P
としてマークします。 - 新しいMySQLインスタンスで
SELECT @@GLOBAL.gtid_executed;
コマンドを使用して、正常に実行されたすべてのトランザクションに対応するGTIDセットを取得します。このセットをgtid-E
としてマークします。 - 以下の条件を満たしていることを確認してください。そうしないと、DM-work接続を新しいMySQLインスタンスに切り替えることができません。
gtid-S
にはgtid-P
が含まれます。gtid-P
は空にすることができます。gtid-E
にはgtid-S
が含まれます。
stop-task
を使用して、データ移行の実行中のすべてのタスクを停止します。operator-source stop
コマンドを使用して、古いMySQLインスタンスのアドレスに対応するソース構成をDMクラスタから削除します。- ソース構成ファイルのMySQLインスタンスのアドレスを更新し、
operate-source create
コマンドを使用してDMクラスタに新しいソース構成を再ロードします。 start-task
を使用して、移行タスクを再開します。