このトピックでは、PolarDB for MySQLクラスターをアップグレードする手順について説明します。
準備
アップグレード評価を完了し、例外がスローされない場合は、準備をスキップします。 アップグレード評価の詳細については、「アップグレード評価」をご参照ください。
PolarDBのサービスにリンクされたロールが作成されているかどうかの確認
アップグレードを実行する前に、PolarDBのサービスにリンクされたロールが作成され、Data Transmission service (DTS) がAlibaba Cloudリソースへのアクセスを許可されていることを確認してください。 詳細については、「DTSによるAlibaba Cloudリソースへのアクセス許可」をご参照ください。
次のセクションでは、PolarDBのサービスにリンクされたロールが作成されているかどうかを確認する方法について説明します。
左側のナビゲーションウィンドウで、[アイデンティティ] > [ロール] を選択します。
AliyunServiceRoleForPolarDBという名前のサービスにリンクされたロールがリストに既に存在するかどうかを確認します。
サービスにリンクされたロールがリストに存在する場合は、手順1: [PolarDBからアップグレード /移行] メソッドを選択してターゲットPolarDBクラスターを作成するの操作を実行します。
サービスにリンクされたロールがリストに存在しない場合は、次の手順を続行します。
[ロールの作成] をクリックします。
[ロールの作成] パネルの [ロールタイプの選択] ステップで、[Alibaba Cloud Service] を選択し、[次へ] をクリックします。
[ロールの設定] ステップで、[ロールの種類] を [サービスにリンクされたロール] に設定し、[サービスの選択] ドロップダウンリストから [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 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テンプレートの実行パフォーマンスを、元のバージョンと宛先のバージョンのPolarDBクラスター間で比較します。
インテリジェントストレステストタスクの実行方法については、「インテリジェントストレステスト」をご参照ください。
手順1: PolarDBからアップグレード /移行方法を選択して、ターゲットPolarDBクラスターを作成
このステップでは、ソースPolarDB for MySQLクラスターと同じデータを含むクラスターを作成します。 ソースPolarDB for MySQLクラスターの増分データは、リアルタイムで新しいクラスターに同期されます。
移行前にアップグレード評価を完了することを推奨します。 アップグレード評価の詳細については、「アップグレード評価」をご参照ください。
DTSを使用してデータを移行する場合、DTSは最初の完全データ同期中にソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。 データ移行のスロットリングを有効にできます。 詳細については、「データ移行のスロットリングの有効化」をご参照ください。
PolarDB コンソールにログインします。
次のいずれかの方法を使用して、PolarDBクラスター購入ページに移動します。
クラスターページで、[クラスターの作成] をクリックします。
[クラスター] ページで、アップグレードするクラスターのIDをクリックします。 表示されるページの左側のナビゲーションウィンドウで、[設定と管理] > [バージョン管理] を選択します。 [メジャーバージョンのアップグレード] タブで、[移行によるアップグレード] をクリックします。
[課金方法] を [サブスクリプション] 、[従量課金] 、または [サーバーレス] に設定します。
サブスクリプション: クラスターを作成するときは、コンピュートノードの前払いが必要です。 ストレージは実際の1時間ごとの使用量に基づいて課金され、料金は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データ同期タスクが進行中のクラスターをアップグレードしないでください。 データの不整合が発生します。
移行先クラスターの作成後、DTSタスクは移行元PolarDBクラスターから移行先PolarDBクラスターへのデータの同期を開始します。 30日以内にアップグレードを完了する必要があります。 アップグレードは30日後に無効になります。
[アップグレードのキャンセル] をクリックすることもできます。 アップグレードのキャンセルによる影響については、「メジャーバージョンのアップグレードのFAQ」をご参照ください。
ステータスがPrecheck Failedの場合、エラーメッセージに基づいてトラブルシューティングを実行します。
たとえば、ソースPolarDBクラスターでトリガーが作成されている場合、事前チェックは失敗します。 ソースPolarDBクラスターのトリガーを削除し、[アップグレードの続行] をクリックします。 または、[アップグレードのキャンセル] をクリックし、DTSコンソールで手動で移行タスクを作成することもできます。 詳細については、「トリガーを含むソースデータベースのデータ同期または移行タスクの設定」をご参照ください。
エディションのアップグレード中、IDが1のプライマリノードは、デフォルトで書き込み要求を処理するために使用されます。 データ同期中のエラーを防ぐため、アップグレードが完了する前にプライマリノードを変更しないことをお勧めします。
(オプション) 手順2: エンドポイントの追加
移行元と移行先のPolarDBクラスターのエンドポイントは、メジャーバージョンのアップグレードのサービス切り替えプロセス中に交換できます。 これにより、切り替え後にアプリケーションの接続設定を変更することなく、移行先のPolarDBクラスターに接続できます。 ソースとターゲットの両方のPolarDBクラスターにエンドポイントがある場合にのみ、エンドポイントを交換できます。 デフォルトでは、ターゲットPolarDBクラスターにはプライベートプライマリエンドポイントとプライベートクラスターエンドポイントのみがあります。 ソースPolarDBクラスターにさらに多くのエンドポイントがある場合、エンドポイントを交換する場合は、切り替え前にターゲットPolarDBクラスターに対応するエンドポイントを作成する必要があります。 PolarDBクラスターのエンドポイントを作成する方法については、「エンドポイントの管理」をご参照ください。
切り替え前に必要なエンドポイントを作成しなかった場合は、切り替え後にエンドポイントを追加できます。 切り替え後にエンドポイントを追加するには、ターゲットPolarDBクラスターが実行状態になるまで待ちます。 エンドポイント設定とクラスターパラメーターを設定し、ビジネス要件に基づいて読み取り専用ノードを追加することもできます。
プライベートエンドポイントを交換するには、ソースとターゲットのPolarDBクラスターが同じ仮想プライベートクラウド (VPC) に属していることを確認します。 それ以外の場合は、切り替え後に元のサービスに接続できません。
ステップ3: サービスの切り替え
サービスをターゲットPolarDBクラスターに切り替える前に、ターゲットPolarDBクラスターのレプリケーション遅延が60秒未満であることを確認してください。
PolarDB コンソールにログインします。
ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。
[基本情報] ページの [PolarDBアップグレード] セクションで、[切り替えのアップグレード] をクリックします。
説明ほとんどの場合、切り替えは5分以内に完了します。
切り替え後、ソースPolarDBクラスターは読み取り専用になり、ターゲットPolarDBクラスターは読み取り要求と書き込み要求の両方を処理します。 DTSは、増分データをターゲットPolarDBクラスターからソースPolarDBクラスターに同期することによって、データレプリケーションの方向も変更します。
表示されるダイアログボックスで、ビジネス要件に基づいて、[エンドポイントで切り替える (接続変更不要)] または [エンドポイントで切り替える (接続変更不要)] を選択します。
サービスの切り替えプロセス中に、移行元と移行先のPolarDBクラスターのエンドポイントを交換する場合は、次の手順を実行します。
[エンドポイントの切り替え (接続変更不要)] を選択します。 システムは、切り替えプロセス中に、ソースおよびターゲットPolarDBクラスターのエンドポイントを自動的に交換します。 切り替え後、アプリケーションの接続設定を変更することなく、移行先のPolarDBクラスターに接続できます。
重要[エンドポイントとの切り替え (接続変更は不要)] を選択する前に、必ず [エンドポイントとの切り替えの注意] をお読みください。
ソースPolarDBクラスターが既存のDTSタスクのソースまたは宛先である場合、DTSタスクのソースまたは宛先クラスターを宛先PolarDBクラスターに変更する必要があります。 このようなタスクには、データ同期タスク、データ移行タスク、および変更追跡タスクが含まれます。 詳細については、「DTSタスクの切り替え」をご参照ください。
[OK] をクリックします。
サービス切り替えプロセス中にソースおよびターゲットPolarDBクラスターのエンドポイントを交換したくない場合は、次の手順を実行します。
[エンドポイントなしの切り替え (接続変更が必要)] を選択します。
[OK] をクリックします。
ページを最新の情報に更新します。 宛先PolarDBの読み取り /書き込みステータスが読み取りと書き込みに変更された場合、アプリケーションのデータベースエンドポイントをできるだけ早く変更します。
切り替え後にデータエラーが発生した場合は、切り替えをロールバックできます。 詳細については、「 (オプション) アップグレードのロールバック」をご参照ください。
エディションのアップグレードが完了したら、移行先Multi-master Cluster editionクラスターのプライマリノードを変更しないことを推奨します。 そうしないと、データ同期中にエラーが発生する可能性があります。
(オプション) ステップ4: DTSタスクの切り替え
移行元クラスターがDTSタスクに関与している場合 (ワンクリック移行タスクではありません) 、DTSタスクの移行元データベースまたは移行先データベースを変更して、関連するビジネスをスムーズに切り替えることができます。 この機能の仕組みと使用方法の詳細については、「ModifyDtsJobEndpoint」をご参照ください。
PolarDBコンソールにログインします。
ターゲットPolarDBクラスターを見つけて、クラスターIDをクリックします。
概要ページのPolarDB アップグレードセクションで、Business DTS Task Databaseエンドポイントの切り替えをクリックします。
Business DTS Task Databaseエンドポイントの切り替えダイアログボックスで、ソースインスタンスDTSタスク (切り替え転送)または宛先インスタンスDTSタスク (切り替えロールバック)を選択します。
重要切り替え前に、ソースおよびターゲットPolarDBクラスターのDTS同期タスクの状態を確認します。 詳細については、「DescribeDtsJobDetail」をご参照ください。
DTSタスクをソースPolarDBクラスターからターゲットPolarDBクラスターに切り替えるには、次の手順を実行します。
ソースPolarDBクラスターのDTSタスクを選択します。
[切り替えを確定] をクリックします。
DTSタスクをターゲットPolarDBクラスターからソースPolarDBクラスターに切り替えるには、次の手順を実行します。
ターゲットPolarDBクラスターのDTSタスクを選択します。
[切り替えロールバックをコミット] をクリックします。
サービスをターゲットPolarDBクラスターに切り替えた後、DTSタスクをソースPolarDBクラスターからターゲットPolarDBクラスターに切り替えます。
切り替えをロールバックした後、移行をキャンセルする前に、移行先のPolarDBクラスターから移行元のPolarDBクラスターにDTSタスクを切り替えます。
ステップ5: アップグレードを完了する
手順1: [PolarDBからアップグレード /移行] メソッドを選択してターゲットPolarDBクラスターを作成する] の操作を完了した後、30日以内にアップグレードを完了する必要があります。
[アップグレードの完了] をクリックする前に、データ移行が完了し、データ同期が不要になったことを確認します。
アップグレードが完了すると、移行先のPolarDBクラスターから移行元のPolarDBクラスターにデータが同期されなくなり、アップグレードをロールバックできなくなります。 移行先のPolarDBクラスターを特定の期間使用し、クラスターが期待どおりに実行されることを確認してからアップグレードを完了することを推奨します。
PolarDB コンソールにログインします。
ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。
[基本情報] ページの [PolarDBアップグレード] セクションで、[アップグレードの完了] をクリックします。
表示されるダイアログボックスで、移行先クラスターのバイナリログを無効にするかどうかを指定します。 次に、[OK] をクリックします。
説明[OK] をクリックすると、システムは約2分以内にデータ同期を停止します。 このプロセス中、クラスターのアップグレードステータスは [同期の無効化] です。
移行先クラスターのバイナリログを無効にすると、PolarDBクラスターが再起動され、設定が有効になります。
ソースPolarDBクラスターが不要になった場合は、クラスターをリリースできます。 クラスターのリリース方法については、「クラスターのリリース」をご参照ください。
エディションのアップグレードを実行している場合、[アップグレードの完了] ダイアログボックスで [OK] をクリックすると、書き込みリクエストを処理するプライマリノードがランダムに割り当てられます。
(オプション) データ同期タスクの詳細を表示
アップグレード中にエラーが発生した場合は、DTS同期タスクの詳細ページに移動して詳細を確認できます。
PolarDB コンソールにログインします。
ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。
[基本情報] ページの [PolarDBアップグレード] セクションで、[DTSデータ同期タスク] の名前をクリックして、DTSコンソールの同期タスクリストに移動します。
同期タスクのIDをクリックして、タスクの詳細ページに移動します。
アップグレード中に、同期するオブジェクトを変更する場合は、タスクの詳細ページで [オブジェクトの再選択] をクリックします。 たとえば、ソースのPolarDBクラスターに、同期タスクに含める必要のある新しいデータベースがある場合があります。
(オプション) ロールバックアップグレード
アップグレードを完了する前にエラーが発生した場合は、アップグレードをロールバックできます。 ロールバック後、ソースPolarDBクラスターは読み取り要求と書き込み要求の両方を処理し、ターゲットPolarDBクラスターは読み取り専用になります。 DTSは、増分データを移行元のPolarDBクラスターから移行先のPolarDBクラスターに同期することによって、データレプリケーションの方向も変更します。 ロールバック後にメジャーバージョンのアップグレードを続行する必要がある場合は、「手順3: サービスの切り替え」で説明されている操作を実行できます。
PolarDB コンソールにログインします。
ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。
[基本情報] ページの [PolarDBアップグレード] セクションで、[アップグレード] ロールバックをクリックします。
表示されるダイアログボックスで、ビジネス要件に基づいて、[エンドポイントへの切り替え (接続変更不要)] または [エンドポイントへの切り替え (接続変更不要)] を選択します。
アップグレードのロールバック中にエンドポイントを元に切り替える場合は、次の手順を実行します。
[エンドポイントへの切り替え (接続変更不要)] を選択します。 アップグレードのロールバックプロセス中に、ソースおよびターゲットのPolarDBクラスターのエンドポイントが自動的に切り替わります。 これにより、ロールバック後にアプリケーションの接続設定を変更することなく、ソースPolarDBクラスターに接続できます。
[OK] をクリックします。
ロールバック後、ソースPolarDBクラスターは読み取り要求と書き込み要求の両方を処理し、ターゲットPolarDBクラスターは読み取り専用になります。 DTSは、増分データを移行元のPolarDBクラスターから移行先のPolarDBクラスターに同期することによって、データレプリケーションの方向も変更します。
説明エディションのアップグレードをロールバックするときに、ロールバックのエンドポイントを選択できます。
アップグレードのロールバック中にエンドポイントを切り替えない場合は、次の手順を実行します。
[エンドポイントなしで切り替える (接続変更が必要)] を選択します。 この方法では、切り替え後に最も早い機会にアプリケーションのデータベースエンドポイントを変更する必要があります。
[OK] をクリックします。 ロールバック後、ソースPolarDBクラスターは読み取り要求と書き込み要求の両方を処理し、ターゲットPolarDBクラスターは読み取り専用になります。 DTSは、データ複製方向も変更します。 増分データは、ソースPolarDBクラスターからターゲットPolarDBクラスターに同期されます。
ページを最新の情報に更新します。 ソースPolarDBパラメーターの読み取り /書き込みステータスの値が読み取りと書き込みに変更された場合、アプリケーションのデータベースエンドポイントをできるだけ早く変更します。
(オプション) アップグレードのキャンセル
PolarDB コンソールにログインします。
ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。
[基本情報] ページの [PolarDBアップグレード] セクションで、[アップグレードのキャンセル] をクリックします。
[アップグレードのキャンセル] ダイアログボックスで、[OK] をクリックします。