PolarDB では、ApsaraDB RDS for MySQL (RDS) インスタンスをワンクリックで PolarDB for MySQL クラスターにアップグレードできます。アップグレードプロセスでは、PolarDB がソース RDS インスタンスから、アカウント、データベース、IP ホワイトリスト、および必要なパラメータを自動的に同期します。また、元のデータベースエンドポイントを保持することも選択できます。これにより、アプリケーションは接続設定を変更することなく PolarDB クラスターに移行できます。このプロセスにより、移行の複雑さが大幅に軽減され、ビジネスのスムーズな移行が可能になります。
RDS インスタンスは、同一または上位バージョンの PolarDB クラスターにアップグレードできます。例:
ApsaraDB RDS for MySQL 5.6 インスタンスは、PolarDB for MySQL 5.6、5.7、8.0.1、または 8.0.2 クラスターにアップグレードできます。
ApsaraDB RDS for MySQL 5.7 インスタンスは、PolarDB for MySQL 5.7、8.0.1、または 8.0.2 クラスターにアップグレードできます。
ApsaraDB RDS for MySQL 8.0 インスタンスは、PolarDB for MySQL 8.0.1 または 8.0.2 クラスターにアップグレードできます。
説明PolarDB for MySQL 8.0.1 は、MySQL Community Edition 8.0.13 以前と完全に互換性があります。PolarDB for MySQL 8.0.2 は、MySQL Community Edition 8.0.18 以前と完全に互換性があります。
PolarDB for MySQL 8.0.1 と 8.0.2 は、サポートする機能が異なります。詳細については、「カーネルバージョンの機能比較」をご参照ください。
移行方法
ワンクリックアップグレードプロセスでは、物理移行 (物理レプリケーション) と 論理移行 (DTS データ同期) の 2 つの移行方法を利用できます。システムは、RDS インスタンスの MySQL バージョン、エディション、ストレージタイプに基づいて適切な方法を自動的に選択します。選択した方法を手動で変更することはできません。違いは次のとおりです:
項目 | 物理移行 (物理レプリケーション) | 論理移行 (DTS データ同期) |
対象インスタンス | ApsaraDB RDS for MySQL 5.6 および 5.7 の高可用性版でローカル SSD を使用するインスタンスは、同じバージョンの PolarDB for MySQL クラスターにアップグレードできます。 説明 マイナーバージョンの要件:
| 物理移行 (物理レプリケーション) の対象となるインスタンスを除き、他のタイプの RDS インスタンスは、同じまたは上位バージョンの PolarDB for MySQL クラスターにアップグレードできます。 説明 マイナーバージョンの制限はありません。 |
仕組み | RDS インスタンスから全量データをコピーし、その後 PolarDB クラスターへの増分同期を維持します。 重要 増分同期中に作成された非 InnoDB テーブルは、InnoDB テーブルに変換されます。 | DTS を使用して、RDS インスタンスから PolarDB クラスターへ全量データとスキーマを同期し、続いて増分同期を行うタスクを作成します。 説明
|
DTS の要否 | 不要。 | 必要。 |
MySQL バージョンの移行 | 同一バージョンへの移行のみサポートされます。 | 同一または上位バージョンへの移行をサポートします。 |
アップグレード期間の制限 | 30 日以内に移行を完了する必要があります。この期間を過ぎると、移行機能は無効になります。 | 30 日以内に移行を完了する必要があります。この期間を過ぎると、移行機能は無効になります。 |
クロスリージョン移行 | サポートされていません。 | サポートされていません。 |
増分同期 | サポートされています。 | サポートされています。 |
新しいデータベースの移行 | サポートされています。 | サポートされていません。 説明 新しいデータベースを同期するには、DTS コンソールに移動して同期オブジェクトを変更してください。新しいデータベースを、正方向および逆方向同期タスクの両方に追加してください。 |
スキーマ移行 | サポートされています。 | データベース、テーブル、ビュー、ストアドプロシージャ、および関数のスキーマのみ移行できます。 |
メリット
エンドポイント切り替え:元のデータベースエンドポイントを保持できるため、アプリケーションは接続構成を変更することなく PolarDB クラスターに切り替えることができます。
ワンクリックアップグレードプロセスによるゼロデータ損失。
増分移行をサポートします。
オンラインホットマイグレーションをサポートします。スイッチオーバー操作中、サービスの中断は 10 分未満で 1 回のみです。
移行ロールバックをサポートします。移行が失敗した場合、またはビジネス要件が変更された場合は、10 分以内に移行をロールバックできます。
RDS インスタンスへの影響
ワンクリックアップグレードでは、RDS インスタンスで実行できる一部の操作が制限されます。また、短時間の中断や負荷の増加が発生する可能性があります。影響は次のとおりです:
ワンクリックアップグレードの実行中は、インスタンスパラメーターを変更できません。
ワンクリックアップグレードの実行中は、RDS インスタンスのサブスクリプションの解約、リリース、またはゾーンの変更はできません。
スイッチオーバー操作時に アドレス切り替えあり を選択した場合、サービスが 1 ~ 5 分間中断される可能性があります。アドレス切り替えなし を選択した場合は、速やかにアプリケーションの接続設定を更新し、PolarDB クラスターに接続する必要があります。
移行方法に基づき、論理移行 (DTS データ同期) を使用してワンクリックアップグレードを実行する場合は、次の影響があります:
RDS インスタンスにトリガーが存在する場合は、移行を開始する前に削除する必要があります。削除しない場合、移行が中断されます。
全量データ初期化中は、データベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。これにより、データ同期タスクが失敗する可能性があります。
全量データ初期化では、RDS インスタンスと PolarDB クラスターの両方で、CPU や IOPS などの読み取りおよび書き込みリソースを消費します。これにより、RDS インスタンスの負荷が増加する可能性があります。
注意事項
前提条件
お使いの RDS インスタンスは、次の条件を満たす必要があります。
インスタンス仕様:
MySQL バージョン
Basic Edition
High-availability Edition
Cluster Edition
5.6
-
ローカル SSD
-
5.7
クラウドディスク
ローカル SSD、クラウドディスク
クラウドディスク
8.0
クラウドディスク
ローカル SSD、クラウドディスク
クラウドディスク
データテーブルのストレージエンジンタイプは InnoDB または X-Engine である必要があります。
お使いのインスタンスが物理移行 (物理レプリケーション) の要件を満たしていない場合、アップグレード方法として論理移行 (DTS データ同期) が自動的に選択されます。この場合、ワンクリックアップグレードの失敗を防ぐために、RDS インスタンスは以下の条件も満たす必要があります。
RDS インスタンスが、既存の DTS 双方向同期タスクに含まれていない必要があります。この場合にアップグレードを続行すると、データの不整合が発生する可能性があります。
RDS インスタンスにトリガーが存在する場合は、移行を開始する前に削除する必要があります。削除しない場合、移行が中断されます。
RDS インスタンスでは、デフォルトでバイナリロギングが有効になっています。binlog_row_image パラメーターが full に設定されていることを確認してください。そうしないと、事前チェック中にエラーが報告され、データ同期タスクを開始できません。
DTS では、RDS インスタンスの バイナリログ を少なくとも 7 日間保持する必要があります。この要件を満たさない場合、DTS がバイナリログの取得に失敗し、タスクが失敗したり、極端な場合にはデータの不整合や損失につながる可能性があります。DTS の要件より短いバイナリログ保持期間を設定したことによって生じた問題は、DTS サービスレベル契約 (SLA) の対象外です。
インスタンスが 物理移行 (物理レプリケーション) の要件を満たしていないものの、この方法を使用してワンクリックアップグレードを実行したい場合は、次の操作を実行して RDS インスタンスが 物理移行 (物理レプリケーション) の要件を満たすようにしてから、ワンクリックアップグレードを実行できます:
ApsaraDB RDS for MySQL 5.6 の高可用性版の場合、マイナーバージョンは 20190815 以降である必要があります。
ApsaraDB RDS for MySQL 5.7 の高可用性版の場合、マイナーバージョンは 20200331 以降である必要があります。
制限事項
インスタンスが物理移行 (物理レプリケーション) の要件を満たしていない場合、システムは自動的に論理移行 (DTS データ同期) を選択してアップグレードを実行します。この移行方法には、次のような使用上の制限があります。
-
同期の実行中は、DTS を介して以外はターゲットデータベースにデータを書き込まないでください。そうしないと、ソースデータベースとターゲットデータベースの間でデータの不整合が発生する可能性があります。たとえば、他のデータがターゲットデータベースに書き込まれている間に DMS を使用してオンライン DDL 操作を実行すると、データ損失が発生する可能性があります。
DTS は、ターゲットデータベースに同期する際、デフォルトで外部キー制約を無効にします。そのため、ソースデータベースでのカスケード操作や削除は、ターゲットデータベースに同期されません。
増分同期でサポートされる SQL ステートメント:
操作タイプ
SQL ステートメント
DML
INSERT、UPDATE、DELETEDDL
ALTER TABLE、ALTER VIEWCREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、CREATE VIEWDROP INDEX、DROP TABLERENAME TABLETRUNCATE TABLE
考慮事項
移行フェーズ | 説明 |
移行前 |
|
移行中 |
|
課金
論理移行 (DTS データ同期)
論理移行 (DTS データ同期) 方式の場合、DTS データ同期タスクとターゲット PolarDB クラスターに対して課金されます。
DTS データ同期タスク:
アップグレード中、システムは RDS インスタンスと PolarDB クラスター間に DTS データ同期タスクを自動的に作成します。詳細については、「DTS 課金概要」をご参照ください。
ターゲット PolarDB クラスター:
課金方法が従量課金の場合、アップグレード中はクラスターは課金されません。次のいずれかの操作後に、標準の従量課金が開始されます。
移行が完了した場合 (移行の完了操作を含む)。
説明RDS インスタンスと PolarDB クラスター間の DTS データ同期リンクが終了すると、移行が完了します。
移行は 30 日以内に完了する必要があります。この期間を過ぎると、移行機能は無効になり、RDS インスタンスと PolarDB クラスターの両方が読み取り/書き込み ステータスに戻り、レプリケーションリンクが切断されます。
移行が停止された場合 (事前チェック失敗時の移行の中止操作および移行のキャンセル操作を含む)。
この時点で、ターゲット PolarDB クラスターは作成されていますが、アップグレードプロセスは停止しています。ターゲット PolarDB クラスターが不要になった場合は、速やかにリリース してください。
課金方法がサーバーレスの場合、クラスターのステータスが[実行中] に変わると課金が開始されます。
課金方法がサブスクリプションの場合、クラスターの作成時に対応する料金を支払う必要があります。
物理移行 (物理レプリケーション)
物理移行 (物理レプリケーション) 方式の場合、アップグレードプロセスに追加料金はかかりません。ターゲット PolarDB クラスターに対してのみ課金されます。
課金方法が従量課金の場合、アップグレード中はクラスターは課金されません。次のいずれかの操作後に、標準の従量課金が開始されます。
移行が完了した場合 (移行の完了操作を含む)。
説明RDS インスタンスと PolarDB クラスター間のレプリケーションリンクが終了すると、移行が完了します。
移行は 30 日以内に完了する必要があります。この期間を過ぎると、移行機能は無効になり、RDS インスタンスと PolarDB クラスターの両方が読み取り/書き込み ステータスに戻り、レプリケーションリンクが切断されます。
移行が停止された場合 (事前チェック失敗時の移行の中止操作および移行のキャンセル操作を含む)。
この時点で、ターゲット PolarDB クラスターは作成されていますが、アップグレードプロセスは停止しています。ターゲット PolarDB クラスターが不要になった場合は、速やかにリリース してください。
課金方法がサーバーレスの場合、クラスターのステータスが[実行中] に変わると課金が開始されます。
課金方法がサブスクリプションの場合、クラスターの作成時に対応する料金を支払う必要があります。
使用方法
1. 移行評価
スムーズな移行を保証するために、PolarDB は 移行評価機能を提供します。移行を開始する前に、この機能を使用して、インスタンスのステータス、移行タスクの依存関係、インスタンスの属性情報などの前提条件を事前にチェックできます。これにより、潜在的な問題を事前に特定して対処でき、ワンクリックアップグレードプロセス中の処理コストとリソースコストを削減できます。
2. アップグレード手順
コンソール操作
このセクションでは、ワンクリックアップグレードプロセスについて概説します。詳細な手順については、「アップグレード手順」をご参照ください。
お使いの RDS インスタンスに読み取り専用インスタンスがあり、その IP アドレスホワイトリストがプライマリインスタンスのホワイトリストと異なる場合は、読み取り専用インスタンスのホワイトリストをプライマリインスタンスのホワイトリストにマージします。これにより、ホワイトリストが PolarDB クラスターに自動的に同期されるようになります。
説明PolarDB クラスターの IP アドレスホワイトリストはクラスター全体に適用されます。個々のノードに個別のホワイトリストを設定することはできません。したがって、移行が完了したら、PolarDB クラスターのIP アドレスホワイトリストとデータベースアカウントの権限を確認してください。
PolarDB クラスターの購入ページに移動します。作成方法を RDS から移行 に設定し、ソース RDS インスタンスのバージョンとインスタンスを指定して PolarDB クラスターを購入します。購入が完了すると、システムは初期化、事前チェック、完全データ同期を実行します。このプロセス中、クラスターのステータスは 作成中 です。お待ちください。
説明論理移行 (DTS データ同期) 中に、[事前確認に失敗しました] などのエラーが発生することがあります。[エラーメッセージ] に基づいてエラーを解決してください。エラーを解決したら、続行 をクリックしてワンクリックアップグレードプロセスを再開してください。エラーの解決がオンラインサービスに影響を与える場合は、キャンセル をクリックしてアップグレードプロセスを停止できます。
エンドポイント切り替え機能は、元のデータベースエンドポイントを保持します。これにより、アプリケーションは接続設定を変更することなく PolarDB クラスターに切り替えることができます。ただし、RDS インスタンスと PolarDB クラスターの両方に存在するエンドポイントのみを切り替えることができます。
必要に応じて、必要なデータベースエンドポイントを PolarDB クラスターに追加してください。
データベースエンドポイントの SSL 暗号化ステータスを確認してください。RDS インスタンスと PolarDB クラスターのエンドポイントの SSL ステータスは同じである必要があります。
PolarDB クラスターの レプリケーションの遅延 が 60 秒未満の場合、サービスを切り替えることができます。切り替え をクリックしてください。この操作により、RDS インスタンスと PolarDB クラスターの読み取り/書き込みステータスが入れ替わります。RDS インスタンスは 読み取り専用 になり、PolarDB クラスターは 読み取り/書き込み になります。データレプリケーションの方向も逆になります。PolarDB クラスターからの新しいデータは RDS インスタンスに同期されます。
重要エンドポイント切り替えを使用する場合は、エンドポイント切り替えに関する注意をよくお読みください。スイッチオーバープロセス中にサービスが 1〜5 分間中断される可能性があることに注意してください。
スイッチオーバー後、データ不整合やその他の問題が見つかった場合は、移行のロールバックを実行して、アップグレード前の状態にすばやく戻すことができます。その後、移行のキャンセルを実行して、スイッチオーバー前の状態に戻すことができます。
(オプション) ソースインスタンスの DTS タスクの切り替え
RDS インスタンスに、このアップグレードプロセスの論理移行で使用されるリンクとは別に、関連付けられた Data Transmission Service (DTS) リンクがある場合、この機能を使用できます。この機能を使用すると、DTS 同期または移行タスクのソースまたはターゲットインスタンスを変更して、関連サービスをスムーズに切り替えることができます。
データが移行され、サービスが PolarDB クラスター上で安定して実行された後、データ同期が不要になった場合は、完全な移行 をクリックしてください。
(オプション) RDS インスタンスのサブスクリプション解除または解放
サービスが PolarDB クラスターで安定して実行されており、RDS インスタンスが不要になった場合は、RDS インスタンスのサブスクリプションを解除するか、解放してください。
API 操作
このセクションでは、ワンクリックアップグレードプロセスについて概説します。詳細な手順については、「アップグレード手順」および関連する API ドキュメントをご参照ください。
お使いの RDS インスタンスに読み取り専用インスタンスがあり、その IP アドレスホワイトリストがプライマリインスタンスのホワイトリストと異なる場合は、読み取り専用インスタンスのホワイトリストをプライマリインスタンスのホワイトリストにマージします。これにより、ホワイトリストが PolarDB クラスターに自動的に同期されるようになります。
説明PolarDB クラスターの IP アドレスホワイトリストはクラスター全体に適用されます。個々のノードに個別のホワイトリストを設定することはできません。したがって、移行が完了したら、PolarDB クラスターのIP アドレスホワイトリストとデータベースアカウントの権限を確認してください。
CreateDBCluster - PolarDB クラスターの作成
Create Cluster API を呼び出すとき、SourceResourceId パラメーターをソース RDS インスタンスが配置されているリージョンに、CreationOption パラメーターを MigrationFromRDS に、SourceResourceId パラメーターをソース RDS インスタンスの ID に設定します。呼び出しが完了すると、システムは初期化、事前チェック、完全なデータ同期などの操作を実行します。このプロセス中、クラスターのステータスは 作成中 になります。お待ちください。
返された MigrationStatus パラメーターが RDS2POLARDB_SYNCING の場合、システムが完全データ同期を完了し、現在増分同期を実行していることを示します。
説明論理移行 (DTS データ同期) 中に、[事前確認に失敗しました] などのエラーが発生することがあります。この場合、MigrationStatus パラメーターは PRE_CHECK_FAIL です。[エラーメッセージ] に基づいてエラーを解決する必要があります。
ModifyDBClusterMigration - 移行タスクのカットオーバー
DescribeDBClusterMigration API によって返される DelayedSeconds パラメーターが 60 秒未満の場合、サービスの切り替えを実行できます。RDS インスタンスと PolarDB クラスターの読み取り/書き込みステータスを入れ替え (RDS インスタンスを 読み取り専用 に、PolarDB クラスターを 読み取り/書き込み に設定)、データレプリケーションの方向を変更します (PolarDB クラスターからの新しいデータを RDS インスタンスに同期します)。
重要エンドポイント切り替えを使用する場合は、エンドポイント切り替えに関する注意をよくお読みください。スイッチオーバープロセス中にサービスが 1〜5 分間中断される可能性があることに注意してください。
移行のスイッチオーバーが完了した後、データ不整合やその他の問題が見つかった場合は、ModifyDBClusterMigration API を呼び出して移行タスクをロールバックし、アップグレード前の状態に速やかに復元できます。その後、CloseDBClusterMigration API を呼び出して移行をキャンセルし、スイッチオーバー前の状態に復元することもできます。
(オプション) ModifyDtsJobEndpoint - DTS ジョブのソースまたはターゲットデータベースインスタンスの変更
お使いの RDS インスタンスに、ワンクリックアップグレードプロセスの論理移行で使用される DTS データ同期リンクとは別に、関連付けられた DTS リンクがある場合、DTS 同期または移行タスクのソースまたはターゲットデータベースインスタンスを変更 (置換) して、関連サービスをスムーズに切り替えることができます。
CloseDBClusterMigration - 移行の完了
ビジネスデータの移行が完了し、サービスが PolarDB クラスターで安定して実行された後、データ同期が不要になった場合は、ワンクリックアップグレードプロセスを終了できます。
(オプション) RDS インスタンスのサブスクリプション解除または解放
サービスが PolarDB クラスターで安定して実行されており、RDS インスタンスが不要になった場合は、RDS インスタンスのサブスクリプションを解除するか、解放してください。
3. バックアップポリシーの調整
RDS と PolarDB は バックアップポリシーが異なります。移行が完了したら、必要に応じてコンソールでバックアップポリシーを変更できます。