このトピックでは、ApsaraDB RDS for MySQL Enterprise EditionインスタンスからPolarDB-X 2.0 Standard Editionインスタンスへのデータの移行の概要を説明します。
概要
ApsaraDB RDS for MySQL Enterprise EditionインスタンスからPolarDB-X 2.0 Standard Editionインスタンスにデータを移行するには、移行先のPolarDB-X 2.0 Standard Editionインスタンスを作成し、移行元のApsaraDB RDS for MySQL Enterprise Editionインスタンスから移行先のPolarDB-X 2.0 Standard Editionインスタンスにデータを同期します。 移行後、移行先のPolarDB-X 2.0 Standard Editionインスタンスには、移行元のApsaraDB RDS for MySQL Enterprise Editionインスタンスと同じアカウント情報、データベース、IPアドレスホワイトリスト、および必要なパラメーター設定が含まれます。
ApsaraDB RDS for MySQL Enterprise EditionインスタンスからPolarDB-X 2.0 Standard Editionインスタンスへのデータ移行は、Data Transmission Service (DTS) データ同期タスクを使用して実装されます。
DTS経由でデータを同期するには、DTSデータ同期タスクを作成して、ソースApsaraDB RDS for MySQL Enterprise EditionインスタンスのデータベースおよびテーブルスキーマとフルデータをターゲットPolarDB-X 2.0 Standard Editionインスタンスに同期し、増分データの同期を続行します。 詳細については、次をご参照ください: DTSとは何ですか?
ApsaraDB RDS for MySQL Enterprise Editionインスタンスからデータを移行するには、インスタンスがデータベースエンジンおよびストレージタイプの次の要件を満たしていることを確認します。
データベースエンジンのバージョン | ストレージタイプ |
MySQL 5.6、MySQL 5.7、およびMySQL 8.0 | ローカルSSD |
メリット
移行機能には、次の利点があります。
エンドポイントは、ソースインスタンスとターゲットインスタンスの間で切り替えることができます。 これにより、アプリケーションの接続設定を変更することなく、移行元インスタンスから移行先PolarDB-X 2.0 Standard Editionインスタンスにビジネスを切り替えることができます。
データ移行機能は無料です。
移行中にデータが失われることはありません。
増分データ移行をサポートしています。
ホット移行がサポートされています。 データ移行中に一時的な接続が1つだけ発生します。 移行元のApsaraDB RDS for MySQL Enterprise Editionインスタンスから移行先のPolarDB-X 2.0 Standard Editionインスタンスにビジネスを切り替えると、一時的な接続が発生します。
ソースインスタンスとターゲットインスタンスの間でエンドポイントを手動で切り替えることができます。 エンドポイントの切り替えプロセス中に書き込み操作を実行しないでください。 ビジネス要件に基づいて切り替え期間を制御できます。 ほとんどの場合、切り替えは10分以内に完了します。
移行が失敗した場合は、移行をロールバックできます。 ロールバックは10分以内に完了することができます。
前提条件
ソースApsaraDB RDS for MySQL Enterprise Editionインスタンスは、InnoDBまたはX-Engineストレージエンジンを使用しています。
ソースApsaraDB RDS for MySQL Enterprise Editionインスタンスでデータベースプロキシ (セーフモード) が有効になっている場合、特権アカウントが作成されます。 特権アカウントの作成方法については、「アカウントの作成」をご参照ください。 ソースインスタンスを高パフォーマンスモードに切り替えることもできます。 詳細については、「 [製品の変更 /機能の変更] ApsaraDB RDSインスタンスのネットワーク接続モードがアップグレードされている」をご参照ください。
制限事項
ApsaraDB RDS for MySQL Enterprise Editionインスタンスから、同じまたはそれ以上のデータベースエンジンバージョンを実行するPolarDB-X 2.0 Standard Editionインスタンスにのみデータを移行できます。
IPv6アドレスは、エンドポイントとの切り替えではサポートされません。
DTSデータ同期タスクを使用してソースインスタンスからターゲットインスタンスにデータを同期する場合、次の制限事項に注意してください。
クロスリージョンデータ同期はサポートされていません。
移行中は、ソースApsaraDB RDS for MySQL Enterprise Editionインスタンスのパラメーターを変更しないでください。
移行できるのは、データベース、テーブル、ビュー、ストアドプロシージャ、および関数のみです。
説明ソースApsaraDB RDS for MySQL Enterprise Editionインスタンスのアカウント情報、IPアドレスホワイトリスト、および必須パラメーターは、を使用する代わりにPolarDB-Xコンソールに移行されます。 DTSを実行します。
次の表に、ソースApsaraDB RDS for MySQL Enterprise Editionインスタンスの制限を示します。
カテゴリ
説明
ソースデータベースの制限
同期するテーブルには、PRIMARY KEYまたはUNIQUE制約が必要であり、すべてのフィールドが一意である必要があります。 そうでない場合、宛先データベースは重複するデータレコードを含み得る。
同期するオブジェクトとしてテーブルを選択し、ターゲットデータベースのテーブルを編集する必要がある場合 (テーブルまたは列の名前の変更など) 、1つのデータ同期タスクで最大1,000のテーブルを同期できます。 タスクを実行して1,000を超えるテーブルを同期すると、エラーが返されます。 この場合、テーブルを分割して複数のタスクを構成してテーブルを同期するか、データベース全体を同期するようにタスクを構成することをお勧めします。
バイナリログの次の要件を満たす必要があります。
バイナリログ機能が有効になり、
binlog_row_imageパラメーターがfullに設定されています。 バイナリログ機能を有効にする方法の詳細については、「インスタンスパラメーターの変更」をご参照ください。 そうしないと、事前チェック中にエラーが報告され、データ同期タスクを開始できません。増分データ同期タスクの場合、ソースデータベースのバイナリログは少なくとも24時間保持する必要があります。 完全および増分データ同期タスクの場合、ソースデータベースのバイナリログは少なくとも7日間保持する必要があります。 完全なデータ同期が完了したら、保持期間を24時間以上に設定できます。 そうしないと、DTSはバイナリログの取得に失敗し、タスクが失敗する可能性があります。 極端な状況では、データの不一致や損失が発生する可能性があります。 バイナリログの保持期間が、指定された要件に基づいて設定されていることを確認します。 要件に準拠していないために発生する問題は、DTS SLA保証の対象外です。 ソースApsaraDB RDS For MySQL Enterprise Editionインスタンスのバイナリログを管理する方法の詳細については、「バイナリログファイルを管理する」をご参照ください。
次の表に、SQL文の制限を示します。
操作タイプ
SQL文
DML
INSERT、UPDATE、およびDELETE
DDL
ALTER TABLEおよびALTER VIEW
CREATE FUNCTION、CREATE INDEX、CREATE PROCEDURE、CREATE TABLE、およびCREATE VIEW
DROP INDEXとDROP TABLE
RENAMEテーブル
TRUNCATEテーブル
次の表では、その他の制限について説明します。
カテゴリ
説明
その他の制限
データを同期する前に、ソースデータベースとターゲットデータベースのパフォーマンスに対するデータ同期の影響を評価します。 オフピーク時にデータを同期することを推奨します。 最初の完全データ同期中、DTSはソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これにより、データベースサーバーの負荷が増加する可能性があります。
完全データ同期中、同時INSERT操作により、ターゲットデータベースのテーブルが断片化されます。 完全なデータ同期が完了すると、ターゲットデータベースで使用されるテーブルスペースのサイズは、ソースデータベースで使用されるテーブルスペースのサイズよりも大きくなります。
データ同期中に、他のソースからのデータがターゲットデータベースに書き込まれると、ソースデータベースとターゲットデータベース間でデータの不整合が発生します。 たとえば、データ同期中にData Management (DMS) を使用してオンラインDDLステートメントを実行すると、ターゲットデータベースでデータが失われる可能性があります。
デフォルトでは、DTSはデータ同期タスクのターゲットデータベースのFOREIGN KEY制約を無効にします。 この場合、ソースデータベースのカスケード操作や削除操作などの特定の操作は、ターゲットデータベースと同期されません。
使用上の注意
ソースApsaraDB RDS for MySQL Enterprise EditionインスタンスとターゲットPolarDB-X 2.0 Standard Editionインスタンスのエンドポイントは、同じSSL設定である必要があります。
[Switchover with Endpoints] オプションを選択し、ソースApsaraDB RDS for MySQL Enterprise EditionインスタンスのエンドポイントでSSLが有効になっている場合、ターゲットPolarDB-X 2.0 Standard EditionインスタンスのエンドポイントでSSLが有効になっていることを確認します。
ソースApsaraDB RDS for MySQL Enterprise EditionインスタンスのエンドポイントでSSLが無効になっている場合は、PolarDB-X 2.0 Standard EditionインスタンスのエンドポイントでSSLが無効になっていることを確認してください。
課金ルール
移行中のデータ同期は無料です。 ターゲットPolarDB-X 2.0 Standard Editionインスタンスに対してのみ課金されます。
バックアップポリシー
移行先のPolarDB-X 2.0 Standard Editionインスタンスのバックアップスケジュールは、移行元のApsaraDB RDS for MySQL Enterprise Editionインスタンスのバックアップスケジュールと同じです。
移行が完了したら、PolarDB-X 2.0 Standard Editionインスタンスのバックアップポリシーを変更できます。
エンドポイントによる切り替え
[エンドポイント付きの切り替え] オプションを選択した場合、移行元のApsaraDB RDS for MySQL Enterprise Editionインスタンスと移行先のPolarDB-X 2.0 Standard Editionインスタンスのエンドポイントは、移行中に自動的に切り替えられます。 切り替え後、アプリケーションの設定を変更することなく、移行先のPolarDB-X 2.0 Standard Editionインスタンスに接続できます。 次の図は、[エンドポイント付きの切り替え] オプションを選択した後の、移行元ApsaraDB RDS for MySQL Enterprise Editionインスタンスと移行先PolarDB-X 2.0 Standard Editionインスタンス間のエンドポイントの交換を示しています。
エンドポイントによる切り替え機能を使用するには、次の点に注意してください。
エンドポイントによる切り替え機能は、ソースApsaraDB RDS for MySQL Enterprise EditionインスタンスとターゲットPolarDB-X 2.0 Standard Editionインスタンスの間でのみエンドポイントを切り替えます。 vSwitchとVIPは切り替えられません。
ソースApsaraDB RDS for MySQL Enterprise EditionインスタンスとターゲットPolarDB-X 2.0 Standard Editionインスタンスにエンドポイントがある場合にのみ、エンドポイントを切り替えることができます。 デフォルトでは、プライマリプライベートエンドポイントのみが切り替えられます。
IPv6アドレスを使用するエンドポイントは切り替えられません。
エンドポイントによる切り替え機能は、移行元ApsaraDB RDS for MySQL Enterprise Editionインスタンスと移行先PolarDB-X 2.0 Standard Editionインスタンスの間でポートを切り替えません。 2つのインスタンスが同じ接続ポートを使用していることを確認します。 デフォルトでは、ポート3306が使用されます。 ポートの変更方法については、「インスタンスのエンドポイントとポートの表示と管理」をご参照ください。
エンドポイントが切り替えられた後、元のエンドポイントエントリは、エントリが期限切れになる前にドメインネームシステム (DNS) キャッシュに残り得る。 この期間中、PolarDB-X 2.0 Standard Editionインスタンスへの接続に失敗するか、インスタンスが読み取り操作のみを許可する場合があります。 この問題を解決するには、DNSキャッシュを更新することを推奨します。
説明この問題を解決するには、特定のオペレーティングシステムとサーバーのバージョンに基づいてDNSキャッシュを更新することをお勧めします。 DNSキャッシュを更新するには、次の手順を実行します。 この例では、
Alibaba Cloud Linux 2/3が使用されています。systemd-resolvedサービスが実行されているかどうかを確認します。 サービスが実行中の場合、Active: active (running)が表示されます。sudo systemctl status systemd-resolvedsystemd-resolvedサービスのDNSキャッシュを更新します。sudo systemd-resolve --flush-caches
エンドポイントを切り替えた後、DMSを使用してPolarDB-X 2.0 Standard Editionインスタンスにアクセスする場合は、最新バージョンのDMSとPolarDB-X 2.0 Standard EditionインスタンスのIDを使用してインスタンスにログインします。