ApsaraDB RDS for MySQL インスタンスをワンクリックで PolarDB for MySQL クラスターにアップグレードすると、ターゲットの PolarDB クラスターが作成され、データが同期されます。アップグレードされた PolarDB クラスターは、ソース RDS インスタンスからアカウント、データベース、IP アドレスホワイトリスト、および必要なパラメーター設定を継承します。
アップグレードプロセスには、次のステップが含まれます。
-
ワンクリックアップグレード機能は、物理移行 (物理レプリケーション) と論理移行 (Data Transmission Service (DTS) を使用したデータ同期) の 2 つの方法をサポートしています。詳細については、「物理移行と論理移行の比較」をご参照ください。
-
物理移行 (物理レプリケーション):この方法は、ローカル SSD を使用する高可用性 ApsaraDB RDS for MySQL 5.6 および 5.7 インスタンスを、同じバージョンの PolarDB for MySQL クラスターに移行する場合に使用します。
-
論理移行 (DTS を使用したデータ同期):この方法は、他のすべてのタイプの ApsaraDB RDS for MySQL インスタンスに適用されます。同じバージョンまたは異なるバージョンの PolarDB for MySQL クラスターに移行できます。
-
-
詳細な手順については、各ステップをご参照ください。
-
前提条件:
-
(オプション) IP アドレスホワイトリストの確認:ソースのプライマリインスタンスの IP アドレスホワイトリストが、その読み取り専用インスタンスのホワイトリストと異なる場合は、まず読み取り専用インスタンスのホワイトリストをプライマリインスタンスのホワイトリストにマージする必要があります。これにより、システムは読み取り専用インスタンスのホワイトリストをターゲットの PolarDB クラスターに自動的に同期します。
-
論理移行のみ:
-
-
ステップ 1:RDS からの移行:PolarDB の購入ページで、[作成方法] を RDS からの移行 に設定し、ソース RDS のバージョンとインスタンスを指定してターゲットの PolarDB クラスターを作成します。
-
(オプション) ステップ 2:エンドポイントの追加:ワンクリックアップグレードは、エンドポイント交換によるスイッチオーバーをサポートしています。これにより、ソース RDS インスタンスの元のエンドポイントを保持できます。アプリケーションは、設定を変更することなくターゲットの PolarDB クラスターに切り替えることができます。エンドポイントの交換は、ソース RDS インスタンスとターゲットの PolarDB クラスターの両方にエンドポイントが存在する場合にのみ可能です。
-
ステップ 3:スイッチオーバー:ソース RDS インスタンスとターゲットの PolarDB クラスターの読み取り/書き込みステータスを交換します。この操作により、ソース RDS インスタンスは 読み取り専用 に、ターゲットの PolarDB クラスターは [読み取り/書き込み] に設定されます。レプリケーションの方向も逆になり、ターゲットの PolarDB クラスターからの新しいデータがソース RDS インスタンスに同期されます。
-
(オプション) ステップ 4:ソースインスタンスの DTS タスクの切り替え:ソースインスタンスにワンクリック移行の一部ではない関連 DTS タスクがある場合、この機能を使用して DTS 同期または移行タスクのソースまたは宛先を変更し、スムーズなビジネスの切り替えを実現できます。
-
ステップ 5:移行の完了:ビジネスデータの移行が完了し、データ同期が不要になったら、アップグレードプロセス全体を完了できます。
-
(オプション) RDS インスタンスの登録解除またはリリース:ビジネスが PolarDB クラスターで安定して実行され、ソース RDS インスタンスが不要になった場合は、登録を解除するかリリースできます。
スイッチオーバー後、データの不整合やその他の問題が見つかった場合は、移行のロールバックを実行して、アップグレード前の状態に迅速に復元できます。その後、移行のキャンセルを選択して、スイッチオーバー前の状態に戻すことができます。
前提条件
PolarDB のサービスにリンクされたロールの確認 (論理移行のみ)
移行評価を完了し、例外が報告されなかった場合は、この確認をスキップできます。
論理移行 (Data Transmission Service (DTS) を使用したデータ同期) を使用してワンクリックアップグレードを実行する前に、PolarDB のサービスにリンクされたロールが作成されているか、および DTS にクラウドリソースへのアクセス権限が付与されているかを確認してください。
余分なシステムアカウントの削除 (論理移行のみ)
移行評価を完了し、例外が報告されなかった場合は、この確認をスキップできます。
ApsaraDB RDS for MySQL と PolarDB の間のシステムアカウントの互換性を確保し、ターゲットの PolarDB クラスターのシステムアカウントが上書きされるのを防ぐため、ソース RDS インスタンスは `root` と `aliyun_root` の両方のアカウントを同時に持つことはできません。したがって、アップグレードを開始する前に、ソース RDS インスタンスから余分なシステムアカウントを削除してください。
次の表に、ApsaraDB RDS for MySQL の異なるバージョンに対する正しいシステムアカウント名を示します。
|
RDS for MySQL バージョン |
システムアカウント名 |
|
ApsaraDB RDS for MySQL 5.6 |
root |
|
ApsaraDB RDS for MySQL 5.7 |
aliyun_root |
|
ApsaraDB RDS for MySQL 8.0 |
aliyun_root |
各バージョンについて、正しいアカウント以外のすべてのシステムアカウントを削除する必要があります。たとえば、ApsaraDB RDS for MySQL 5.7 インスタンスの正しいシステムアカウントは `aliyun_root` です。コンソールで手動で `root` アカウントを作成した場合は、それを削除する必要があります。アカウントを削除する前に、ビジネスで使用されていないことを確認してください。
システムアカウントは、ユーザーによって作成されたか、システムによって作成され、バージョンアップグレードから残されたものである可能性があります。場合によっては、これらのアカウントがコンソールに表示されないことがあります。
例
次の手順は、ApsaraDB RDS for MySQL 5.6 インスタンスから余分なシステムアカウントをクリーンアップする方法を示しています。
-
特権アカウントを使用してインスタンスに接続します。
-
すべての `root` および `aliyun_root` システムアカウントを検索します。
SELECT * FROM mysql.user WHERE `user` IN ('root', 'aliyun_root'); -
余分なシステムアカウントを削除します。ApsaraDB RDS for MySQL 5.6 の正しいシステムアカウントは `root` です。したがって、`aliyun_root` アカウントを削除する必要があります。
DELETE FROM mysql.user WHERE `user` = 'aliyun_root' LIMIT n;
(オプション) IP アドレスホワイトリストの確認
ソースのプライマリインスタンスと読み取り専用インスタンスの IP アドレスホワイトリストが異なる場合は、事前に読み取り専用インスタンスのホワイトリストをプライマリインスタンスのホワイトリストにマージする必要があります。これにより、読み取り専用インスタンスのホワイトリストがターゲットの PolarDB クラスターに自動的に同期されます。
ステップ 1:RDS からの移行
この操作により、ソース RDS インスタンスと同じデータを持つ PolarDB クラスターが作成されます。ソース RDS インスタンスからの増分データは、この PolarDB クラスターにリアルタイムで同期されます。
-
PolarDB コンソールにログインし、クラスターの作成 をクリックして PolarDB の購入ページに移動します。
-
課金方法 を 毎月のパッケージ、従量課金、または Serverless に設定します。
-
サブスクリプション:クラスター作成時にコンピュートノードの料金を支払います。ストレージ容量は実際のデータ量に基づいて時間単位で課金され、料金はアカウント残高から差し引かれます。
-
従量課金:前払いは不要です。コンピュートノードとストレージ容量 (実際のデータ量に基づく) の両方が時間単位で課金され、料金はアカウント残高から差し引かれます。
-
サーバーレス:前払いは不要です。コンピュートノード、ストレージ容量、データベースプロキシなどのリソースは、実際の需要に基づいて動的かつ弾力的にスケーリングされます。スケーリングされたリソースの実際の使用量に対して課金されます。
-
-
次のパラメーターを設定します。
説明次の表に詳述されていないパラメーターについては、「クラスターの購入」の関連セクションをご参照ください。
パラメーター
説明
作成方法
RDS からの移行 を選択します。
説明最終的な移行スイッチオーバーの前に、PolarDB クラスターは読み取り専用状態になり、そのバイナリログはデフォルトで有効になります。
リージョン
ソース ApsaraDB 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:移行の完了を実行する必要があります。そうしないと、移行機能は自動的に無効になります。
-
DTS を使用した論理移行を使用しており、PolarDB クラスターの作成後に RDS 移行ステータスが 事前チェック失敗 に変わった場合は、エラーメッセージ の指示に従って問題を解決してください。
たとえば、ソース RDS インスタンスにトリガーが存在する場合、事前チェックは失敗し、「RDS インスタンスにトリガーがあります」というエラーが報告されます。ソース RDS インスタンスからトリガーを削除し、移行を続行 をクリックする必要があります。または、移行の中止 をクリックして、DTS コンソールで手動で移行タスクを作成することもできます。詳細については、「ソースデータベースにトリガーが含まれている場合の同期または移行タスクの設定方法」をご参照ください。
-
このステップで 移行の中止 を選択できます。影響については、「よくある質問」をご参照ください。
-
(オプション) ステップ 2:エンドポイントの追加
PolarDB のワンクリック移行は、エンドポイント交換によるスイッチオーバーをサポートしており、元のデータベースエンドポイントを保持できます。アプリケーションは、設定を変更することなく PolarDB に切り替えることができます。エンドポイントの交換は、ソース RDS インスタンスとターゲットの PolarDB クラスターの両方にエンドポイントが存在する場合にのみ可能です。デフォルトでは、ターゲットにはプライベートプライマリエンドポイントとプライベートクラスターエンドポイントのみが作成されます。ソースに 2 つ以上のエンドポイントがある場合は、スイッチオーバーの前にターゲットに対応するエンドポイントを作成する必要があります。そうしないと、それらは切り替えられません。PolarDB クラスターと RDS インスタンスのエンドポイントを作成する方法については、「エンドポイントの管理」および「エンドポイントの設定」をご参照ください。
-
エンドポイントは、ターゲットクラスターが実行状態になった後にのみ追加できます。また、ビジネスニーズに基づいて、エンドポイントのプロパティ、インスタンスパラメーターを設定し、読み取り専用ノードを追加することもできます。
-
スイッチオーバー中にプライベートエンドポイントを交換するには、ソース RDS インスタンスとターゲットの PolarDB クラスターが同じ 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 タスクのソースまたは宛先インスタンスの変更」をご参照ください。
-
スキーマ同期および完全なデータ同期フェーズ中は、データベースまたはテーブルスキーマを変更する DDL 操作を実行しないでください。そうしないと、データ移行タスクが失敗します。
-
PolarDB コンソールに移動します。
-
ターゲットクラスターを見つけて、その ID をクリックします。
-
概要 ページの RDS 移行 セクションで、ソースインスタンスの DTS タスクの切り替え をクリックします。
-
[ビジネス DTS タスクのエンドポイントを切り替える] ダイアログボックスで、同期元インスタンスの DTS タスク (フォワードスイッチ) または 同期先インスタンスの DTS タスク (ロールバックスイッチ) を選択します。
重要切り替えの前に、ソースおよびターゲットインスタンスの DTS データ同期のステータスを確認してください。詳細については、「DTS タスクのステータスの表示」をご参照ください。
-
[ソースインスタンスの DTS タスク (正方向の切り替え)] を選択した場合、次の手順に従います。
-
データベースインスタンスを切り替えたい DTS タスクを選択します。
-
フォワードスイッチの申請 をクリックします。
-
-
[ターゲットインスタンスの DTS タスク (切り替えのロールバック)] を選択した場合、次の手順に従います。
-
データベースインスタンスをロールバックしたい DTS タスクを選択します。
-
ロールバックスイッチの申請 をクリックします。
-
-
-
[ソースインスタンスの DTS タスク (正方向の切り替え)] は、スイッチオーバー (ステップ 3) の後に適用され、関連する DTS タスク (ワンクリック移行タスク以外) をソースインスタンスからターゲットインスタンスに切り替えます。この操作は、スイッチオーバー (ステップ 3) の後、移行の完了 (ステップ 5) の前に実行されます。
-
[ターゲットインスタンスの 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 インスタンスの場合、リソースの無駄を防ぐために、タイムリーにリリースしてください。詳細については、「インスタンスのリリースまたは登録解除」をご参照ください。
(オプション) DTS タスク詳細の表示 (論理移行のみ)
論理移行 (DTS を使用したデータ同期) を使用してアップグレード中に移行エラー (事前チェックの失敗など) やその他の例外 (高いレプリケーション遅延など) が発生した場合は、対応する DTS データ同期タスクの詳細ページで詳細情報を確認できます。
-
PolarDB コンソールに移動します。
-
ターゲットクラスターを見つけて、その ID をクリックします。
-
概要 ページの RDS 移行 セクションで、DTS データ同期タスク の下のタスク名をクリックして、DTS コンソールのデータ同期タスクリストに移動します。
-
対応するデータ同期タスクを見つけます。事前チェックの失敗詳細、タスク詳細、タスクログを表示できます。
タスク詳細ページには、基本情報 (タスクインスタンス ID、タスク名、タスクステップ:スキーマ同期 → 完全なデータ同期 → 増分同期、作成時間、課金方法、リンク仕様、リージョンなど)、ソース情報 (インスタンスタイプ:RDS インスタンス、データベースタイプ:MySQL、リージョン、インスタンス ID、接続方法:非暗号化接続)、およびターゲット情報 (インスタンスタイプ:クラウドインスタンス、データベースタイプ:PolarDB MySQL、リージョン、インスタンス ID、接続方法:非暗号化接続) が表示されます。左側のナビゲーションウィンドウから、[同期詳細]、[パフォーマンスモニタリング]、[タスクログ]、[同期オブジェクトの変更履歴] などのページに切り替えることができます。
-
移行プロセス中に、タスクの同期オブジェクトを調整する必要がある場合 (たとえば、ソース RDS インスタンスに新しいデータベースが追加され、それを同期に含めたい場合)、[同期オブジェクトの変更] をクリックして再設定できます。