このセクションでは、PolarDB for MySQL クラスター間のアップグレード手順について説明します。
アップグレード前のチェック
PolarDB サービスリンクロールの存在確認
アップグレードを行う前に、PolarDB サービスリンクロールが存在すること、および Data Transmission Service (DTS) にクラウドリソースへのアクセス権限が付与されていること を確認してください。
ソース PolarDB for MySQL クラスターから余分なシステムアカウントを削除
移行後に移行先 PolarDB for MySQL クラスターのシステムアカウントが上書きされるのを防ぐため、ソース PolarDB for MySQL クラスターには root と aliyun_root の両方のアカウントが同時に存在してはなりません。アップグレードを行う前に、ソース PolarDB for MySQL クラスターから余分なシステムアカウントを削除してください。
各 PolarDB for MySQL バージョンの正しいシステムアカウント名は以下のとおりです。
|
データベースエンジンバージョン |
正しいシステムアカウント名 |
|
MySQL 5.6 |
|
|
MySQL 5.7 |
|
|
MySQL 8.0 |
|
上記の各バージョンについて、正しいシステムアカウント以外のすべてのシステムアカウントを削除してください。たとえば、PolarDB MySQL 5.7 クラスターの正しいシステムアカウントは aliyun_root です。コンソールで手動で root アカウントを作成した場合は、削除してください。削除する前に、アプリケーションが root アカウントを使用していないことを確認してください。
システムアカウントは、手動で作成された場合や、システムによって自動的に作成され、バージョンアップグレード後に残っている場合があります。場合によっては、これらのアカウントがコンソールに表示されないことがあります。
例
以下の例は、PolarDB MySQL 5.6 クラスターから余分なシステムアカウントをクリーンアップする方法を示しています。
-
特権アカウントを使用して データベースに接続 します。
-
すべての
rootおよびaliyun_rootシステムアカウントを検索します。SELECT * FROM mysql.user WHERE `user` IN ('root', 'aliyun_root'); -
余分なシステムアカウントを削除します。PolarDB MySQL 5.6 クラスターの正しいシステムアカウントは
rootなので、aliyun_rootアカウントを削除します。DELETE FROM mysql.user WHERE `user` = 'aliyun_root' LIMIT n;
(オプション) インテリジェント負荷テスト
エンジンメジャーバージョンのアップグレードを実行する前に、インテリジェント負荷テストを使用して、移行先 PolarDB クラスター上でサービストラフィックを実行するシミュレーションを行います。これにより、以下のことが可能になります。
-
ピーク時のサービストラフィックを処理するために、クラスター仕様のスケールアウトが必要かどうかを検証できます。
-
元の PolarDB クラスターと移行先 PolarDB クラスター間での SQL テンプレート実行のパフォーマンス差異を分析できます。
詳細な手順については、「トラフィックリプレイと負荷テスト」をご参照ください。
ステップ 1:PolarDB からのアップグレードと移行
このステップでは、ソース PolarDB for MySQL クラスターと同じデータを持つクラスターを作成し、ソース PolarDB for MySQL クラスターからの増分データがこのクラスターにリアルタイムで同期されます。
-
DTS 移行中、初期のフルデータ同期はソースデータベースと移行先データベースの両方の読み取りおよび書き込みリソースを消費し、データベースの負荷が増加する可能性があります。必要に応じて 移行速度を調整 できます。
-
PolarDB コンソール にログインします。
-
クラスター一覧ページで、[クラスターの作成] をクリックして、クラスター購入ページに移動します。
-
課金方法を選択します:[サブスクリプション]、[従量課金]、または [サーバーレス]。
-
[サブスクリプション]:クラスター作成時にコンピューティングノードの料金を前払いします。ストレージ容量は実際の使用量に基づいて時間単位で課金され、1 時間ごとにアカウントから差し引かれます。
-
[従量課金]:前払いは不要です。コンピューティングノードとストレージ容量 (実際の使用量に基づく) の両方が時間単位で課金され、1 時間ごとにアカウントから差し引かれます。
-
[サーバーレス]:前払いは不要です。コンピューティングノード、ストレージ容量、データベースプロキシ、その他のリソースは、クラスター使用中の実際の需要に基づいて動的にスケーリングされ、実際の使用量に基づいて課金されます。
-
-
シナリオに基づいて以下のパラメータを設定します。
説明以下の表に記載されていないパラメータについては、「クラスターの購入」をご参照ください。
パラメータ
説明
[作成方法]
[PolarDB からのアップグレードと移行] を選択します。
[リージョン]
ソース PolarDB for MySQL クラスターが存在するリージョンを選択します。
[ソース PolarDB バージョン]
ソース PolarDB for MySQL クラスターのバージョン。5.6、5.7、または 8.0 を選択できます。
[ソース PolarDB クラスター]
ソース PolarDB for MySQL クラスターを選択します。
[データベースエンジン]
移行先クラスターのデータベースエンジンバージョン。
-
バージョン間でアップグレードする場合、ソースクラスターと同じバージョン、または異なるバージョンを選択できます。
-
アーキテクチャ間でアップグレードする場合は、**MySQL 8.0** を選択する必要があります。
説明[データベースのエディション]
ソースクラスターのエディションに一致します。選択は不要です。
[データベースカテゴリ]
移行先クラスターのシリーズ。
説明-
[Cluster Edition [Recommended]] を選択します。
-
アーキテクチャ間でアップグレードする場合は、[Multi-master Cluster (Limitless)] を選択します。
[CPU アーキテクチャ]
ソースクラスターの CPU アーキテクチャに一致します。選択は不要です。
[ノード数]
ソースクラスターのワーカー数に一致します。選択は不要です。
選択された仕様
移行先クラスターのノード仕様。
データベースプロキシタイプ
ソースクラスターのデータベースプロキシ仕様に一致します。選択は不要です。
-
-
右上隅でクラスター設定を確認し、[サブスクリプション期間]( サブスクリプション クラスターの場合)、購入数、および自動更新 を有効にするかどうかを設定します。
-
サービス規約を読んで同意し、今すぐ購入する をクリックします。
-
[支払い] ページで、注文の詳細と支払い方法を確認し、[注文を確定] をクリックします。
説明-
支払いが成功すると、クラスターの作成には 10〜15 分かかります。その後、[クラスター一覧] に新しいクラスターが表示されます。
-
クラスターノードに [作成中] と表示されている場合、クラスターはまだ準備ができていません。クラスターのステータスが [実行中] になって初めて、使用できるようになります。
-
正しいリージョンを選択したことを確認してください。そうでない場合、クラスターは表示されません。
-
-
クラスターが作成されたら、クラスター ID をクリックして [基本情報] ページに移動します。
-
基本情報 ページの PolarDB のアップグレード セクションで、移行先の PolarDB クラスターの レプリケーションの遅延 が 60 秒未満であることを確認してから、先に進んでください。
説明-
既存の DTS 双方向同期を持つクラスターは ワンクリックでのアップグレードはできず、データの不整合 が発生する可能性があります。
-
クラスター作成後、DTS はソース PolarDB クラスターからのデータ同期を開始します。30 日以内に アップグレードを完了 する必要があります。30日を経過すると、アップグレード機能は自動的に無効になります。
-
このセクションで [アップグレードをキャンセル] をクリックできます。アップグレードのキャンセルによる影響については、FAQ をご参照ください。
-
ステータスに [事前チェック失敗] と表示されている場合は、[エラーメッセージ] に基づいて問題を解決してください。
たとえば、ソース PolarDB クラスターにトリガーが作成されている場合、事前チェックは失敗し、"PolarDB cluster contains triggers" というエラーが返されます。まず PolarDB のトリガーを削除してから、[アップグレードを続行] をクリックするか、[アップグレードを中止] をクリックして DTS コンソールで手動で移行タスクを作成してください。詳細については、「ソースデータベースにトリガーが存在する場合の同期または移行ジョブの設定方法」をご参照ください。
-
アーキテクチャアップグレードの場合、移行先クラスターのデフォルトの書き込みエンドポイントは、MasterID=1 の RW ノードです。正常なDTSデータ同期を確保するため、アップグレードが完了するまで、常にこの RW ノードに書き込んでください。
-
ステップ 2:アドレス調整 (オプション)
PolarDB エンジンメジャーバージョンのアップグレードは、アドレスを維持したままの切り替えをサポートしています。元のデータベースエンドポイントを保持し、アプリケーションの接続設定を変更せずに新しい PolarDB に切り替えることができます。相互切り替えは、ソース PolarDB と移行先 PolarDB クラスターの両方に存在するエンドポイントに対してのみサポートされますのでご注意ください。デフォルトでは、移行先ではプライベートプライマリエンドポイントとプライベートクラスターエンドポイントのみが作成されます。ソースに 2 つ以上のエンドポイントが含まれている場合は、切り替え前に移行先に対応するエンドポイントを作成する必要があります。そうしない場合、切り替えは実行されません。PolarDB クラスターのエンドポイントを作成する方法については、「接続アドレスの管理」をご参照ください。
-
アドレスを調整できるのは、移行先クラスターが実行中になった後のみです。必要に応じて、アドレスプロパティ、クラスターパラメータの設定、読み取り専用ノードの追加も行えます。
-
アドレス切り替えでプライベートエンドポイントを切り替える前に、ソース PolarDB と移行先 PolarDB クラスターが同じ VPC 内にあることを確認してください。そうでない場合、切り替え後に既存のサービスは接続できなくなります。
ステップ 3:アップグレードスイッチオーバー
移行先 PolarDB クラスターのレプリケーション遅延が 60 秒未満になったら、アップグレードスイッチオーバーを実行してください。
-
PolarDB コンソール にログインします。
-
移行先クラスターを見つけて、そのクラスター ID をクリックします。
-
基本情報 ページの PolarDB のアップグレード セクションで、切り替えのアップグレード をクリックします。
説明-
アップグレードは通常 5 分以内に完了します。
-
この操作により、ソース PolarDB クラスターと移行先 PolarDB クラスターの読み取り/書き込みステータスが交換されます。ソース PolarDB クラスターは読み取り専用に、移行先 PolarDB クラスターは読み取り/書き込みになります。同時にDTSは、移行先 PolarDB クラスターからソース PolarDB クラスターに新しいデータを同期することで、データレプリケーションの方向を逆転させます。
-
-
切り替えのアップグレード ダイアログボックスで、「アドレスで切り替え (アプリケーション設定の変更なし)」または「アドレスなしで切り替え (アプリケーションの接続設定を新しい PolarDB エンドポイントに更新)」のいずれかを選択します。ダイアログボックスには、移行元 PolarDB エンドポイントと移行先エンドポイントのマッピングが表示されます。
-
[アドレス交換による切り替え (アプリケーション設定の変更不要)] を選択した場合は、次の手順に従います。
-
[アドレス交換による切り替え (アプリケーション接続設定の変更不要)] を選択します。システムは、ソース PolarDB と移行先 PolarDB の接続エンドポイントを自動的に交換するため、アプリケーションで設定を変更することなく、自動的に移行先 PolarDB クラスターに接続できます。
重要-
[アドレス交換による切り替え (アプリケーション設定の変更不要)] を選択する前に、アドレス切り替えの考慮事項 をお読みください。
-
アップグレード対象の PolarDB クラスターが既存の Data Transmission Service (DTS) タスクのソースまたは移行先である場合、アップグレード後に DTS タスクを更新して、アップグレード後の PolarDB クラスターをソースまたは移行先として使用してください。これは、データ同期タスク、データ移行タスク、変更追跡タスクに適用されます。詳細については、「DTS タスクオブジェクトの変更」をご参照ください。
-
-
[OK] をクリックします。
-
-
[アドレス交換なしの切り替え (新しい PolarDB エンドポイントへのアプリケーション接続設定の更新)] を選択した場合は、次の手順に従います。
-
[アドレス交換なしの切り替え (新しい PolarDB エンドポイントへのアプリケーション接続設定の更新)] を選択します。
-
[OK] をクリックします。
-
ページを更新し、移行先 PolarDB クラスターの [読み取り/書き込みステータス] が [読み取り/書き込み] と表示されたら、直ちにアプリケーションのデータベースエンドポイントを更新してください。
-
-
-
アップグレードスイッチオーバー後にデータ異常が発生した場合は、ロールバックを実行してアップグレード前の状態に復元できます。詳細については、「アップグレードのロールバック」をご参照ください。
-
アーキテクチャアップグレードとスイッチオーバーの完了後、DTS 同期の問題を回避するために、移行先 Multi-master Cluster (Limitless) の書き込みエンドポイントを変更しないでください。
ステップ 4:ソースインスタンス DTS タスクスイッチオーバー (オプション)
ソースインスタンスに関連する DTS リンク (ワンクリック移行 DTS リンクを除く) がある場合は、この機能を使用して、DTS 同期または移行タスクのソースまたは移行先インスタンスを変更 (置換) し、スムーズなビジネス移行を実現できます。実装の詳細と考慮事項については、「DTS タスクのソースまたは移行先インスタンスの変更」をご参照ください。
-
PolarDB コンソール に移動します。
-
移行先クラスターを見つけて、そのクラスター ID をクリックします。
-
概要 ページの Apsara PolarDB [移行機能] セクションで、ソースインスタンスの DTS タスクの切り替え をクリックします。
-
[DTS データベースのビジネス切り替え] ダイアログボックスで、同期元インスタンスの DTS タスク (フォワードスイッチ) または 同期先インスタンスの DTS タスク (ロールバックスイッチ) のいずれかを選択します。
重要切り替え前に、ソースインスタンスと移行先インスタンスの両方の DTS 同期ステータスを確認してください。DTS ステータスの確認の詳細については、「DTS ステータスの確認」をご参照ください。
[ソースインスタンス DTS タスク (順方向スイッチオーバー)]
同期元インスタンスの DTS タスク (フォワードスイッチ) を選択した場合は、以下の手順に従ってください。 DTS タスクリストには、[DTS タスク名]、[同期ステータス]、[ソースインスタンス]、[宛先インスタンス] などの列が表示されます。
-
データベースインスタンスを切り替える DTS タスクを選択します。
-
フォワードスイッチの申請 をクリックします。
[移行先インスタンス DTS タスク (スイッチオーバーロールバック)]
同期先インスタンスの DTS タスク (ロールバックスイッチ) を選択した場合は、次の手順に従います。
インターフェイスは [ソースインスタンス DTS タスク (正方向の切り替え)] タブに似ており、ロールバックする DTS タスクのリストが表示されます。
-
データベースインスタンスを切り替える DTS タスクを選択します。
-
ロールバックスイッチの申請をクリックします。
-
-
ソースインスタンス DTS タスク (順方向スイッチ) は、移行の切り替え後に適用します。これにより、ソースインスタンスのDTSタスクが移行先インスタンスにリダイレクトされ、移行前のDTS操作が完了します。
-
移行先インスタンス DTS タスク (ロールバックスイッチ) は、ロールバックの切り替え後に適用します。これにより、移行先インスタンスのDTSタスクがソースインスタンスにリダイレクトされ、移行のキャンセル前の操作が完了します。
ステップ 5:アップグレードの完了
ステップ 1:PolarDB からのアップグレードと移行 を完了した後、30 日以内にアップグレードを完了する必要があります。
-
[アップグレードの完了] をクリックする前に、データ移行が完了し、データ同期が不要になったことを確認してください。
-
この操作により、ソース PolarDB クラスターと移行先 PolarDB クラスター間のデータ同期タスクが中断され、アップグレードのロールバック 機能が使用できなくなるため、移行先 PolarDB クラスターを一定期間使用し、正常に動作していることを確認してからアップグレードを完了することを推奨します。
-
PolarDB コンソール にログインします。
-
移行先クラスターを見つけて、そのクラスター ID をクリックします。
-
基本情報 ページの PolarDB のアップグレード セクションで、アップグレードを完了 をクリックします。
-
アップグレードを完了 ダイアログボックスで、PolarDB クラスターのバイナリロギングを無効にするかどうかを選択し、[OK] をクリックします。
説明-
[OK] をクリックすると、システムは 2 分以内にデータ同期を中断し、アップグレードステータスが [同期無効] に変わります。
-
バイナリロギングを無効にすることを選択した場合、PolarDB クラスターは新しい設定を適用するために自動的に再起動します。
-
ソース PolarDB クラスターが不要になった場合は、ソース PolarDB クラスターを解放することを選択できます。クラスターの解放の詳細については、「クラスターの解放」をご参照ください。
-
アーキテクチャアップグレードを実行した場合、[アップグレードの完了] ダイアログで [OK] をクリックすると、書き込みエンドポイントが初期状態に復元され、RW ノードがランダムに書き込みエンドポイントとして割り当てられます。
-
データ同期タスクの詳細表示 (オプション)
バージョンアップグレード中にエラーや異常が発生した場合は、対応する DTS データ同期タスクの詳細ページに移動して、詳細情報を表示します。
-
PolarDB コンソール にログインします。
-
移行先クラスターを見つけて、そのクラスター ID をクリックします。
-
基本情報 ページの PolarDB のアップグレード セクションで、DTS データ同期タスク の下にあるタスク名をクリックして、DTS コンソールのデータ同期タスクリストに移動します。
-
データ同期タスクリストで、関連するタスクを見つけて、同期の詳細とタスクログを表示します。
-
アップグレード中に要件が変更された場合 (たとえば、ソース PolarDB クラスターに新しいデータベースが追加され、同期に含める必要がある場合)、[同期オブジェクトの変更] をクリックして再設定します。
アップグレードのロールバック (オプション)
アップグレードを完了する前に、データ異常などの問題が見つかった場合は、ロールバック操作を実行して、クラスターをアップグレード前の状態 (ソース PolarDB クラスターは読み取り/書き込み、移行先 PolarDB クラスターは読み取り専用、ソース PolarDB クラスターからのデータが移行先 PolarDB クラスターに同期される) に迅速に復元できます。ロールバックが完了した後、エンジンメジャーバージョンのアップグレードを続行するには、ステップ 3:アップグレードスイッチオーバー 操作から直接開始できます。
-
PolarDB コンソール にログインします。
-
移行先クラスターを見つけて、そのクラスター ID をクリックします。
-
基本情報 ページの PolarDB のアップグレード セクションで、ロールバックのアップグレード をクリックします。
-
フェイルバックダイアログボックスで、[アドレス交換によるフェイルバック (アプリケーション設定の変更不要)] または [アドレス交換なしのフェイルバック (ソースインスタンスエンドポイントへのアプリケーション接続設定の更新)] のいずれかを選択します。
-
[アドレス交換によるフェイルバック (アプリケーション設定の変更不要)] を選択した場合は、次の手順に従います。
-
[アドレス交換によるフェイルバック (アプリケーション接続設定の変更不要)] を選択すると、システムはソース PolarDB クラスターと移行先 PolarDB クラスター間の接続アドレスを自動的に交換し、アプリケーション側で設定を変更することなく、自動的にソース PolarDB クラスターに切り戻すことができます。
-
[OK] をクリックします。
この時点で、ソース PolarDB クラスターは読み取り/書き込み可能、移行先 PolarDB クラスターは読み取り専用となり、ソース PolarDB クラスターからのデータが移行先 PolarDB クラスターに同期されます。
説明アーキテクチャアップグレードのロールバックの場合、ロールバックするアドレスを選択できます。
-
-
[アドレス交換なしのフェイルバック (ソースクラスターエンドポイントへのアプリケーション接続設定の更新)] を選択した場合は、次の手順に従います。
-
[アドレス交換なしのフェイルバック (ソースクラスターエンドポイントへのアプリケーション接続設定の更新)] を選択します。フェイルバック後、すぐにアプリケーションのデータベース接続プールエンドポイントを更新してください。
-
[OK] をクリックします。ソース PolarDB クラスターは読み取り/書き込み可能になり、移行先 PolarDB クラスターは読み取り専用になり、ソース PolarDB クラスターからのデータが移行先 PolarDB クラスターに同期されます。
-
ページを更新し、ソース PolarDB クラスターのステータスが読み取り/書き込みに変わったら、速やかにアプリケーション内のデータベースエンドポイントをソース PolarDB クラスターのものに更新してください。
-
-
アップグレードのキャンセル (オプション)
-
PolarDB コンソール にログインします。
-
移行先クラスターを見つけて、そのクラスター ID をクリックします。
-
基本情報 ページの PolarDB のアップグレード セクションで、アップグレードをキャンセル をクリックします。
-
アップグレードをキャンセル ダイアログボックスで、OK をクリックします。このダイアログには、アップグレードをキャンセルするとソースクラスターと宛先クラスター間のデータ同期が中断されることが説明されています。必要に応じて、[宛先インスタンスのバイナリロギングを無効にする] を選択します。





