このトピックでは、同じリージョン内のゾーン間で ApsaraDB RDS for MySQL インスタンスを移行する方法について説明します。移行の完了に必要な時間は、移行する必要があるデータ量によって異なります。ほとんどの場合、移行は数時間以内に完了します。
前提条件
RDS インスタンスは、次の要件を満たしています。
RDS インスタンスは、RDS High-availability Edition または RDS Basic Edition を実行しています。Serverless RDS インスタンスはサポートされていません。
RDS インスタンスは、廃止されたインスタンスタイプを使用していません。詳細については、「標準のプライマリ ApsaraDB RDS for MySQL インスタンスのインスタンスタイプ (元の x86 アーキテクチャ)」をご参照ください。インスタンスタイプの変更方法については、「インスタンスの仕様を変更する」をご参照ください。
RDS インスタンスは実行中状態です。
説明RDS インスタンスに読み取り専用の RDS インスタンスがある場合は、読み取り専用の RDS インスタンスが実行中状態であることを確認してください。そうでない場合、RDS インスタンスを別のゾーンに移行すると、
OperationDenied.MasterDBlnstancestateエラーメッセージが表示されます。
RDS インスタンスがクラウドディスクを使用している場合、RDS インスタンスのマイナーエンジンバージョンは 20201031 以降です。マイナーエンジンバージョンの更新方法については、「マイナーエンジンバージョンを更新する」をご参照ください。
RDS インスタンスが存在するリージョンは、複数のゾーンで構成されています。Alibaba Cloud のリージョンとゾーンの詳細については、「リージョンとゾーン」をご参照ください。
RDS インスタンスでは、共有データベースプロキシが無効になっています。
説明RDS インスタンスで共有データプロキシが有効になっているかどうかを確認するには、次の操作を実行します。RDS インスタンスの [データベースプロキシ] ページで、[読み取り/書き込み分割 (共有)] タブが表示されているかどうかを確認します。タブが表示されている場合、RDS インスタンスで共有データベースプロキシが有効になっています。
共有データベースプロキシは、2021年 4月 1日からメンテナンスされていません。まだ共有データベースプロキシを使用している場合は、共有データベースプロキシを専用データベースプロキシにアップグレードすることをお勧めします。例については、「データベースプロキシを共有データベースプロキシから専用データベースプロキシにアップグレードする」をご参照ください。
専用データベースプロキシまたは汎用データベースプロキシを使用している場合、ゾーン間の移行は影響を受けません。
同じリージョン内のゾーン間で異なるデータベースエンジンを実行する RDS インスタンスを移行する方法の詳細については、以下のトピックをご参照ください。
課金ルール
ゾーン間の移行には料金はかかりません。これは、RDS インスタンスを 1つのゾーンから複数のゾーンに移行する場合でも適用されます。
使用上の注意
RDS インスタンスは、ソースゾーンと同じリージョンにあるゾーンにのみ移行できます。 RDS インスタンスをソースゾーンとは異なるリージョンにあるゾーンに移行する場合は、ターゲットリージョンとゾーンに RDS インスタンスを作成し、DTS を使用して 元の RDS インスタンスから新しい RDS インスタンスにデータを移行し、ワークロードが期待どおりに実行されていることを確認してから、元の RDS インスタンスをリリースできます。
インスタンスのスイッチオーバー: ゾーン間の移行中に、インスタンスのスイッチオーバーがトリガーされる場合があります。その結果、プライマリ RDS インスタンスのエンドポイントとデータベースプロキシエンドポイントは短時間利用できなくなります。アプリケーションが RDS インスタンスに自動的に再接続するように構成されていることを確認してください。アプリケーションが RDS インスタンスに自動的に再接続するように構成されていない場合は、手動でアプリケーションを RDS インスタンスに接続する必要があります。詳細については、「インスタンスのスイッチオーバーの影響」をご参照ください。インスタンスのスイッチオーバーがトリガーされるシナリオを以下に示します。
プライマリ RDS インスタンスのターゲットゾーンがプライマリ RDS インスタンスの現在のゾーンと異なる場合、ゾーン間の移行中にプライマリ RDS インスタンスが変更されます。
プライマリ RDS インスタンスのターゲットゾーンがプライマリ RDS インスタンスの現在のネットワークゾーンと異なる場合、ゾーン間の移行中にプライマリ RDS インスタンスが変更されます。
VIP の変更: ゾーン間の移行中にインスタンスのスイッチオーバーが発生した場合、RDS インスタンスのエンドポイントは変更されませんが、RDS インスタンスの仮想 IP アドレス (VIP) は変更されます。アプリケーションを RDS インスタンスに接続するには、RDS インスタンスの IP アドレスではなくエンドポイントを使用することをお勧めします。
RDS インスタンスが PolarDB-X 1.0 インスタンスに接続されている場合、VIP の変更は RDS インスタンスと PolarDB-X 1.0 インスタンス間の接続に影響を与える可能性があります。できるだけ早く接続の問題を解決することをお勧めします。詳細については、「データベースシャード接続を修正する」をご参照ください。
移行後、データベースクライアントからキャッシュされたドメインネームシステム ( DNS ) レコードをすぐに削除する必要があります。データベースクライアントが JVM で実行されている場合は、JVM 構成の生存時間 ( TTL ) を 60秒以下に設定することをお勧めします。この場合、RDS インスタンスの使用中のエンドポイントにバインドされている仮想 IP アドレスが変更されると、アプリケーションは関連する DNS レコードを再度クエリして新しい仮想 IP アドレスを取得できます。その後、アプリケーションは新しい仮想 IP アドレスに接続できます。
説明JVM 構成で TTL を設定する方法の詳細については、「クラス InetAddress」をご参照ください。
DTS タスクの中断: RDS インスタンスで Data Transmission Service ( DTS ) タスクが実行中の場合、ゾーン間の移行が完了した後にタスクを再起動する必要があります。詳細については、「DTS とは」をご参照ください。
テーブルの再作成: ゾーン間の移行を実行すると、テーブルが再作成されます。その結果、テーブルの作成時間が変更され、INFORMATION_SCHEMA テーブルの CREATE_TIME フィールドの値が変更されます。
RDS インスタンスの移行先ゾーンのリソースインベントリが不足している場合、移行が失敗する可能性があります。
ゾーン間の移行中は、vSwitch のみ変更することはできません。RDS インスタンスの vSwitch を変更する方法の詳細については、「VPC と vSwitch を変更する」をご参照ください。
RDS インスタンスで Premium Enterprise SSD ( ESSD ) を使用していて、インスタンスの バッファプール拡張 ( BPE ) 機能を有効にしている場合、BPE 機能をサポートしていないゾーンに RDS インスタンスを移行することはできません。BPE 機能をサポートしているリージョンとゾーンの詳細については、「適用範囲」をご参照ください。
BPE 機能を無効にしてから、RDS インスタンスをゾーン間で移行できます。
手順
ApsaraDB RDS コンソールにログインし、インスタンス ページに移動します。上部のナビゲーションバーで、RDS インスタンスが存在するリージョンを選択します。次に、RDS インスタンスを見つけて、インスタンス ID をクリックします。
基本情報 ページで、右上隅にある ゾーンの移行 をクリックします。
説明ゾーンの移行 が表示されない場合は、RDS インスタンスが前提条件を満たしているかどうかを確認する必要があります。
インスタンスを別のゾーンに移行する ダイアログボックスで、[ターゲットゾーン] パラメーターを構成し、vSwitch を選択し、[切り替え時間] パラメーターを構成します。次に、OK をクリックします。
重要ターゲットゾーンで仮想プライベートクラウド ( VPC ) と少なくとも 1つの vSwitch が使用可能であることを確認してください。そうでない場合、インスタンスをターゲットゾーンに移行できません。この場合、最初にターゲットゾーンに vSwitch を作成します。
移行シナリオ
説明
1つのゾーンから別のゾーンへの移行
プライマリ RDS インスタンスとセカンダリ RDS インスタンスは、同じターゲットゾーンに存在します。
たとえば、プライマリ RDS インスタンスとセカンダリ RDS インスタンスは
シンガポール ゾーン Cに存在し、インスタンスをシンガポール ゾーン Aに移行します。1つのゾーンから複数のゾーンへの移行
プライマリ RDS インスタンスとセカンダリ RDS インスタンスは、異なるターゲットゾーンに存在します。
たとえば、プライマリ RDS インスタンスとセカンダリ RDS インスタンスは
シンガポール ゾーン Cに存在し、プライマリ RDS インスタンスをシンガポール ゾーン Bに、セカンダリ RDS インスタンスをシンガポール ゾーン A に移行します。説明ゾーン間の移行後、プライマリ RDS インスタンスとセカンダリ RDS インスタンスは異なるゾーンに存在し、ゾーン間のディザスタリカバリ ( DR ) を実現します。
マルチゾーンデプロイメント方式は、シングルゾーンデプロイメント方式よりも高いディザスタリカバリ機能を提供します。シングルゾーンデプロイメント方式を選択した場合、データベースシステムはサーバーとラックの障害に耐えることができます。マルチゾーンデプロイメント方式を選択した場合、データベースシステムはデータセンターの障害に耐えることができます。
データベースシステムにプライマリ RDS インスタンスとセカンダリ RDS インスタンスが含まれている場合は、RDS インスタンスを複数のゾーンに移行してゾーン間の DR を実装することをお勧めします。
複数のゾーンから 1つのゾーンへの移行
プライマリ RDS インスタンスとセカンダリ RDS インスタンスは、同じターゲットゾーンに存在します。
たとえば、プライマリ RDS インスタンスは
シンガポール ゾーン Bに存在し、セカンダリ RDS インスタンスはシンガポール ゾーン A に存在し、RDS インスタンスをシンガポール ゾーン Cに移行します。説明シングルゾーンデプロイメント方式を選択した場合、データベースシステムはゾーン間の DR を実現できません。RDS インスタンスを異なるゾーンに移行することをお勧めします。
複数のゾーンから複数のゾーンへの移行
プライマリ RDS インスタンスとセカンダリ RDS インスタンスは、異なるターゲットゾーンに存在します。
たとえば、プライマリ RDS インスタンスは
シンガポール ゾーン Bに存在し、セカンダリ RDS インスタンスはシンガポール ゾーン C に存在し、プライマリ RDS インスタンスをシンガポール ゾーン Aに、セカンダリ RDS インスタンスをシンガポール ゾーン B に移行します。重要ゾーン間の移行後、システムは [切り替え時間] パラメーターの値に基づいてワークロードを切り替えます。[切り替え時間] パラメーターは、[すぐに切り替える] または 保守時間枠内に切り替える に設定できます。スイッチオーバー中に RDS インスタンスの vSwitch が変更された場合、RDS インスタンスは新しい接続を介して接続されます。アプリケーションが RDS インスタンスに自動的に再接続するように構成されていることを確認してください。そうでない場合は、手動でアプリケーションを RDS インスタンスに再接続する必要があります。
移行後にデータベースクライアントにキャッシュされた DNS レコードがすぐに更新されない場合、一部のワークロードは 10分後にターゲットのプライマリゾーンに切り替えられる可能性があります。その結果、RDS インスタンスで別のインスタンスのスイッチオーバーが発生します。アプリケーションが RDS インスタンスに自動的に再接続するように構成されていることを確認してください。そうでない場合は、手動でアプリケーションを RDS インスタンスに再接続する必要があります。
インスタンスのスイッチオーバーの影響の詳細については、「インスタンスのスイッチオーバーの影響」をご参照ください。
[インスタンスをゾーン間で移行する] ダイアログボックスで、移行前後のゾーン情報を確認し、[OK] をクリックします。
関連操作
操作 | 説明 |
インスタンスをゾーン間で移行します。 |
よくある質問
ゾーン間の移行中に RDS インスタンスにデータが書き込まれた場合、ワークロードのスイッチオーバー後に RDS インスタンスの元のデータは影響を受けますか? 新しく書き込まれたデータは保持されますか?
元のデータは影響を受けず、新しく書き込まれたデータは保持されます。
重要移行中にインスタンスのスイッチオーバーが発生します。アプリケーションが RDS インスタンスに自動的に再接続するように構成されていることを確認してください。そうでない場合は、手動でアプリケーションを RDS インスタンスに再接続する必要があります。インスタンスのスイッチオーバーの影響の詳細については、「インスタンスのスイッチオーバーの影響」をご参照ください。
ゾーン間の移行に必要な時間に影響を与える要因は何ですか?
RDS インスタンスで Premium Local SSD を使用している場合、ゾーン間の移行に必要な時間は、RDS インスタンスのデータ量によって異なります。RDS インスタンスに大量のデータが存在する場合、数時間かかります。RDS インスタンスでクラウドディスクを使用している場合は、最大 1時間かかります。