この手順に従ってワークロードのスイッチオーバーを実行し、ロールバックソリューションを作成することで、データ移行中のビジネスへの影響を最小限に抑えることができます。
前提条件
データ移行タスクが設定済みで、そのステータスが 移行中 または 完了 であること。設定例については、「移行シナリオ」をご参照ください。
注意事項
-
ビジネスアプリケーションとデータベースへの書き込みを停止する必要があるため、ワークロードのスイッチオーバーはオフピーク時間帯に実行してください。
-
データ移行に必要な権限を持つ専用のデータベースアカウントを作成してください。これにより、セッション情報の特定が容易になり、セキュリティが向上します。
操作手順
-
データ移行タスクが 増分データ移行 フェーズに入るまで待ちます。ステータスは 遅延なし と表示されるか、遅延が 5 秒未満である必要があります。
説明タスクの設定時に [増分データ移行] を選択しなかった場合、タスクは 増分データ移行 フェーズに入らず、自動的に終了します。この場合、移行を開始する前に、ソースデータベースへのすべてのアプリケーショントラフィックを停止する必要があります。その後、手順 5 に進んでください。
-
すべてのアプリケーショントラフィックを停止し、ソースデータベースへの新しい書き込み操作を防ぎます。
-
ソースデータベースにログインし、お使いのデータベースの種類に応じたコマンドを実行して、新しいセッションが書き込み操作を実行していないことを確認します。
MySQL
show processlist;SQL Server
select * from sys.dm_exec_connections;Oracle
select sid,serial#,username,program,machine,status from v$session;PostgreSQL
select * from pg_stat_activity;Redis
CLIENT LISTMongoDB
use admin db.runCommand({currentOp: 1, $all:[{"active" : true}]})説明これらのコマンドの結果には、DTS がソースデータベースへの接続に使用するプロセスやセッションが含まれます。
-
増分データ移行 のステータスが 遅延なし に戻り、少なくとも 1 分間安定するのを待ちます。その後、移行タスクを手動で一時停止します。
警告タスクが一時停止している間は、再起動しないでください。タスクを再起動すると、データの不整合が発生する可能性があります。
増分同期のステータスが [遅延なし] と表示されたら、対象の移行タスクのチェックボックスを選択し、下部の一括操作バーで [一時停止] をクリックします。
-
アプリケーションが停止している間に、ソースデータベースの書き込み権限を再度有効にします。
-
逆方向データ移行タスクを作成して開始し、ターゲットデータベースからソースデータベースへ増分データを移行します。このタスクはロールバックソリューションを提供します。アプリケーションをターゲットデータベースに切り替えた後に問題が発生した場合、ワークロードを元のソースデータベースに戻すことができます。
たとえば、元のタスクが自己管理型 MySQL データベースから ApsaraDB RDS for MySQL インスタンスにデータを移行した場合、逆方向タスクの設定手順については、「ApsaraDB RDS for MySQL から自己管理型 MySQL への移行」をご参照ください。逆方向タスクでは、[増分データ移行] のみを選択します。
警告逆方向データ移行タスクを設定する際、[移行タイプとオブジェクト] セクションで [増分データ移行] のみを選択します。その後、ソースデータベースに移行するデータベースまたはテーブルを選択します。
-
アプリケーションをターゲットデータベースに切り替えた後、元の DTS データ移行タスクを終了またはリリースします。
-
逆方向データ移行タスクは、ターゲットデータベースからソースデータベースへ増分データを継続的にレプリケートします。これにより、問題が発生した場合でも、いつでもアプリケーションをソースデータベースに戻すことができます。
次のステップ
アプリケーションがターゲットデータベースで一定期間安定して稼働し、すべてのビジネス機能が正常に動作することを確認した後、逆方向データ移行タスクを終了できます。詳細については、「データ移行タスクの終了」をご参照ください。
データ移行に使用されたデータベースアカウントには、読み取りおよび書き込み権限があります。データベースのセキュリティを確保するため、移行完了後にこのアカウントを削除するか、その書き込み権限を取り消してください。
よくある質問
-
Q:ワークロードのスイッチオーバー後にアプリケーションで問題が発生した場合はどうすればよいですか?
A:逆方向データ移行タスクは、ターゲットデータベースからソースデータベースへ増分データを継続的にレプリケートします。問題が発生した場合は、いつでもアプリケーションをソースデータベースに戻すことができます。
-
Q:ワークロードのスイッチオーバーに失敗した場合、ソースデータベースのデータ整合性をどのように確保すればよいですか?
A:スイッチオーバーを開始する前に、ソースデータベースをバックアップすることを推奨します。
-
Q:スイッチオーバー後、誤って新しいデータがソースデータベースに書き込まれた場合はどうすればよいですか?
A:データ検証を使用して、ソースデータベースとターゲットデータベース間のデータの不一致を特定し、手動で修正します。