このトピックでは、PolarDB for MySQLクラスターをアップグレードする方法について説明します。
準備
アップグレード評価を完了し、例外がスローされない場合は、準備をスキップします。 アップグレード評価の詳細については、「アップグレード評価」をご参照ください。
PolarDBのサービスにリンクされたロールが作成されているかどうかの確認
アップグレードを実行する前に、PolarDBのサービスにリンクされたロールが作成され、Data Transmission service (DTS) がAlibaba Cloudリソースへのアクセスを許可されていることを確認してください。 詳細については、「DTSによるAlibaba Cloudリソースへのアクセス許可」をご参照ください。
次のセクションでは、PolarDBのサービスにリンクされたロールが作成されているかどうかを確認する方法について説明します。
左側のナビゲーションウィンドウで、[アイデンティティ] > [ロール] を選択します。
AliyunServiceRoleForPolarDBという名前のサービスにリンクされたロールがリストに既に存在するかどうかを確認します。
サービスにリンクされたロールがリストに存在する場合は、このセクションをスキップして、「手順1: PolarDBクラスターの作成」で説明する操作を実行します。
サービスにリンクされたロールがリストに存在しない場合は、次の手順を続行します。
[ロール] ページで、[ロール作成] をクリックします。
[ロールの作成] パネルで、[信頼できるエンティティの選択] を [Alibaba Cloudサービス] に設定し、[次へ] をクリックします。
[ロールの設定] ステップで、ロールタイプを [サービスリンクロール] に設定し、[サービス] を [ApsaraDB for PolarDB] に選択します。
[OK] をクリックします。 [ロール] リストで、ロールが作成されたことを確認します。
ソースから冗長なシステムアカウントを削除PolarDB for MySQLクラスター
移行中に移行先PolarDB for MySQLクラスターのシステムアカウントが上書きされないようにするには、rootアカウントとaliyun_rootアカウントが移行元PolarDB for MySQLクラスターに同時に存在しないようにします。 移行プロセスを開始する前に、ソースPolarDB for MySQLクラスターから冗長なシステムアカウントを削除することを推奨します。
次の表に、PolarDB for MySQLの各バージョンの正しいシステムアカウント名を示します。
PolarDB for MySQLバージョン | 正しいシステムアカウント名 |
PolarDB for MySQLの5.6 | root |
PolarDB for MySQLの5.7 | aliyun_root |
PolarDB for MySQLの8.0 | root |
上記の表に記載されている各バージョンの対応するシステムアカウントとは別に、他のすべてのシステムアカウントを削除する必要があります。
これらのアカウントは、ユーザーが作成するか、バージョンのアップグレード中にシステムが自動的に作成できます。 特定のシナリオでは、一部のアカウントがPolarDBコンソールで非表示になる場合があります。
次の例は、PolarDB for MySQL 5.6クラスターから冗長システムアカウントを削除する方法を示しています。
特権アカウントを使用してクラスターに接続します。 詳細については、「クラスターへの接続」をご参照ください。
すべてのrootおよびaliyun_rootシステムアカウントを検索します。
select * from mysql.user where user in ('root', 'aliyun_root');
余分なシステムアカウントを削除します。 PolarDB for 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時間ごとにアカウントの残高から差し引かれます。
サーバーレス: 前払いは必要ありません。 計算ノード、ストレージスペース、PolarProxyなどのリソースは、実際の需要に基づいて動的にスケーリングされます。 これらのスケーリングされたリソースの実際の使用量に基づいて料金が請求されます。
下表に示すパラメーターを設定します。
説明次の表に記載されていないパラメーターについては、「クラスターの購入」をご参照ください。
状態
説明
作成方法
[アップグレード /移行] [PolarDB] を選択します。
リージョン
ソースPolarDB for MySQLクラスターのリージョン。
ソースPolarDBバージョン
ソースPolarDB for MySQLクラスターのエンジンバージョン。 有効な値: 5.6、5.7、8.0
ソースPolarDBクラスター
ソースPolarDB for MySQLクラスターのID。
データベースエンジン
ターゲットPolarDBクラスターのエンジンバージョン。
バージョンのアップグレードを実行する場合は、ソースPolarDBクラスターと同じバージョンまたは異なるバージョンを選択できます。
エディションのアップグレードを実行する場合は、MySQL 8.0のみを選択できます。
説明データベースのエディション
Database Editionは、元のクラスターと同じです。 このパラメーターを設定する必要はありません。
エディション
ターゲットPolarDBクラスターのエディション。
バージョンアップを実行する場合は、パラメーターをCluster Edition (推奨) に設定します。
エディションのアップグレードを実行する場合は、パラメーターを [マルチマスタークラスター (データベース /テーブル)] に設定します。
説明CPU アーキテクチャ
クラスタのCPUアーキテクチャは、元のクラスタのCPUアーキテクチャと同じです。 このパラメーターを設定する必要はありません。
ノード数
ノードの数は元のクラスターの数と同じです。 このパラメーターを設定する必要はありません。
現在の仕様
選択された宛先クラスターの仕様。
PolarProxy タイプ
クラスターのPolarProxyタイプは、元のクラスターと同じです。 このパラメーターを設定する必要はありません。
ページの右上隅で、クラスター設定を確認し、[期間] 、[数量] 、およびの [自動更新] パラメーターを設定します。 Durationパラメーターは、サブスクリプションクラスターでのみ使用できます。
利用規約を読んで選択します。 [今すぐ購入] をクリックします。
[購入] ページで注文と課金方法を確認し、[購入] をクリックします。
説明支払いが完了したら、10〜15分待ちます。 その後、[クラスター] ページで新しいクラスターを表示できます。
クラスター内の特定ノードの状態が “作成中” の場合、クラスターは作成中であり、使用できません。 クラスターが [実行] 状態の場合にのみクラスターを使用できます。
クラスターがデプロイされているリージョンを選択していることを確認してください。 別のリージョンを選択している場合、クラスターを表示できません。
クラスターIDをクリックして、クラスターの詳細ページに移動します。
[基本情報] ページの [PolarDBアップグレード] セクションで、ターゲットPolarDBクラスターの [レプリケーション遅延] パラメーターの値を表示します。 このパラメーターの値が60秒未満の場合は、アップグレード操作を実行します。
説明クラスターが作成されると、DTSはソースPolarDBクラスターからのデータの同期を開始します。 30日以内にアップグレードを完了する必要があります。 アップグレードは30日後に失敗します。
[アップグレードのキャンセル] をクリックすることもできます。 アップグレードのキャンセルによる影響については、「FAQ」をご参照ください。
ステータスがPrecheck Failedの場合、エラーメッセージに基づいてトラブルシューティングを実行します。
たとえば、ソースPolarDBクラスターでトリガーが作成されている場合、事前チェックは失敗します。ソースPolarDBクラスターのトリガーを削除し、[続行] をします。 [アップグレードのキャンセル] をクリックして、DTSコンソールで手動で移行タスクを作成することもできます。 詳細については、「トリガーを含むソースデータベースのデータ同期または移行タスクの設定」をご参照ください。
エディションのアップグレード中、IDが1のプライマリノードは、デフォルトで書き込み要求を処理するために使用されます。 データ同期中のエラーを回避するため、プライマリノードを変更しないことを推奨します。
手順2: 移行先クラスター
この手順を実行する前に、移行先PolarDBクラスターのレプリケーション遅延が60秒未満であることを確認してください。
PolarDB コンソールにログインします。
宛先クラスターの ID をクリックします。
[基本情報] ページの [アップグレード] セクションで、[切り替えのアップグレード] をクリックします。
説明切り替えは通常5分以内に完了できます。
切り替え後、ソースPolarDBクラスターは読み取り専用になり、ターゲットPolarDBクラスターは読み取り要求と書き込み要求の両方を処理します。 DTSは、増分データを移行先のPolarDBクラスターから移行元のPolarDBクラスターに同期することによって、データレプリケーションの方向も変更します。
表示されるダイアログボックスで、[エンドポイントで切り替える (接続変更は不要)] または [エンドポイントで切り替える (接続変更が必要)] を選択します。
エンドポイントの切り替え (接続変更不要)
[エンドポイントの切り替え (接続変更不要)] を選択します。 すなわち、システムは、新旧のクラスタのエンドポイントを自動的に交換する。 アプリケーションが新しいクラスターに接続するために、アプリケーションの構成を変更する必要はありません。
重要このオプションを選択する前に、[概要] トピックの [注意事項] セクションの項目に精通していることを確認してください。
アップグレードするPolarDBクラスターが既存のDTSタスクの送信元または送信先である場合、クラスターがアップグレードされた後、DTSタスクの送信元または送信先クラスターをアップグレードされたPolarDBクラスターに変更する必要があります。 このようなタスクには、データ同期タスク、データ移行タスク、および変更追跡タスクが含まれます。 詳細については、「同期するオブジェクトの変更」をご参照ください。
[OK] をクリックします。
Switch without Endpoints (Connection Changes Required)
ダイアログボックスで、[エンドポイントなしで切り替える (接続変更が必要)] を選択します。
[OK] をクリックします。
ページを最新の情報に更新します。 宛先PolarDBの読み取り /書き込みステータスが読み取りと書き込みに変更された場合、アプリケーションのデータベースエンドポイントをできるだけ早く変更します。
切り替え後にデータエラーが発生した場合は、切り替えをロールバックできます。 詳細については、「 (オプション) アップグレードのロールバック」をご参照ください。
エディションのアップグレードが完了したら、移行先Multi-master Cluster editionクラスターのプライマリノードを変更しないことを推奨します。 そうしないと、データ同期中にエラーが発生する可能性があります。
ステップ3: アップグレードを完了する
「手順1: PolarDBクラスターの作成」で説明されている操作を完了した後、30日以内にアップグレードを完了する必要があります。
[アップグレードの完了] をクリックする前に、データ移行が完了し、データ同期が不要になったことを確認します。
アップグレードが完了すると、移行先のPolarDBクラスターから移行元のPolarDBクラスターにデータが同期されなくなり、アップグレードをロールバックできなくなります。 移行先のPolarDBクラスターを特定の期間使用し、クラスターが期待どおりに実行されることを確認してからアップグレードを完了することを推奨します。
PolarDB コンソールにログインします。
宛先クラスターの ID をクリックします。
[基本情報] ページの [アップグレード] セクションで、[アップグレードの完了] をクリックします。
表示されるダイアログボックスで、移行先クラスターのバイナリログを無効にするかどうかを指定します。 次に、[OK] をクリックします。
説明[OK] をクリックすると、システムは約2分以内にデータ同期を停止します。 このプロセス中、クラスターのアップグレードステータスは [同期の無効化] です。
宛先インスタンスのバイナリログの無効化を選択した場合、設定を有効にするためにPolarDBクラスターが再起動されます。
ソースPolarDBクラスターが不要になった場合は、クラスターをリリースできます。クラスターのリリース方法については、「クラスターのリリース」をご参照ください。
エディションのアップグレードを実行している場合、[アップグレードの完了] ダイアログボックスで [OK] をクリックすると、書き込みリクエストを処理するプライマリノードがランダムに割り当てられます。
(オプション) データ同期タスクの詳細を表示
アップグレード中にエラーが発生した場合は、DTS同期タスクの詳細ページに移動して詳細を確認できます。
PolarDB コンソールにログインします。
宛先クラスターの ID をクリックします。
[基本情報] ページの [アップグレード] セクションで、[DTSデータ同期タスク] の名前をクリックして、DTSコンソールの同期タスクリストに移動します。
同期タスクのIDをクリックして、タスクの詳細ページに移動します。
アップグレード中に、同期するオブジェクトを変更する場合は、タスクの詳細ページで [オブジェクトの再選択] をクリックします。 たとえば、ソースのPolarDBクラスターに、同期タスクに含める必要のある新しいデータベースがある場合があります。
(オプション) ロールバックアップグレード
アップグレードを完了する前にエラーが発生した場合は、アップグレード前のバージョンにクラスターをロールバックできます。 ロールバック後、ソースPolarDBクラスターは読み取り要求と書き込み要求の両方を処理し、ターゲットPolarDBクラスターは読み取り専用になります。 DTSは、増分データを移行元のPolarDBクラスターから移行先のPolarDBクラスターに同期することによって、データレプリケーションの方向も変更します。 ロールバック後にメジャーバージョンのアップグレードを続行する必要がある場合は、「手順2: 移行先クラスターに切り替える」で説明されている操作を実行できます。
PolarDB コンソールにログインします。
宛先クラスターの ID をクリックします。
[基本情報] ページの [アップグレード] セクションで、[アップグレード] ロールバックをクリックします。
表示されるダイアログボックスで、[エンドポイントで元に切り替える (接続の変更は不要)] または [エンドポイントで元に戻す (接続の変更は不要)] を選択します。
エンドポイントでスイッチバックする (接続の変更は不要):
システムは、ソースおよびターゲットのPolarDBクラスターのエンドポイントを自動的に交換します。 アプリケーションがソースPolarDBクラスターに接続するために、アプリケーションの構成を変更する必要はありません。
[OK] をクリックします。
ロールバック後、ソースPolarDBクラスターは読み取り要求と書き込み要求の両方を処理し、ターゲットPolarDBクラスターは読み取り専用になります。 DTSは、増分データを移行元のPolarDBクラスターから移行先のPolarDBクラスターに同期することによって、データレプリケーションの方向も変更します。
説明エディションのアップグレードをロールバックするときに、ロールバックのエンドポイントを選択できます。
エンドポイントなしでスイッチバックする (接続変更が必要):
ロールバック後、できるだけ早い機会にアプリケーションのデータベースエンドポイントを変更する必要があります。
[OK] をクリックすると、古いクラスターは読み取り要求と書き込み要求の両方を処理し、新しいクラスターは読み取り専用になります。 DTSは、データ複製方向も変更します。 増分データは、古いクラスタから新しいクラスタに同期されます。
ページを最新の情報に更新します。 ソースPolarDBパラメーターの読み取り /書き込みステータスの値が読み取りと書き込みに変更された場合、アプリケーションのデータベースエンドポイントをできるだけ早く変更します。
(オプション) アップグレードのキャンセル
PolarDB コンソールにログインします。
クラスターを見つけて、クラスターIDをクリックします。
[基本情報] ページの [PolarDBアップグレード] セクションで、[アップグレードのキャンセル] をクリックします。
[アップグレードのキャンセル] ダイアログボックスで、[OK] をクリックします。