このトピックでは、PolarDB for MySQL クラスターをアップグレードする手順について説明します。
事前チェック
アップグレード評価を完了し、例外が見つからなかった場合は、このチェックをスキップして次のステップに進むことができます。
PolarDB のサービスリンクロールが作成されているかどうかの確認
アップグレードを実行する前に、PolarDB のサービスリンクロールが作成されているかどうか、および DTS にクラウドリソースへのアクセス権限が付与されているかどうかを確認してください。
ソース PolarDB for MySQL クラスターからの余分なシステムアカウントの削除
移行中に宛先 PolarDB for MySQL クラスターのシステムアカウントが上書きされるのを防ぐために、ソース PolarDB for MySQL クラスターに root アカウントと aliyun_root アカウントが同時に存在しないようにしてください。移行プロセスを開始する前に、ソース PolarDB for MySQL クラスターから余分なシステムアカウントを削除する必要があります。
次の表に、PolarDB for MySQL の各バージョンの正しいシステムアカウント名を示します。
データベースエンジンバージョン | 正しいシステムアカウント名 |
MySQL 5.6 | root |
MySQL 5.7 | aliyun_root |
MySQL 8.0 | root |
前の表でクラスターのバージョンに指定されているアカウント以外のすべてのシステムアカウントは削除する必要があります。たとえば、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 クラスター間の SQL テンプレート実行パフォーマンスの違いを分析します。
インテリジェントストレステストタスクの実行方法の詳細については、「トラフィックの再生とストレステスト」をご参照ください。
ステップ 1: PolarDB からのアップグレードと移行
このステップでは、ソース PolarDB for MySQL クラスターと同じデータを含む新しいクラスターを作成します。ソース PolarDB for MySQL クラスターからの増分データは、リアルタイムで新しいクラスターに同期されます。
PolarDB コンソールにログインします。
クラスター購入ページに移動します。次のいずれかの方法で購入ページに移動できます。
[新規クラスターの作成] をクリックします。
アップグレードするクラスターの ID をクリックします。左側のナビゲーションウィンドウで、[設定と管理] > [バージョン管理] を選択します。[メジャーバージョンアップグレード] タブで、[移行によるアップグレード] をクリックします。
[課金方法] を [サブスクリプション]、[従量課金]、または [サーバーレス] に設定します。
サブスクリプション: クラスターを作成するときに計算ノードの料金を支払う必要があります。ストレージは 1 時間あたりの実際のデータ量に基づいて課金され、料金は 1 時間ごとにアカウントから差し引かれます。
従量課金: 事前に支払う必要はありません。計算ノードとストレージスペースは 1 時間あたりの実際のデータ量に基づいて課金され、料金は 1 時間ごとにアカウントから差し引かれます。
サーバーレス: 事前に支払う必要はありません。計算ノード、ストレージスペース、データベースプロキシなどのリソースは、クラスターの使用中の実際の要件に基づいて動的かつ弾力的にスケーリングされます。スケーリングされたリソースの実際の使用量に基づいて課金されます。
必要に応じて次のパラメーターを設定します。
説明次の表に記載されていないパラメーターの詳細については、「クラスターの購入」をご参照ください。
パラメーター
説明
作成方法
[PolarDB からのアップグレード/移行] を選択します。
リージョン
ソース PolarDB for MySQL クラスターが配置されているリージョンを選択します。
ソース PolarDB バージョン
ソース PolarDB for MySQL クラスターのバージョン。5.6、5.7、または 8.0 を選択できます。
ソース PolarDB クラスター
ソース PolarDB for MySQL クラスターを選択します。
データベースエンジン
宛先クラスターのデータベースエンジンバージョン。
バージョンをアップグレードする場合、ソースクラスターと同じバージョンまたは異なるバージョンを選択できます。
アーキテクチャをアップグレードする場合、[MySQL 8.0] を選択する必要があります。
説明プロダクトバージョン
プロダクトバージョンはソースクラスターと同じです。バージョンを選択する必要はありません。
系列
移行先クラスターのシリーズ。
説明バージョンをアップグレードする場合は、[クラスターエディション (推奨)] を選択します。
アーキテクチャをアップグレードする場合は、[マルチマスタークラスター (制限なし)] を選択します。
CPU アーキテクチャ
CPU アーキテクチャはソースクラスターと同じです。アーキテクチャを選択する必要はありません。
ノード数
ノード数はソースクラスターと同じです。数を選択する必要はありません。
現在選択されている仕様
宛先クラスターのノード仕様。
データベースプロキシタイプ
データベースプロキシの仕様はソースクラスターと同じです。仕様を選択する必要はありません。
右上隅でクラスター構成情報を確認し、[サブスクリプション期間] (サブスクリプション クラスターの場合)、[数量]、[自動更新] を設定します。
利用規約を読んで選択します。[今すぐ購入] をクリックします。
[支払い] ページで、注文情報と支払方法を確認し、[注文] をクリックします。
説明支払いが成功した後、クラスターが作成されるまで 10 ~ 15 分待ちます。その後、[クラスター] ページで新しいクラスターを表示できます。
クラスター内のノードのステータスが [作成中] の場合、クラスターはまだ作成中であり、使用できません。クラスターは、ステータスが [実行中] に変わったときにのみ使用できます。
正しいリージョンを選択したことを確認してください。そうしないと、作成したクラスターを表示できません。
クラスターが作成されたら、クラスター ID をクリックしてクラスターの [基本情報] ページに移動します。
[基本情報] ページの [PolarDB アップグレード機能] セクションで、次に進む前に、宛先 PolarDB クラスターの [レプリケーションの遅延] が 60 秒未満であることを確認します。
説明既存の DTS 双方向同期タスクがあるクラスターでは、ワンクリックアップグレードを実行できません。データ不整合が発生する可能性があります。
クラスターが作成された後、DTS はソース PolarDB クラスターからのデータの同期を開始します。30 日以内に アップグレードを完了する必要があります。30 日後、アップグレード機能は自動的に無効になります。
このセクションで [アップグレードのキャンセル] をクリックできます。アップグレードをキャンセルした場合の影響の詳細については、「よくある質問」をご参照ください。
ステータスが [事前チェック失敗] の場合は、エラーメッセージに基づいて問題を解決してください。

たとえば、ソース PolarDB クラスターでトリガーが作成されている場合、事前チェックは失敗し、PolarDB クラスターにトリガーが存在することを示すエラーメッセージが表示されます。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 クラスターが既存の Data Transmission Service (DTS) タスクのソースまたは宛先クラスターである場合、アップグレード後に DTS タスクのソースまたは宛先クラスターをアップグレードされた PolarDB クラスターに変更する必要があります。これらのタスクには、データ同期タスク、データ移行タスク、変更追跡タスクが含まれます。詳細については、「DTS タスクのオブジェクトを変更する」をご参照ください。
[OK] をクリックします。
[エンドポイントなしで切り替え (アプリケーションを新しい PolarDB 接続設定に変更する必要があります)] を選択した場合は、次の手順を実行します。
[エンドポイントなしで切り替え (アプリケーションを新しい PolarDB 接続設定に変更する必要があります)] を選択します。
[OK] をクリックします。
ページを更新します。宛先 PolarDB クラスターの [読み取り/書き込みステータス] が [読み取り/書き込み] に変わったら、できるだけ早くアプリケーションのデータベースエンドポイントを変更します。
アップグレードの切り替えが完了した後、データの例外やその他の問題が見つかった場合は、ロールバック操作を実行して、クラスターをアップグレード前の状態にすばやく復元できます。アップグレードをロールバックすることもできます。
アーキテクチャのアップグレードと切り替えが完了した後、DTS データ同期タスクの例外を防ぐために、宛先 マルチマスタークラスター (無制限) 版 クラスターの書き込みエンドポイントを変更しないでください。
(任意) ステップ 4: ソースインスタンスの DTS タスクの切り替え
ソースインスタンスにワンクリック移行用ではない関連 DTS リンクがある場合、この機能を使用して DTS 同期または移行タスクのソースまたは宛先データベースインスタンスを変更または置き換えて、関連サービスをスムーズに切り替えることができます。原則と注意点の詳細については、「DTS タスクのソースまたは宛先データベースインスタンスを変更する」をご参照ください。
PolarDB コンソールに移動します。
宛先クラスターを見つけて、クラスター ID をクリックします。
概要 ページの [PolarDB] [移行機能] セクションで、[ソースインスタンス 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] をクリックします。






