すべてのプロダクト
Search
ドキュメントセンター

PolarDB:手順

最終更新日:Dec 23, 2024

このトピックでは、PolarDB for MySQLクラスターをアップグレードする手順について説明します。

準備

説明

アップグレード評価を完了し、例外がスローされない場合は、準備をスキップします。 アップグレード評価の詳細については、「アップグレード評価」をご参照ください。

PolarDBのサービスにリンクされたロールが作成されているかどうかの確認

アップグレードを実行する前に、PolarDBのサービスにリンクされたロールが作成され、Data Transmission service (DTS) がAlibaba Cloudリソースへのアクセスを許可されていることを確認してください。 詳細については、「DTSによるAlibaba Cloudリソースへのアクセス許可」をご参照ください。

次のセクションでは、PolarDBのサービスにリンクされたロールが作成されているかどうかを確認する方法について説明します。

  1. Resource Access Management (RAM) コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[アイデンティティ] > [ロール] を選択します。

  3. AliyunServiceRoleForPolarDBという名前のサービスにリンクされたロールがリストに既に存在するかどうかを確認します。

  4. [ロールの作成] をクリックします。

  5. [ロールの作成] パネルの [ロールタイプの選択] ステップで、[Alibaba Cloud Service] を選択し、[次へ] をクリックします。创建角色

  6. [ロールの設定] ステップで、[ロールの種類][サービスにリンクされたロール] に設定し、[サービスの選択] ドロップダウンリストから [ApsaraDB for PolarDB] を選択します。配置角色

  7. [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クラスターから追加のシステムアカウントを削除する方法を示しています。

  1. 特権アカウントを使用してクラスターに接続します。 詳細については、「クラスターへの接続」をご参照ください。

  2. すべてのrootおよびaliyun_rootシステムアカウントを検索します。

    select * from mysql.user where user in ('root', 'aliyun_root');
  3. 余分なシステムアカウントを削除します。 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は最初の完全データ同期中にソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。 データ移行のスロットリングを有効にできます。 詳細については、「データ移行のスロットリングの有効化」をご参照ください。

  1. PolarDB コンソールにログインします。

  2. 次のいずれかの方法を使用して、PolarDBクラスター購入ページに移動します。

    • クラスターページで、[クラスターの作成] をクリックします。

    • [クラスター] ページで、アップグレードするクラスターのIDをクリックします。 表示されるページの左側のナビゲーションウィンドウで、[設定と管理] > [バージョン管理] を選択します。 [メジャーバージョンのアップグレード] タブで、[移行によるアップグレード] をクリックします。

  3. [課金方法][サブスクリプション][従量課金] 、または [サーバーレス] に設定します。

    • サブスクリプション: クラスターを作成するときは、コンピュートノードの前払いが必要です。 ストレージは実際の1時間ごとの使用量に基づいて課金され、料金は1時間ごとにアカウントから差し引かれます。

    • 従量課金: 前払いは必要ありません。 計算ノードと、データによって消費されるストレージの量に対して料金が請求されます。 これらの料金は、1時間ごとにアカウントの残高から差し引かれます。

    • サーバーレス: 前払いは必要ありません。 計算ノード、ストレージスペース、PolarProxyなどのリソースは、実際の需要に基づいて動的にスケーリングされます。 これらのスケーリングされたリソースの実際の使用量に基づいて料金が請求されます。

  4. ページでパラメーターを設定します。 下表に、各パラメーターを説明します。

    説明

    次の表に記載されていないパラメーターについては、「クラスターの購入」をご参照ください。

    パラメーター

    説明

    作成方法

    [アップグレード /移行] [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タイプは、元のクラスターと同じです。 このパラメーターを設定する必要はありません。

  5. ページの右上隅で、クラスター設定を確認し、[期間][数量] 、および [自動更新] パラメーターを設定します。 Durationパラメーターは、サブスクリプションクラスターでのみ使用できます。

  6. 利用規約を読んで選択します。 [今すぐ購入] をクリックします。

  7. [購入] ページで注文と支払い方法を確認し、[購入] をクリックします。

    説明
    • 支払いの完了後、10 分~ 15 分待ちます。 次に、[クラスター] ページで新しく作成されたクラスターを表示できます。

    • クラスター内の特定ノードの状態が “作成中” の場合、クラスターは作成中であり、使用できません。 クラスターは、状態が “実行中” の場合のみ使用できます。

    • クラスターがデプロイされているリージョンが選択されていることを確認します。 別のリージョンを選択している場合、クラスターを表示できません。

  8. クラスターIDをクリックして、クラスターの [基本情報] ページに移動します。

  9. [基本情報] ページの [PolarDBアップグレード] セクションで、ターゲットPolarDBクラスターの [レプリケーション遅延] パラメーターの値を表示します。 パラメーターの値が60秒未満の場合は、アップグレード操作を実行します。复制延迟小于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秒未満であることを確認してください。

  1. PolarDB コンソールにログインします。

  2. ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。

  3. [基本情報] ページの [PolarDBアップグレード] セクションで、[切り替えのアップグレード] をクリックします。升级切换

    説明
    • ほとんどの場合、切り替えは5分以内に完了します。

    • 切り替え後、ソースPolarDBクラスターは読み取り専用になり、ターゲットPolarDBクラスターは読み取り要求と書き込み要求の両方を処理します。 DTSは、増分データをターゲットPolarDBクラスターからソースPolarDBクラスターに同期することによって、データレプリケーションの方向も変更します。

  4. 表示されるダイアログボックスで、ビジネス要件に基づいて、[エンドポイントで切り替える (接続変更不要)] または [エンドポイントで切り替える (接続変更不要)] を選択します。

    • サービスの切り替えプロセス中に、移行元と移行先のPolarDBクラスターのエンドポイントを交換する場合は、次の手順を実行します。

      1. [エンドポイントの切り替え (接続変更不要)] を選択します。 システムは、切り替えプロセス中に、ソースおよびターゲットPolarDBクラスターのエンドポイントを自動的に交換します。 切り替え後、アプリケーションの接続設定を変更することなく、移行先のPolarDBクラスターに接続できます。

        重要
        • [エンドポイントとの切り替え (接続変更は不要)] を選択する前に、必ず [エンドポイントとの切り替えの注意] をお読みください。

        • ソースPolarDBクラスターが既存のDTSタスクのソースまたは宛先である場合、DTSタスクのソースまたは宛先クラスターを宛先PolarDBクラスターに変更する必要があります。 このようなタスクには、データ同期タスク、データ移行タスク、および変更追跡タスクが含まれます。 詳細については、「DTSタスクの切り替え」をご参照ください。

      2. [OK] をクリックします。

    • サービス切り替えプロセス中にソースおよびターゲットPolarDBクラスターのエンドポイントを交換したくない場合は、次の手順を実行します。

      1. [エンドポイントなしの切り替え (接続変更が必要)] を選択します。

      2. [OK] をクリックします。

      3. ページを最新の情報に更新します。 宛先PolarDBの読み取り /書き込みステータス読み取りと書き込みに変更された場合、アプリケーションのデータベースエンドポイントをできるだけ早く変更します。

説明
  • 切り替え後にデータエラーが発生した場合は、切り替えをロールバックできます。 詳細については、「 (オプション) アップグレードのロールバック」をご参照ください。

  • エディションのアップグレードが完了したら、移行先Multi-master Cluster editionクラスターのプライマリノードを変更しないことを推奨します。 そうしないと、データ同期中にエラーが発生する可能性があります。

(オプション) ステップ4: DTSタスクの切り替え

説明

移行元クラスターがDTSタスクに関与している場合 (ワンクリック移行タスクではありません) 、DTSタスクの移行元データベースまたは移行先データベースを変更して、関連するビジネスをスムーズに切り替えることができます。 この機能の仕組みと使用方法の詳細については、「ModifyDtsJobEndpoint」をご参照ください。

  1. PolarDBコンソールにログインします。

  2. ターゲットPolarDBクラスターを見つけて、クラスターIDをクリックします。

  3. 概要ページのPolarDB アップグレードセクションで、Business DTS Task Databaseエンドポイントの切り替えをクリックします。

    image

  4. Business DTS Task Databaseエンドポイントの切り替えダイアログボックスで、ソースインスタンスDTSタスク (切り替え転送)または宛先インスタンスDTSタスク (切り替えロールバック)を選択します。

    重要

    切り替え前に、ソースおよびターゲットPolarDBクラスターのDTS同期タスクの状態を確認します。 詳細については、「DescribeDtsJobDetail」をご参照ください。

    image

    • DTSタスクをソースPolarDBクラスターからターゲットPolarDBクラスターに切り替えるには、次の手順を実行します。

      1. ソースPolarDBクラスターのDTSタスクを選択します。

      2. [切り替えを確定] をクリックします。

    • DTSタスクをターゲットPolarDBクラスターからソースPolarDBクラスターに切り替えるには、次の手順を実行します。

      image

      1. ターゲットPolarDBクラスターのDTSタスクを選択します。

      2. [切り替えロールバックをコミット] をクリックします。

説明
  • サービスをターゲットPolarDBクラスターに切り替えた後、DTSタスクをソースPolarDBクラスターからターゲットPolarDBクラスターに切り替えます。

  • 切り替えをロールバックした後、移行をキャンセルする前に、移行先のPolarDBクラスターから移行元のPolarDBクラスターにDTSタスクを切り替えます。

ステップ5: アップグレードを完了する

手順1: [PolarDBからアップグレード /移行] メソッドを選択してターゲットPolarDBクラスターを作成する] の操作を完了した後、30日以内にアップグレードを完了する必要があります。

重要
  • [アップグレードの完了] をクリックする前に、データ移行が完了し、データ同期が不要になったことを確認します。

  • アップグレードが完了すると、移行先のPolarDBクラスターから移行元のPolarDBクラスターにデータが同期されなくなり、アップグレードをロールバックできなくなります。 移行先のPolarDBクラスターを特定の期間使用し、クラスターが期待どおりに実行されることを確認してからアップグレードを完了することを推奨します。

  1. PolarDB コンソールにログインします。

  2. ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。

  3. [基本情報] ページの [PolarDBアップグレード] セクションで、[アップグレードの完了] をクリックします。

  4. 表示されるダイアログボックスで、移行先クラスターのバイナリログを無効にするかどうかを指定します。 次に、[OK] をクリックします。

    説明
    • [OK] をクリックすると、システムは約2分以内にデータ同期を停止します。 このプロセス中、クラスターのアップグレードステータスは [同期の無効化] です。

    • 移行先クラスターのバイナリログを無効にすると、PolarDBクラスターが再起動され、設定が有効になります。

    • ソースPolarDBクラスターが不要になった場合は、クラスターをリリースできます。 クラスターのリリース方法については、「クラスターのリリース」をご参照ください。

    • エディションのアップグレードを実行している場合、[アップグレードの完了] ダイアログボックスで [OK] をクリックすると、書き込みリクエストを処理するプライマリノードがランダムに割り当てられます。

(オプション) データ同期タスクの詳細を表示

アップグレード中にエラーが発生した場合は、DTS同期タスクの詳細ページに移動して詳細を確認できます。

  1. PolarDB コンソールにログインします。

  2. ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。

  3. [基本情報] ページの [PolarDBアップグレード] セクションで、[DTSデータ同期タスク] の名前をクリックして、DTSコンソールの同期タスクリストに移動します。查看数据同步任务详情

  4. 同期タスクのIDをクリックして、タスクの詳細ページに移動します。

  5. アップグレード中に、同期するオブジェクトを変更する場合は、タスクの詳細ページで [オブジェクトの再選択] をクリックします。 たとえば、ソースのPolarDBクラスターに、同期タスクに含める必要のある新しいデータベースがある場合があります。

(オプション) ロールバックアップグレード

アップグレードを完了する前にエラーが発生した場合は、アップグレードをロールバックできます。 ロールバック後、ソースPolarDBクラスターは読み取り要求と書き込み要求の両方を処理し、ターゲットPolarDBクラスターは読み取り専用になります。 DTSは、増分データを移行元のPolarDBクラスターから移行先のPolarDBクラスターに同期することによって、データレプリケーションの方向も変更します。 ロールバック後にメジャーバージョンのアップグレードを続行する必要がある場合は、「手順3: サービスの切り替え」で説明されている操作を実行できます。

  1. PolarDB コンソールにログインします。

  2. ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。

  3. [基本情報] ページの [PolarDBアップグレード] セクションで、[アップグレード] ロールバックをクリックします。

  4. 表示されるダイアログボックスで、ビジネス要件に基づいて、[エンドポイントへの切り替え (接続変更不要)] または [エンドポイントへの切り替え (接続変更不要)] を選択します。

    • アップグレードのロールバック中にエンドポイントを元に切り替える場合は、次の手順を実行します。

      1. [エンドポイントへの切り替え (接続変更不要)] を選択します。 アップグレードのロールバックプロセス中に、ソースおよびターゲットのPolarDBクラスターのエンドポイントが自動的に切り替わります。 これにより、ロールバック後にアプリケーションの接続設定を変更することなく、ソースPolarDBクラスターに接続できます。

      2. [OK] をクリックします。

        ロールバック後、ソースPolarDBクラスターは読み取り要求と書き込み要求の両方を処理し、ターゲットPolarDBクラスターは読み取り専用になります。 DTSは、増分データを移行元のPolarDBクラスターから移行先のPolarDBクラスターに同期することによって、データレプリケーションの方向も変更します。

        説明

        エディションのアップグレードをロールバックするときに、ロールバックのエンドポイントを選択できます。

    • アップグレードのロールバック中にエンドポイントを切り替えない場合は、次の手順を実行します。

      1. [エンドポイントなしで切り替える (接続変更が必要)] を選択します。 この方法では、切り替え後に最も早い機会にアプリケーションのデータベースエンドポイントを変更する必要があります。

      2. [OK] をクリックします。 ロールバック後、ソースPolarDBクラスターは読み取り要求と書き込み要求の両方を処理し、ターゲットPolarDBクラスターは読み取り専用になります。 DTSは、データ複製方向も変更します。 増分データは、ソースPolarDBクラスターからターゲットPolarDBクラスターに同期されます。

      3. ページを最新の情報に更新します。 ソースPolarDBパラメーターの読み取り /書き込みステータスの値が読み取りと書き込みに変更された場合、アプリケーションのデータベースエンドポイントをできるだけ早く変更します。

(オプション) アップグレードのキャンセル

  1. PolarDB コンソールにログインします。

  2. ターゲットPolarDBクラスターを見つけ、クラスターIDをクリックします。

  3. [基本情報] ページの [PolarDBアップグレード] セクションで、[アップグレードのキャンセル] をクリックします。

  4. [アップグレードのキャンセル] ダイアログボックスで、[OK] をクリックします。

    image