PolarDB では、ApsaraDB RDS for MySQL インスタンスを 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 以前と完全な互換性があります。 バージョン 8.0.2 は、MySQL Community Edition 8.0.18 以前と完全な互換性があります。
-
PolarDB for MySQL 8.0.1 と 8.0.2 でサポートされている機能は異なります。 詳細については、「カーネルバージョンの機能比較」をご参照ください。
-
移行方法
移行方法として、物理移行 (物理レプリケーション) と 論理移行 (DTS データ同期) の 2 種類が利用できます。 システムは、RDS インスタンスの MySQL バージョン、エディション、ストレージタイプに基づいて方法を選択します。 この方法を変更することはできません。
|
項目 |
物理移行 (物理レプリケーション) |
論理移行 (DTS データ同期) |
|
対象インスタンス |
ローカル SSD を使用する ApsaraDB RDS for MySQL 5.6 および 5.7 高可用性エディションのインスタンス。 これらのインスタンスは、同じバージョンの PolarDB for MySQL クラスターにアップグレードできます。 説明
マイナーバージョンの要件:
|
物理移行 (物理レプリケーション) 方式を除き、他のタイプの RDS for MySQL インスタンスは、同じバージョンまたは異なるバージョンの PolarDB for MySQL クラスターにアップグレードできます。 説明
マイナーバージョンの制限はありません。 |
|
仕組み |
RDS インスタンスから完全なデータをコピーし、その後 PolarDB クラスターへの増分同期を維持します。 重要
増分同期中に作成された非 InnoDB テーブルは、InnoDB テーブルに変換されます。 |
DTS を使用して、RDS インスタンスから PolarDB クラスターへの完全なデータとスキーマの同期、およびそれに続く増分同期を行うタスクを作成します。 説明
|
|
DTS の要否 |
いいえ。 |
はい。 |
|
MySQL バージョンの移行 |
同一バージョンへの移行のみサポートされています。 |
同一またはより高いバージョンへの移行をサポートしています。 |
|
アップグレード期間の制限 |
移行は 30 日以内に完了する必要があります。 この期間を過ぎると、移行機能は無効になります。 |
移行は 30 日以内に完了する必要があります。 この期間を過ぎると、移行機能は無効になります。 |
|
クロスリージョン移行 |
サポートされていません。 |
サポートされていません。 |
|
増分同期 |
サポートされています。 |
サポートされています。 |
|
新しいデータベースの移行 |
サポートされています。 |
手動での同期が必要です。 説明
新しいデータベースを同期するには、DTS コンソール に移動して同期オブジェクトを変更してください。 新しいデータベースを正方向および逆方向の同期タスクの両方に追加してください。 |
|
スキーマ移行 |
サポートされています。 |
データベース、テーブル、ビュー、ストアドプロシージャ、および関数のスキーマのみ移行できます。 |
メリット
-
エンドポイントでの切り替え:元のデータベースエンドポイントを保持できるため、アプリケーションは接続設定を変更することなく PolarDB クラスターに切り替えることができます。
-
ワンクリックアップグレードプロセスにより、ゼロデータ損失が保証されます。
-
増分移行に対応しています。
-
オンラインホットマイグレーションに対応しています。スイッチオーバー操作中、サービスが中断されるのは 10 分未満の一度だけです。
-
移行のロールバックに対応しています。移行が失敗した場合、またはビジネス要件が変更された場合、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 VIEW -
CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、CREATE VIEW -
DROP INDEX、DROP TABLE -
RENAME TABLE -
TRUNCATE 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 インスタンスに、このアップグレードプロセスでの論理的な移行に使用されるものとは別のデータ伝送サービス (DTS) リンクが関連付けられている場合、この機能を使用できます。 この機能を使用すると、DTS 同期タスクまたは移行タスクのソースインスタンスまたは宛先インスタンスを変更して、関連サービスをスムーズに切り替えることができます。
-
データの移行が完了し、PolarDB クラスターでサービスが安定して実行されたら、アップグレードプロセスを終了できます。データ同期が不要になった場合は、完全な移行 をクリックします。
-
サービスが PolarDB クラスターで安定稼働し、RDS インスタンスが不要になった場合は、RDS インスタンスを解約または解放します。
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 によって返される DelayedSeconds パラメーターが 60 秒未満の場合、ビジネスのスイッチオーバーを実行できます。RDS インスタンスと PolarDB クラスターの読み取り/書き込みステータスを入れ替え (RDS インスタンスを 読み取り専用に、PolarDB クラスターを 読み取り/書き込みに設定)、データレプリケーションの方向を変更します (PolarDB クラスターから RDS インスタンスへ新しいデータを同期)。
重要-
エンドポイントでのスイッチオーバーを使用する場合は、エンドポイントでのスイッチオーバーに関する注意事項を注意深くお読みください。スイッチオーバープロセス中、サービスが 1〜5 分間中断される可能性があります。
-
移行のスイッチオーバーが完了した後、データの不整合やその他の問題が見つかった場合は、ModifyDBClusterMigration を呼び出して移行をロールバックし、アップグレード前の状態に速やかに復元できます。その後、CloseDBClusterMigration を呼び出して移行をキャンセルし、スイッチオーバー前の状態に復元することもできます。
-
-
(オプション) ModifyDtsJobEndpoint - DTS ジョブのソースまたは宛先データベースインスタンスの変更
お使いの RDS インスタンスに DTS リンクが関連付けられている場合 (ワンクリックアップグレードプロセスでの論理移行用の DTS データ同期リンクは除く)、DTS 同期または移行タスクのソースまたは宛先データベースインスタンスを変更 (置換) することで、関連サービスをスムーズに切り替えることができます。
-
CloseDBClusterMigration - 移行の完了
ビジネスデータの移行が完了し、サービスが PolarDB クラスターで安定して実行されており、データ同期が不要になった場合、ワンクリックアップグレードプロセスを終了できます。
-
サービスが PolarDB クラスターで安定稼働し、RDS インスタンスが不要になった場合は、RDS インスタンスを解約または解放します。
3. バックアップポリシーの調整
RDS と PolarDB には異なるバックアップポリシーがあります。 移行が完了した後、必要に応じてコンソールでバックアップポリシーを変更できます。