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 以前と完全な互換性があります。バージョン 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 クラスターにアップグレードできます。 説明
マイナーバージョンの要件:
|
物理移行 (物理レプリケーション) の対象を除き、他のタイプの ApsaraDB RDS for MySQL インスタンスは、同一または上位バージョンの 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 日間保持する必要があります。保持期間が 7 日未満の場合、DTS がバイナリログを取得できず、タスクが失敗する可能性があります。極端な場合、データの不整合または損失につながることがあります。DTS の要件より短いバイナリログ保持期間の設定に起因する問題は、DTS のサービスレベルアグリーメント (SLA) の対象外です。
-
-
インスタンスが 物理移行 (物理レプリケーション) の要件を満たしていないものの、この方法でワンクリックアップグレードを実行する場合は、次の操作を実行して RDS インスタンスが 物理移行 (物理レプリケーション) の要件を満たすようにしてから、ワンクリックアップグレードを実行できます。
-
ApsaraDB RDS for MySQL 5.6 高可用性エディションの場合、マイナーバージョンは 20190815 以降である必要があります。
-
ApsaraDB RDS for MySQL 5.7 高可用性エディションの場合、マイナーバージョンは 20200331 以降である必要があります。
説明-
ページに移動します。設定情報 セクションで、RDS インスタンスの [マイナーバージョン情報] を確認します。バージョンが要件を満たさない場合は、マイナーバージョンを 最新バージョンにアップグレードできます。
-
物理移行 (物理レプリケーション) の場合、バイナリログ の保持期間を 24 時間以上に設定してください。
-
制限事項
インスタンスが 物理移行 (物理レプリケーション) の要件を満たしていない場合、システムはアップグレードに 論理移行 (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 クラスター間の同期リンクが終了すると、移行は完了します。
-
移行は 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 操作
このセクションでは、ワンクリックアップグレードプロセスの概要を説明します。詳細については、「アップグレード手順」をご参照ください。
-
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 クラスターでサービスが安定して実行されている場合、データ同期が不要になったときにワンクリックアップグレードプロセスを終了できます。
-
(オプション) RDS インスタンスのサブスクリプションの解除またはリリース
PolarDB クラスターでサービスが安定して実行されており、RDS インスタンスが不要になった場合は、RDS インスタンスのサブスクリプションを解除するか、リリースします。
3. バックアップポリシーの調整
RDS と PolarDB には 異なるバックアップポリシーがあります。移行完了後、必要に応じてコンソールで バックアップポリシーを変更できます。