Data Transmission Service (DTS) インスタンスがターゲットデータベースにデータを移行した後、このトピックでは、ビジネスへの影響を最小限に抑えながらワークロードを切り替える方法について説明します。次の手順では、移行インスタンスを例として使用します。
前提条件
移行インスタンスが設定され、そのステータスが [実行中] または [完了] であること。インスタンスの設定方法の詳細については、「移行シナリオ」をご参照ください。
概要
ソースデータベースへのアプリケーションの書き込みを停止します。
データの損失を防ぐため、ソースデータベースに新しいデータが書き込まれないように、アプリケーションを停止します。
移行インスタンスを一時停止します。
ソースデータベースのすべてのデータがターゲットデータベースに書き込まれた後、移行インスタンスを一時停止します。
逆方向移行インスタンスを作成して開始します。
ターゲットデータベースからソースデータベースへ増分データをリアルタイムで移行し、ロールバックソリューションを提供します。切り替え後に問題が発生した場合、ソースデータベースに戻すことができます。
ワークロードを切り替えます。
アプリケーションの接続先をターゲットデータベースに切り替え、操作を再開します。
注意事項
ビジネスへの影響を最小限に抑えるため、オフピーク時にワークロードを切り替えることを推奨します。このプロセスでは、アプリケーションとデータベースの書き込みを停止する必要があります。
セッションの識別を容易にし、データセキュリティを向上させるために、データ移行専用のデータベースアカウントを作成することを推奨します。
ワークロードを切り替えるには、移行インスタンスを一時停止する必要があります。7 日以上一時停止されたインスタンスは再開できません。
自動更新が有効になっているサブスクリプションタスクを使用しなくなった場合は、手動で自動更新を無効にするか、タスクが属するインスタンスをリリースすることを推奨します。そうしない場合、追加料金が発生します。詳細については、「期限切れリソースの更新」および「DTS インスタンスのリリース」をご参照ください。
操作手順
ワークロードの切り替え
移行インスタンスが [増分データ移行] 段階に達するまで待機し、実行段階の情報 列のレイテンシーが 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 インスタンスからソースデータベースへの接続が含まれます。
移行インスタンスを一時停止します。
重要一時停止したインスタンスを再開しないでください。データの不整合が発生する可能性があります。
移行インスタンスに [増分データ移行] 段階がない場合は、この手順をスキップします。
移行インスタンスのレイテンシーが 0 ミリ秒に低下するまで待機します。
説明自動再読み込み が無効になっている場合は、操作 列の上にある更新アイコン
をクリックしてレイテンシーを更新できます。0 のレイテンシーは一時的なものである可能性があります。
これは、ソースデータベースからの保留中のすべてのデータがターゲットデータベースに移行されたことを示します。
さらに 1〜3 分待機します。
この間、インスタンスのレイテンシーは 2 秒の範囲内で変動する可能性があります。
- [データ同期] ページで、一時停止する移行インスタンスを見つけ、[操作] 列の を選択します。
表示されるメッセージで、[OK] をクリックします。
インスタンスの ステータス が 一時停止中 に変わるまで待機します。
逆方向移行インスタンスを作成します。
アプリケーションを停止したままにします。
ソースデータベースの書き込み制限を解除します。
逆方向移行インスタンスを作成して開始します。
重要インスタンスを設定する際は、移行タイプ として 増分データ移行 のみを選択します。
インスタンスの作成手順については、「移行シナリオ」をご参照ください。
インスタンスの ステータス が 実行中 に変わるまで待機します。
ワークロードを切り替えます。
アプリケーションの接続先をターゲットデータベースに切り替えます。
アプリケーションのデータ書き込みを再開します。
アプリケーションの機能をテストします。
ロールバックソリューション
このソリューションは、ワークロードの切り替えが失敗した場合やその他の問題が発生した場合にサービスを復元するために使用します。
アプリケーションによるデータベースへの新しいデータの書き込みを停止します。
ワークロードをソースデータベースに切り戻します。
アプリケーションのデータ書き込みを再開します。
次のステップ
ターゲットデータベースに切り替えてアプリケーションが安定していることを確認した後、関連するすべての機能をテストします。問題が見つからない場合は、逆方向移行インスタンスを終了できます。詳細については、「DTS インスタンスを終了する」をご参照ください。
データ移行に使用されるデータベースアカウントには読み取りおよび書き込み権限があります。データベースのセキュリティのため、移行完了後にこのアカウントを削除するか、書き込み権限を取り消してください。
よくある質問
Q: ワークロードの切り替え後、元の移行インスタンスはどうすればよいですか?
A: 必要に応じて、インスタンスを終了またはリリースできます。詳細については、「DTS インスタンスを終了する」および「DTS インスタンスをリリースする」をご参照ください。
Q: ワークロードの切り替え後、誤ってソースデータベースに新しいデータが書き込まれた場合はどうすればよいですか?
A: データ検証を使用してソースデータベースとターゲットデータベースの間のデータの不整合を特定し、手動でデータを修正します。
> [タスクの一時停止]