RDS for MySQL からPolarDB for MySQL へのワンクリックアップグレード中に、ターゲットのPolarDB クラスターが作成されてデータ同期が始まります。アップグレードされたPolarDB クラスターは、ソース RDS インスタンスからアカウント情報、データベース、IP ホワイトリスト、および必要なパラメータ設定を引き継ぎます。
アップグレードプロセス全体には、以下の手順が含まれます。
-
ワンクリックアップグレードは、物理移行 (物理レプリケーション) と論理移行 (DTS データ同期) の 2 つの移行方法をサポートします。その違いを以下に説明します。詳細については、「物理移行と論理移行の比較」をご参照ください。
-
物理移行 (物理レプリケーション):ローカル SSD ストレージを使用する RDS for MySQL 5.6 および 5.7 High-availability Edition インスタンスは、同じバージョンの PolarDB for MySQL クラスターに移行されます。
-
論理移行 (DTS データ同期):物理移行 (物理レプリケーション) の対象外である他のすべての RDS for MySQL インスタンスタイプは、同じバージョンまたは異なるバージョンの PolarDB for MySQL クラスターに移行されます。
-
-
各手順の詳細は、それぞれの操作手順をご参照ください。
-
事前チェック
-
ホワイトリストのチェック (任意):ソース RDS プライマリインスタンスと読み取り専用インスタンスのホワイトリスト設定に一貫性がない場合は、読み取り専用インスタンスのホワイトリストをプライマリインスタンスのホワイトリストにマージし、ホワイトリストがターゲットの PolarDB クラスターに自動的に同期されるようにします。
-
論理移行のみ
-
-
手順1:RDS からの移行:PolarDB の購入ページで、作成方法を RDS からの移行 に設定し、ソース RDS のバージョンとインスタンスを指定して、ターゲットの PolarDB クラスターを作成します。
-
手順2:アドレスの引き継ぎ (任意):ワンクリックアップグレードは、アドレスの引き継ぎによる切り替えをサポートします。ソース RDS インスタンスのエンドポイントを保持できるため、アプリケーションは接続設定を変更することなく、ターゲットの PolarDB クラスターに切り替えることができます。ソース RDS インスタンスとターゲットの PolarDB クラスターの両方に同時に存在するエンドポイント間でのみ、相互の切り替えが可能です。
-
手順3:移行の切り替え:ソース RDS インスタンスとターゲットの PolarDB クラスターの読み取り/書き込み状態を入れ替え (つまり、ソース RDS インスタンスを 読み取り専用 に、ターゲットの PolarDB クラスターを [Read/Write] に変更)、レプリケーションの方向を反転させます (新しいデータをターゲットの PolarDB クラスターからソース RDS インスタンスに同期します)。
-
手順4:ソースインスタンスの DTS タスクの切り替え (任意):ソースインスタンスに関連する DTS リンク (ワンクリック移行の DTS リンクではない) がある場合、この機能を使用して DTS の同期タスクまたは移行タスクのソースインスタンスまたはターゲットインスタンスを変更 (置換) し、関連するワークロードをスムーズに切り替えることができます。
-
手順5:移行の完了:ビジネスデータの移行が完了し、データ同期が不要になった後、アップグレードプロセス全体を完了できます。
-
RDS インスタンスのサブスクリプションの解除またはリリース (任意):ビジネスが PolarDB クラスターで安定して稼働し、ソース RDS インスタンスが不要になった場合、ソース RDS インスタンスのサブスクリプションを解除またはリリースできます。
移行の切り替えが完了した後、データの異常やその他の問題が見つかった場合は、移行のロールバック (任意) を実行して、アップグレード前の状態に迅速に復元できます。その後、移行のキャンセル (任意) を実行し、切り替え前の状態に戻すこともできます。
事前チェック
PolarDB サービスリンクロールの確認 (論理移行のみ)
移行評価を問題なく完了した場合は、この事前チェックをスキップできます。
ワンクリックアップグレードで論理移行 (DTS データ同期) を使用する前に、PolarDB サービスリンクロールが作成されていることと、DTS にクラウドリソースへのアクセス権限が付与されていることを確認します。
ソース RDS インスタンスからの冗長なシステムアカウントの削除 (論理移行のみ)
移行評価を問題なく完了した場合は、この事前チェックをスキップできます。
RDS for MySQL と PolarDB のシステムアカウント体系の互換性を確保し、アップグレード後にターゲットの PolarDB のシステムアカウントが上書きされるのを防ぐため、ソース RDS インスタンスに root と aliyun_root の両方のアカウントを同時に含めることはできません。したがって、アップグレードの前に、ソース RDS インスタンスから冗長なシステムアカウントを削除してください。
各 RDS for MySQL バージョンの正しいシステムアカウント名は次のとおりです:
|
RDS for MySQL バージョン |
正しいシステムアカウント名 |
|
RDS MySQL 5.6 |
root |
|
RDS MySQL 5.7 |
aliyun_root |
|
RDS MySQL 8.0 |
aliyun_root |
上記にリストされている各バージョンについて、正しいシステムアカウント以外のすべてのシステムアカウントを削除する必要があります。たとえば、RDS MySQL 5.7 インスタンスの正しいシステムアカウントは aliyun_root です。コンソールで手動で root アカウントを作成した場合は、それを削除する必要があります。削除する前に、ワークロードが root アカウントを使用していないことを確認してください。
システムアカウントは、手動で作成された場合や、バージョンアップグレード時にシステムによって作成されて残った場合があります。場合によっては、アカウントがコンソールに表示されないことがあります。
例
以下では、RDS MySQL 5.6 インスタンスを例に、冗長なシステムアカウントを削除する方法を説明します:
-
特権アカウントを使用してインスタンスに接続します。
-
すべての root および aliyun_root システムアカウントを検索します。
SELECT * FROM mysql.user WHERE `user` IN ('root', 'aliyun_root'); -
冗長なシステムアカウントを削除します。RDS MySQL 5.6 の場合、正しいシステムアカウントは root であるため、aliyun_root アカウントを削除する必要があります。次のコマンドの n は、前の手順で特定された aliyun_root アカウントの数に置き換えてください。
DELETE FROM mysql.user WHERE `user` = 'aliyun_root' LIMIT n;
ホワイトリストのチェック (任意)
ソース RDS プライマリインスタンスと読み取り専用インスタンスのホワイトリスト設定に一貫性がない場合は、移行前に読み取り専用インスタンスのホワイトリストをプライマリインスタンスのホワイトリストにマージし、プライマリインスタンスのホワイトリストがターゲットの PolarDB クラスターに自動的に同期されるようにします。
ゾーンの選択 (任意)
ソース RDS インスタンスが存在するゾーンが現在 PolarDB をサポートしていない場合は、別のゾーンを選択して PolarDB クラスターを作成できます。
手順1:RDSからの移行
この操作により、ソース RDS インスタンスと同じデータを持つ PolarDB クラスターが作成されます。ソース RDS インスタンスの増分データは、リアルタイムで PolarDB クラスターに同期されます。
-
移行を開始する前に、まず 移行評価 を完了することを推奨します。
-
移行を開始する前に、PolarDB クラスターのストレージ容量がソース RDS インスタンスの容量よりも大きいことを確認してください。
-
DTS を使用して移行する場合、初回フルデータ同期ではソースデータベースとターゲットデータベース両方の読み書きリソースが消費されるため、データベースの負荷が増加する可能性があります。必要に応じて同期レートを調整できます。詳細については、「データ移行のスロットリングを有効にする」をご参照ください。
-
PolarDB コンソールにログインし、クラスターの作成 をクリックして、PolarDB の購入ページに移動します。
-
課金方法 として [毎月のパッケージ]、[従量課金]、または [Serverless] を選択します。
-
サブスクリプション:クラスター作成時にコンピューティングノードの料金を支払います。ストレージスペースは、実際のデータ量に基づいて時間単位で課金され、アカウントから 1 時間ごとに料金が差し引かれます。
-
従量課金:前払いは不要です。コンピューティングノードとストレージスペース (実際のデータ量に基づく) の両方が時間単位で課金され、アカウントから 1 時間ごとに料金が差し引かれます。
-
サーバーレス:前払いは不要です。コンピューティングノード、ストレージスペース、データベースプロキシ、その他のリソースは、クラスター利用中の実際の需要に基づいて動的にスケーリングされ、実際の使用量に基づいて課金されます。
-
-
次のパラメーターを設定します。
説明以下の表で詳細に説明されていないパラメーターについては、「クラスターの購入」の関連セクションをご参照ください。
パラメーター
説明
[作成方法]
RDS からの移行 を選択します。
説明移行がカットオーバーされるまで、PolarDB は読み取り専用となり、Binlog はデフォルトで有効になります。
[リージョン]
ソース RDS for MySQL インスタンスのあるリージョンを選択します。
説明新しい PolarDB クラスターもこのリージョンに作成されます。
[ソース RDS エンジン]
ソース RDS インスタンスのエンジンタイプです。[MySQL] に固定されており、変更できません。
[移行元 RDS バージョン]
ソース RDS インスタンスのバージョンです。5.6、5.7、または 8.0 を選択できます。
[移行元 RDS インスタンス]
ソース RDS インスタンスを選択します。読み取り専用インスタンスは含まれません。
[互換性]
ターゲット PolarDB クラスターのデータベースエンジンバージョンです。ソース RDS インスタンスと同じバージョンまたはクロスバージョンを選択できます。
[ノード仕様]
必要に応じて選択します。ソース RDS インスタンス以上の仕様を推奨します。PolarDB のノード仕様については、「Enterprise Edition のコンピューティングノード仕様」をご参照ください。
ストレージエンジン
[Innodb] または InnoDB & X-Engine を選択できます。
説明InnoDB & X-Engine:InnoDB と X-Engine のハイブリッドエンジン構成です。このオプションを選択した場合、X-Engine のストレージ比率を設定できます。詳細については、「X-Engine」をご参照ください。
-
右上隅でクラスター設定を確認し、購入期間 (サブスクリプション クラスターの場合)、購入数、および 自動更新 の 有効/無効 を設定します。
-
利用規約を読んで同意し、今すぐ購入する をクリックします。
-
[支払い] ページで、注文情報と支払い方法を確認し、[注文] をクリックします。
説明-
支払いが完了すると、クラスターが作成されるまで 10~15 分かかります。その後、[クラスターリスト] で新しく作成されたクラスターを表示できます。
-
クラスター内のノードのステータスが 作成中 の場合、クラスターはまだ作成中であり、利用できません。クラスターのステータスが 実行中 と表示されてから、クラスターを使用できます。
-
正しいリージョンが選択されていることを確認してください。そうでない場合、新しく作成したクラスターを見つけられないことがあります。
-
-
クラスターが作成されたら、PolarDB コンソールにログインし、クラスター ID をクリックしてクラスターの 概要 ページに移動します。
-
概要 ページの RDS 移行 セクションで、ターゲット PolarDB クラスターの レプリケーションの遅延 が 60 秒未満であることを確認してから、手順3:移行のカットオーバー 操作に進みます。
この時点で、ページの [ステータス] は データ同期中、[ソースRDS読み書きステータス] は 読み書き、[PolarDB読み書きステータス] は 読み取り専用 と表示されます。
説明-
既存の DTS 双方向同期があるインスタンスでは、ワンクリックでの移行/アップグレードは実行できず、データの不整合 が発生する可能性があります。
-
クラスターが作成されると、RDS インスタンスからのデータ同期が開始されます。30 日以内に 手順5:移行の完了 操作を完了する必要があります。30 日が経過すると、移行機能は自動的に無効になります。
-
論理移行 (DTS データ同期) の場合、PolarDB クラスターの作成後、RDS 移行ステータスが [事前チェック失敗] に変わった場合は、エラーメッセージ の表示に従って問題を解決してください。
たとえば、ソース RDS にトリガーが存在する場合、事前チェックは 「RDS instance has triggers」 というエラーで失敗します。まずソース RDS からトリガーを削除し、次に 移行を続行 をクリックするか、移行の中止 をクリックして DTS コンソールで手動で移行タスクを作成します。詳細については、「トリガーを持つソースデータベースのタスクを設定する」をご参照ください。
-
この手順で 移行の中止 を選択できます。移行を中止した場合の影響については、「FAQ」をご参照ください。
-
ステップ 2:アドレスの補充 (オプション)
PolarDB のワンクリック移行は、アドレス転送による切り替えをサポートしています。元のデータベースエンドポイントを維持できるため、アプリケーションは接続設定を変更することなく PolarDB に切り替えられます。なお、相互切り替えをサポートするのは、ソース RDS とターゲット PolarDB クラスターの両方に同時に存在するエンドポイントのみです。デフォルトでは、ターゲット側にはプライベートプライマリエンドポイントとプライベートクラスターエンドポイントのみが作成されます。ソース側に 2 つを超えるエンドポイントがある場合は、切り替え前にターゲット側で対応するエンドポイントを作成する必要があります。作成しない場合、それらのエンドポイントは切り替えられません。PolarDB クラスターおよび RDS インスタンスのエンドポイントを作成する方法については、「Manage endpoints」および「Configure endpoints for an RDS instance」をご参照ください。
-
アドレスの補充は、ターゲット クラスターが実行中状態になった後にのみ実行できます。また、ビジネス要件に基づいてアドレス属性、インスタンスパラメーターを設定し、読み取り専用ノードを追加することもできます。
-
アドレス転送方式でプライベートエンドポイントを切り替える前に、ソース RDS インスタンスとターゲット PolarDB クラスターが同じ VPC に存在することを確認してください。同じ VPC にない場合、切り替え後に元のサービスが接続できなくなります。
ステップ 3:移行カットオーバー
ターゲット PolarDB クラスターの [レプリケーションの遅延]が 60 秒未満になったら、移行カットオーバーを実行できます。
-
PolarDB コンソールに移動します。
-
ターゲット クラスターを見つけて、クラスター ID をクリックします。
-
概要 ページの RDS 移行 セクションで、切り替え をクリックします。
ページに表示される DTS データ同期タスクは無料タスクです。このタスクを手動で操作しないでください。操作すると移行が失敗します。
説明-
カットオーバープロセスは通常 5 分未満で完了します。
-
この操作により、ソース RDS インスタンスとターゲット PolarDB クラスターの読み取り/書き込み状態が入れ替わります (つまり、ソース RDS インスタンスは [ReadOnly] に、PolarDB クラスターは 読み取り/書き込み になります) 。同時に、レプリケーションの方向が逆転します (PolarDB クラスターから RDS インスタンスへ新しいデータが同期されるようになります) 。
-
-
[ビジネスを新しいデータベースに切り替え] ダイアログボックスで、[アドレス転送ありの切り替え (アプリケーションの接続設定変更は不要)] または [アドレス転送なしの切り替え (アプリケーションは新しい PolarDB 接続設定への更新が必要)] を選択します。
-
[アドレス転送ありの切り替え (アプリケーションの接続設定変更は不要)] を選択する場合は、次の手順に従ってください。
-
[アドレス転送ありの切り替え (アプリケーションの接続設定変更は不要)] を選択します。システムは、ソース RDS インスタンスとターゲット PolarDB のエンドポイントを自動的に入れ替え、アプリケーションは設定変更なしで自動的にターゲット PolarDB クラスターに接続します。
重要[アドレス転送ありの切り替え (アプリケーションの接続設定変更は不要)] を選択する前に、必ず「アドレス転送ありの切り替えに関する注意事項」をお読みください。
-
[OK] をクリックします。
-
-
[アドレス転送なしの切り替え (アプリケーションは新しい PolarDB 接続設定への更新が必要)] を選択する場合は、次の手順に従ってください。
-
[アドレス転送なしの切り替え (アプリケーションは新しい PolarDB 接続設定への更新が必要)] を選択します。
-
[OK] をクリックします。
-
ページを更新します。ターゲット PolarDB の 読み取り/書き込みステータスが 読み取り/書き込み と表示されたら、速やかにアプリケーション内のデータベース エンドポイントを更新してください。
-
-
ステップ 4: ソースインスタンス DTS タスクのカットオーバー (オプション)
-
ソース RDS インスタンスに関連する DTS リンク (ワンクリック移行 DTS リンクを除く) がない場合、この手順の機能ボタンは現在のページに表示されません。この手順をスキップしてください。
-
ソースインスタンスに関連する DTS リンク (ワンクリック移行 DTS リンクを除く) がある場合、この機能を使用して DTS 同期または移行タスクのソースインスタンスまたはターゲットインスタンスを変更 (置換) して、関連するワークロードをスムーズに切り替えることができます。実装原理と注意事項については、「ModifyDtsJobEndpoint」をご参照ください。
-
スキーマ移行および完全データ移行のフェーズ中は、データベースまたはテーブルスキーマを変更する DDL 操作を実行しないでください。実行すると、データ移行タスクが失敗します。
-
PolarDB コンソールに移動します。
-
ターゲットクラスターを見つけて、クラスター ID をクリックします。
-
概要 ページの RDS 移行 セクションで、ソースインスタンスの DTS タスクの切り替え をクリックします。
-
[ビジネス DTS データベースの切り替え] ダイアログボックスで、同期元インスタンスの DTS タスク (フォワードスイッチ) または 同期先インスタンスの DTS タスク (ロールバックスイッチ) を選択します。
重要切り替える前に、ソースインスタンスとターゲットインスタンス間のデータ同期の DTS ステータスを確認してください。詳細な DTS ステータスクエリについては、「DTS ステータスクエリ」をご参照ください。
-
[ソースインスタンス DTS タスク (正方向カットオーバー)] を選択する場合は、次の手順に従ってください。
-
データベースインスタンスを切り替える対象の DTS タスクを選択します。
-
フォワードスイッチの申請 をクリックします。
-
-
[ターゲットインスタンス DTS タスク (ロールバックカットオーバー)] を選択する場合は、次の手順に従ってください。
-
データベースインスタンスを切り替える対象の DTS タスクを選択します。
-
ロールバックスイッチの申請 をクリックします。
-
-
-
[ソースインスタンス DTS タスク (正方向カットオーバー)] は、[移行カットオーバー (ステップ 3)] の後に使用するもので、ソースインスタンスに関連する DTS リンク (ワンクリック移行 DTS リンクを除く) をターゲットインスタンスに切り替えます。この操作は、[移行カットオーバー (ステップ 3)] の後、[移行の完了 (ステップ 5)] の前に実行します。
-
[ターゲットインスタンス DTS タスク (ロールバックカットオーバー)] は、[移行のロールバック] の後に使用するもので、ターゲットインスタンスに関連する DTS リンク (ワンクリック移行 DTS リンクを除く) をソースインスタンスに戻します。この操作は、[移行のロールバック (オプション)] の後、[移行のキャンセル (オプション)] の前に実行します。
手順5:移行の完了
手順1:RDS からの移行 を完了した後、30 日以内に 完全な移行 操作を完了する必要があります。
-
完全な移行 操作を実行する前に、データ移行が完了し、データ同期が不要になったことを確認してください。物理移行の場合、この操作により、移行元 RDS から PolarDB クラスターへのデータレプリケーションが中断されます。論理移行の場合、データ同期タスクは削除されます。
-
この操作は PolarDB クラスターと RDS インスタンス間のデータ同期を中断するため、「移行のキャンセル (任意)」機能は利用できなくなります。この操作を実行する前に、PolarDB クラスターを一定期間使用し、すべてが正常に動作していることを確認することを推奨します。
-
PolarDB コンソール にログインします。
-
対象のクラスターを見つけ、クラスター ID をクリックします。
-
概要 ページで、RDS 移行 セクションの 完全な移行 をクリックします。表示されたダイアログボックスで、OK をクリックします。
説明-
OK をクリックすると、約 2 分でシステムが同期関係を中断します。この間、移行ステータスは 同期の無効化 と表示されます。移行が完了するまでしばらくお待ちください。
-
完全な移行 ダイアログボックスで、PolarDB クラスターのバイナリログを無効にするかどうかを選択できます。バイナリログを無効にすると、書き込みパフォーマンスがわずかに向上しますが、新しい設定を適用するために PolarDB クラスターが自動的に再起動します。
-
移行元の RDS インスタンスが不要になった場合は、手動で登録を解除するか、解放することができます。詳細については、「RDS インスタンスの登録解除または解放 (任意)」をご参照ください。
-
移行元の RDS インスタンスで更新や設定変更などの操作を実行する必要がある場合は、まず [移行の完了] をクリックしてください。
-
RDS インスタンスの解約または解放 (オプション)
RDS から PolarDB へのデータ移行後、PolarDB 上でビジネスが安定して稼働し、ソースの RDS インスタンスが不要になった場合は、ソースの RDS インスタンスを解約または解放できます。
-
サブスクリプション型の RDS インスタンスの場合は、解約できます。詳細については、「サブスクリプションプライマリインスタンスの解約」をご参照ください。
-
従量課金型の RDS インスタンスの場合は、アイドル状態の RDS リソースを浪費しないよう、速やかにインスタンスを解放してください。詳細については、「インスタンスの解放」をご参照ください。
データ同期タスク詳細の表示 (論理移行のみ) (オプション)
ワンクリックアップグレードで論理移行 (DTS データ同期) を使用する際に、移行エラー (事前チェックの失敗など) やレプリケーションの遅延が異常に高いなどの異常が発生した場合は、対応する DTS データ同期タスクの詳細ページに移動して、タスクの具体的な情報を確認できます。
-
[PolarDB コンソール] に移動します。
-
ターゲットクラスターを見つけて、クラスター ID をクリックします。
-
概要 ページの RDS 移行 セクションで、DTS データ同期タスク のタスク名をクリックすると、DTS コンソールのデータ同期リストに移動します。
-
対応するデータ同期タスクを見つけると、事前チェックの失敗の詳細、同期タスクの詳細、および同期タスクログを確認できます。
同期タスクの詳細ページには、基本情報 (タスクインスタンス ID、タスク名、タスクステップ: [スキーマ同期] → [フル同期] → [増分同期]、作成時間、課金方法、リンク仕様、リージョンなど)、ソース情報 (インスタンスタイプ: [RDS インスタンス]、データベースタイプ: [MySQL]、リージョン、インスタンス ID、接続方法: [非暗号化接続])、およびターゲット情報 (インスタンスタイプ: [クラウドインスタンス]、データベースタイプ: [PolarDB MySQL]、リージョン、インスタンス ID、接続方法: [非暗号化接続]) が表示されます。左側メニューでは、[同期の詳細]、[パフォーマンスモニタリング]、[タスクログ]、[同期対象の変更履歴] などのページに切り替えることができます。
-
移行中に、同期タスクの同期対象を変更する必要がある場合 (たとえば、ソース RDS に新しいデータベースが追加され、同期対象に含める必要がある場合など)、[同期対象の変更] をクリックして再設定します。