このトピックでは、ApsaraDB RDS for MySQLインスタンスをPolarDBクラスターにアップグレードする方法について説明します。
準備
PolarDBのサービスにリンクされたロールが作成されているかどうかの確認 (論理移行にのみ必要)
移行評価を完了し、関連する問題が存在しないことを確認した場合は、このチェックをスキップできます。 移行評価の詳細については、「移行評価」をご参照ください。
論理移行 (DTSによるデータ同期) 方法を使用してアップグレードを実行する前に、PolarDBのサービスにリンクされたロールが作成されているかどうか、およびdata Transmission service (DTS) がAlibaba Cloudリソースへのアクセスを許可されているかどうかを確認します。 詳細については、「DTSによるAlibaba Cloudリソースへのアクセス許可」をご参照ください。 PolarDBのサービスにリンクされたロールが作成されているかどうかを確認するには、次の手順を実行します。
Resource Access Management (RAM) コンソーのロールページにログインします。
AliyunServiceRoleForPolarDBという名前のサービスにリンクされたロールが次の図に示すように、既にリストに存在するかどうかを確認します。
サービスにリンクされたロールがリストに存在する場合は、手順1: [RDSから移行] メソッドを選択してターゲットPolarDBクラスターを作成するの操作を実行します。 サービスにリンクされたロールがリストに存在しない場合は、ロールを作成する必要があります。
左上隅で、ロールの作成をクリックします。
ロールの作成パネルのロールタイプの選択ステップで、Alibaba Cloudサービスを選択し、次へをクリックします。
[ロールの設定] ステップで、ロールの種類をサービスにリンクされた役割に設定し、[サービスの選択] ドロップダウンリストからApsaraDB for PolarDBを選択します。
[OK] をクリックします。 ロールリストに戻り、ロールが作成されたことを確認します。
ソースApsaraDB RDSインスタンスから追加のシステムアカウントを削除する (論理移行にのみ必要)
移行評価を完了し、関連する問題が存在しないことを確認した場合は、このチェックをスキップできます。 移行評価の詳細については、「移行評価」をご参照ください。
システムアカウント構造の観点からApsaraDB RDS for MySQLとPolarDB間の互換性を確保し、移行中に移行先PolarDBクラスターのシステムアカウントが上書きされないようにするには、rootアカウントとaliyun_rootアカウントが移行元ApsaraDB for RDSインスタンスに同時に存在しないようにします。 移行プロセスを開始する前に、ソースApsaraDB for RDSインスタンスから追加のシステムアカウントを削除することを推奨します。
次の表に、ApsaraDB RDS for MySQLの各バージョンの正しいシステムアカウント名を示します。
ApsaraDB RDS for MySQLバージョン | 正しいシステムアカウント名 |
RDS MySQL 5.6 | root |
RDS MySQL 5.7 | aliyun_root |
RDS MySQL 8.0 | aliyun_root |
上記の表に記載されている各バージョンの対応するシステムアカウントとは別に、他のすべてのシステムアカウントを削除する必要があります。
追加のシステムアカウントがユーザーによって作成されたか、バージョンのアップグレード中にソースバージョンから継承された可能性があります。 一部のシナリオでは、特定のアカウントがコンソールに表示されない場合があります。
次の例は、ApsaraDB RDS for MySQL 5.6インスタンスから追加のシステムアカウントを削除する方法を示しています。
特権アカウントを使用してデータベースに接続します。
すべてのrootおよびaliyun_rootシステムアカウントを検索します。
select * from mysql.user where user in ('root', 'aliyun_root');
余分なシステムアカウントを削除します。 ApsaraDB RDS for MySQL 5.6の正しいシステムアカウント名はrootです。 したがって、aliyun_rootアカウントを削除する必要があります。
delete from mysql.user where user = 'aliyun_root' limit n;
(オプション) ホワイトリスト設定の確認
プライマリRDSインスタンスと読み取り専用RDSインスタンスのホワイトリスト設定が異なる場合、読み取り専用RDSインスタンスのホワイトリスト設定をプライマリRDSインスタンスのホワイトリスト設定にマージする必要があります。 これにより、読み取り専用RDSインスタンスのホワイトリスト設定がターゲットPolarDBクラスターに自動的に同期されます。
ステップ1: 移行先PolarDBクラスターを作成するためのRDSからの移行方法を選択
このステップでは、ソースApsaraDB RDS for MySQLインスタンスと同じデータを含むPolarDBクラスターを作成します。 増分データは、ソースApsaraDB RDS for MySQLインスタンスからPolarDBクラスターにリアルタイムで同期されます。
データを移行する前に、移行評価を完了することを推奨します。 移行評価の詳細については、「移行評価」をご参照ください。
DTSを使用してデータを移行する場合、DTSは最初の完全データ同期中にソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。 データ移行のスロットリングを有効にできます。 詳細については、「データ移行のスロットリングの有効化」をご参照ください。
PolarDBコンソールにログインします。 左側のナビゲーションページで、[クラスター] をクリックします。 [クラスター] ページで、クラスターの作成 をクリックし、[PolarDB] 購入ページに移動します。
課金方法をサブスクリプション、従量課金、またはサーバーレスに設定します。
サブスクリプション: クラスターを作成するときは、コンピュートノードの前払いが必要です。 ストレージは実際の1時間ごとの使用量に基づいて課金され、料金は1時間ごとにアカウントから差し引かれます。
従量課金: 前払いは必要ありません。 計算ノードと、データによって消費されるストレージの量に対して料金が請求されます。 これらの料金は、1時間ごとにアカウントから差し引かれます。
サーバーレス: 前払いは必要ありません。 計算ノード、ストレージスペース、PolarProxyなどのリソースは、実際の需要に基づいて動的にスケーリングされます。 これらのスケーリングされたリソースの実際の使用量に基づいて料金が請求されます。
パラメーターを設定します。 下表にパラメーターを示します。
説明次の表に記載されていないパラメーターについては、「クラスターの購入」をご参照ください。
パラメーター
説明
作成方法
[RDSから移行] を選択します。
説明移行および切り替え前は、PolarDBクラスターは読み取り専用モードです。 デフォルトでは、クラスターのバイナリログが有効になっています。
リージョン
ソースApsaraDB RDS for MySQLインスタンスがデプロイされているリージョン。
説明ターゲットPolarDBクラスターもこのリージョンにデプロイする必要があります。
RDSエンジンタイプ
ソースApsaraDB RDSインスタンスのデータベースエンジン。 このパラメーターのデフォルト値はMySQLで、変更できません。
RDSエンジンのバージョン
ソースApsaraDB RDS for MySQLインスタンスのデータベースエンジンバージョン。 有効な値: 5.6、5.7、および8.0
ソースRDSインスタンス
ソースApsaraDB RDS for MySQLインスタンス。 利用可能なソースApsaraDB RDS for MySQLインスタンスは、読み取り専用インスタンスを除外します。
データベースエンジン
ターゲットPolarDBクラスターのデータベースエンジンのバージョン。 ソースApsaraDB RDS for MySQLインスタンスと同じバージョンまたは別のバージョンを選択できます。
ノード仕様
クラスターのノード仕様。 ビジネス要件に基づいてノード仕様を指定できます。 ソースApsaraDB RDS for MySQLインスタンスの仕様と同じかそれ以上の仕様を選択することを推奨します。 PolarDBノード仕様の詳細については、「PolarDB For MySQL Enterprise Editionのコンピュートノード仕様」をご参照ください。
ストレージエンジン
PolarDBは、InnoDBおよびInnoDB & X-Engineのストレージエンジンをサポートしています。
InnoDB: InnoDBストレージエンジン。
InnoDB & X-Engine: InnoDBとX-Engineの両方をデプロイします。 このオプションを選択すると、X-Engineのメモリ使用率を指定できます。 詳細については、「X-Engine Edition」をご参照ください。
ページの右上隅で、クラスター設定を確認し、[期間] 、[数量] 、および [自動更新] パラメーターを設定します。 Durationパラメーターは、サブスクリプションクラスターでのみ使用できます。
利用規約を読んで選択します。 [今すぐ購入] をクリックします。
[購入] ページで注文と課金方法を確認し、[購入] をクリックします。
説明支払いが完了したら、10〜15分待ちます。 その後、[クラスター] ページで新しいクラスターを表示できます。
クラスター内の特定ノードの状態が “作成中” の場合、クラスターは作成中であり、使用できません。 クラスターは、状態が “実行中” の場合のみ使用できます。
クラスターがデプロイされているリージョンが選択されていることを確認してください。 別のリージョンを選択している場合、クラスターを表示できません。
クラスターの作成後、PolarDBコンソーにログインして、クラスターIDをクリックして、クラスターの概要ページに移動します。
概要 ページの RDS 移行 セクションで、ターゲットPolarDBクラスターの レプリケーションの遅延 値を確認します。 値が60秒未満の場合は、手順3: サービスの切り替えで操作を実行できます。
説明双方向DTSデータ同期タスクが進行中のインスタンスを移行またはアップグレードしないでください。 データの不整合が発生します。
クラスターが作成されると、ソースApsaraDB RDS for MySQLインスタンスからクラスターへのデータの移行が開始されます。 クラスター作成後30日以内に、手順5: 移行の完了で操作を実行する必要があります。 それ以外の場合、移行タスクは30日後に自動的に無効になります。
論理的な移行方法が使用されており、PolarDBクラスターの作成後にRDS移行セクションに表示されるステータス値がPrecheck Failedの場合は、エラーメッセージの指示に従って問題のトラブルシューティングを行います。
たとえば、ソースApsaraDB RDS For MySQLインスタンスでトリガーが作成された場合、事前チェックは失敗し、"the RDS instance has a trigger." というエラーメッセージが表示されます。 トリガーを削除し、[移行の続行] をクリックします。 または、[移行のキャンセル] をクリックして、DTSコンソールでデータ同期タスクを手動で作成することもできます。 詳細については、「トリガーを含むソースデータベースのデータ同期タスクの設定」をご参照ください。
このステップでは、[移行のキャンセル] をクリックします。 影響の詳細については、「FAQ」をご参照ください。
(オプション) 手順2: エンドポイントの追加
移行元のApsaraDB RDS for MySQLインスタンスから移行先のPolarDBクラスターにサービスを切り替えるときに、[エンドポイントで切り替える (接続変更不要)] オプションを選択できます。 このようにして、ソースApsaraDB RDS for MySQLインスタンスとターゲットPolarDBクラスター間のエンドポイントは、切り替え中に自動的に交換されます。 切り替え後、アプリケーションの接続設定を変更することなく、移行先のPolarDBクラスターに接続できます。 ソースApsaraDB RDS for MySQLインスタンスとターゲットPolarDBクラスターにエンドポイントがある場合にのみ、エンドポイントを交換できます。 デフォルトでは、ターゲットPolarDBクラスターにはプライベートプライマリエンドポイントとプライベートクラスターエンドポイントのみがあります。 ソースApsaraDB RDS for MySQLインスタンスにさらに多くのエンドポイントがある場合、エンドポイントを交換する場合は、ターゲットPolarDBクラスターに対応するエンドポイントを作成する必要があります。 PolarDBクラスターのエンドポイントを作成する方法については、「エンドポイントの管理」をご参照ください。 ApsaraDB RDS For MySQLインスタンスのエンドポイントを作成する方法については、「RDSインスタンスのエンドポイントの設定」をご参照ください。
切り替え前に必要なエンドポイントを作成しなかった場合は、切り替え後にエンドポイントを追加できます。 切り替え後にエンドポイントを追加するには、ターゲットPolarDBクラスターが実行状態になるまで待ちます。 エンドポイント設定とクラスターパラメーターを設定し、ビジネス要件に基づいて読み取り専用ノードを追加することもできます。
プライベートエンドポイントを交換するには、ソースApsaraDB RDS for MySQLインスタンスとターゲットPolarDBクラスターが同じ仮想プライベートクラウド (VPC) に属していることを確認します。 それ以外の場合は、切り替え後に元のサービスに接続できません。
ステップ3: サービスの切り替え
ターゲットPolarDBクラスターのレプリケーションの遅延値が60秒未満の場合、切り替え操作を実行できます。
PolarDBコンソールにログインします。
ターゲットクラスターを見つけて、クラスターIDをクリックします。
概要ページのRDS移行セクションで、ビジネスを切り替えるをクリックします。
説明ほとんどの場合、システムが切り替えを完了するには5分かかります。
切り替え後、ソースApsaraDB RDS for MySQLインスタンスとターゲットPolarDBクラスターの読み取り /書き込みステータスが交換されます。 ソースApsaraDB RDS for MySQLインスタンスの読み書きステータスが読み取り専用に変更され、PolarDBクラスターの読み書きステータスが読み書きに変更されました。 複製方向も変更される。 この場合、増分データはPolarDBクラスターからApsaraDB RDS for MySQLインスタンスに同期されます。
移行を続行するには、[OK] をクリックします。 アップグレード以外のDTSタスクを確認するには、[キャンセル] をクリックします。
[新しいデータベースにビジネスを切り替える] ダイアログボックスで、[エンドポイントで切り替える (接続変更は不要)] または [エンドポイントで切り替える (接続変更が必要)] を選択します。
切り替え中にソースApsaraDB RDS for MySQLインスタンスとターゲットPolarDBクラスターのエンドポイントを交換する場合は、次の手順を実行します。
[エンドポイントの切り替え (接続変更不要)] を選択します。 システムは、切り替え中にApsaraDB RDS for MySQLインスタンスとPolarDBクラスターの間でエンドポイントを交換します。 切り替え後、PolarDBクラスターに接続するためにアプリケーションの設定を変更する必要はありません。
重要[エンドポイントとの切り替え (接続変更は不要)] を選択する前に、必ず [エンドポイントとの切り替えの注意] をお読みください。
ソースApsaraDB RDS for MySQLインスタンスが既存のDTSタスクのソースまたは宛先である場合、アップグレード後にDTSタスクのソースまたは宛先クラスターを宛先PolarDBクラスターに変更する必要があります。 このようなタスクには、データ同期タスク、データ移行タスク、および変更追跡タスクが含まれます。 詳細については、「手順4: DTSタスクの切り替え」をご参照ください。
[OK] をクリックします。
切り替え中にソースApsaraDB RDS for MySQLインスタンスとターゲットPolarDBクラスターのエンドポイントを交換したくない場合は、次の手順を実行します。
[エンドポイントなしの切り替え (接続変更が必要)] を選択します。
[OK] をクリックします。
ページを最新の情報に更新します。 PolarDB読み取り /書き込みステータスが読み取りと書き込みに変更された場合、アプリケーションのデータベースエンドポイントをできるだけ早く変更します。
説明切り替えの完了後にデータエラーが発生した場合は、切り替えをロールバックできます。 これにより、切り替えが実行される前にデータベースとデータを元の状態に復元できます。 詳細については、「移行のロールバック」をご参照ください。 [移行のキャンセル] を選択して、移行前のステータスを復元できます。
(オプション) ステップ4: DTSタスクの切り替え
移行元クラスターがDTSタスクに関与している場合 (ワンクリック移行タスクではありません) 、DTSタスクの移行元データベースまたは移行先データベースを変更して、関連するビジネスをスムーズに切り替えることができます。 この機能の仕組みと使用方法の詳細については、「ModifyDtsJobEndpoint」をご参照ください。
スキーマ移行中および完全データ移行中は、DDL文を実行してデータベースまたはテーブルのスキーマを変更しないでください。 それ以外の場合、データ移行タスクは失敗します。
PolarDBコンソールにログインします。
ターゲットPolarDBクラスターを見つけて、クラスターIDをクリックします。
概要ページのRDS移行セクションで、Business DTS Task Databaseエンドポイントの切り替えをクリックします。
Business DTS Task Databaseエンドポイントの切り替えダイアログボックスで、ソースインスタンスDTSタスク (切り替え転送)または宛先インスタンスDTSタスク (切り替えロールバック)を選択します。
重要切り替え前に、ソースApsaraDB RDS for MySQLインスタンスとターゲットPolarDBクラスターのDTS同期タスクのステータスを確認します。 詳細については、「DescribeDtsJobDetail」をご参照ください。
[ソースインスタンスDTSタスク (転送切り替え)] を選択するには、次の手順を実行します。
ソースApsaraDB RDS for MySQLインスタンスのDTSタスクを選択します。
[切り替えを確定] をクリックします。
[宛先インスタンスDTSタスク (スイッチオーバーロールバック)] を選択するには、次の手順を実行します。
ターゲットPolarDBクラスターのDTSタスクを選択します。
[切り替えロールバックをコミット] をクリックします。
ソースインスタンスDTSタスク (転送切り替え) オプションを選択すると、ソースApsaraDB RDS for MySQLインスタンスからターゲットPolarDBクラスターにDTSタスクを切り替えることができます。 移行および切り替え後に操作を実行して、移行前のDTSタスクを完了できます。
[移行先インスタンスDTSタスク (切り替えロールバック)] オプションを選択すると、移行先PolarDBクラスターから移行元ApsaraDB RDS for MySQLインスタンスにDTSタスクを切り替えることができます。 切り替えをロールバックした後、移行をキャンセルする前に操作を実行できます。
ステップ5: 移行を完了する
手順1: RDSから移行する方法を選択してターゲットPolarDBクラスターを作成するセクションで説明されている操作を完了したら、30日以内に [移行の完了] をクリックする必要があります。
[移行の完了] をクリックして移行を完了する前に、データ移行が完了し、同期タスクが使用されなくなったことを確認します。 この操作により、物理移行を使用する場合は、ソースApsaraDB RDS for MySQLインスタンスからPolarDBクラスターへのデータレプリケーションが終了し、論理移行を使用する場合はデータ同期タスクが削除されます。
この操作により、PolarDBクラスターとApsaraDB RDS for MySQLインスタンス間のデータ同期が中断されます。 したがって、[移行のキャンセル] オプションは使用できなくなりました。 PolarDBクラスターを一定期間使用した後、この操作を実行し、クラスターが正常であることを確認することを推奨します。
PolarDBコンソールにログインします。
クラスターを見つけて、クラスターIDをクリックします。
概要 ページの RDS 移行 セクションで、完全な移行 をクリックします。 表示されるダイアログボックスで、OK をクリックします。
説明OK をクリックすると、システムは約2分以内にデータ同期を停止します。 このプロセス中の移行ステータスは 同期の無効化 です。 データ移行の完了まで待ちます。
[移行の完了] ダイアログボックスで、PolarDBクラスターのバイナリログ機能を無効にするかどうかを指定できます。 バイナリログ機能を無効にすると、書き込みパフォーマンスがわずかに向上します。 バイナリログ機能を無効にして新しい設定を有効にすると、PolarDBクラスターが自動的に再起動します。
ソースApsaraDB RDSインスタンスが不要になった場合は、インスタンスをリリースまたはサブスクリプション解除できます。 詳細については、このトピックの「 (オプションの) ApsaraDB RDSインスタンスのリリースまたはサブスクリプション解除」をご参照ください。
ソースApsaraDB RDSインスタンスで更新や設定変更などの操作を実行する場合は、最初に [移行の完了] をクリックします。
(オプション) ApsaraDB RDSインスタンスのリリースまたはサブスクリプション解除
データがソースApsaraDB RDSインスタンスからPolarDBクラスターに移行された後、サービスがクラスターで期待どおりに実行され、インスタンスが不要になった場合、インスタンスをリリースまたはサブスクリプション解除できます。
サブスクリプション課金方法を使用するApsaraDB RDSインスタンスのサブスクリプション解除が可能です。 詳細については、「サブスクリプションプライマリRDSインスタンスからのサブスクライブ解除」をご参照ください。
最も早い機会に従量課金方法を使用してRDSリソースを節約するApsaraDB RDSインスタンスをリリースします。 詳細については、「ApsaraDB RDS For MySQL インスタンスのリリースまたはサブスクリプション解除」をご参照ください。
(オプション) データ同期タスクの詳細を表示する (論理移行でのみ使用可能)
論理移行を使用したアップグレードのプロセス中に、移行エラー (事前チェックの失敗など) やその他の例外 (高いレプリケーション遅延など) が発生した場合は、データ同期タスクの詳細ページに移動して、タスクに関する特定の情報を表示できます。
PolarDBコンソールにログインします。
クラスターを見つけて、そのIDをクリックします。
概要ページのRDS 移行のセクションで、DTS データ同期タスクの名前をクリックしてDTSコンソールのデータ同期タスクリストに移動します。
データ同期タスクを見つけます。 事前チェックの失敗の詳細、データ同期タスクの詳細、およびデータ同期タスクログを表示できます。
移行プロセス中に、同期タスクの同期オブジェクトを調整する場合は、[オブジェクトの再選択] をクリックします。 たとえば、ソースApsaraDB RDS For MySQLインスタンスに、同期タスクに含める必要のある新しいデータベースがある場合があります。