このトピックでは、データ伝送サービスを使用して、PolarDB-X 1.0 データベースから OceanBase データベースの MySQL テナントにデータを移行する方法について説明します。
データ移行タスクが非アクティブな状態のまま長時間経過すると、増分ログの保存期間によってはリストアに失敗する可能性があります。非アクティブな状態とは、失敗、停止、完了です。データ転送サービスは、関連リソースを再利用するために、3 日間を超えて非アクティブな状態のままであるデータ移行タスクを解放します。データ移行タスクのアラートを設定し、タスクの例外にタイムリーに対処することをお勧めします。
背景
PolarDB-X 1.0 は、Alibaba グループが自社開発したクラウドネイティブ分散データベースです。分散 SQL エンジンと独自開発の分散ストレージ X-DB を統合し、クラウドネイティブ統合アーキテクチャに基づいて設計されています。 PolarDB-X 1.0 は 1,000 万を超える同時リクエストをサポートし、数百ペタバイトのデータに対して大容量ストレージを提供します。詳細については、「製品概要」をご参照ください。
PolarDB-X 1.0 データベースから OceanBase データベースの MySQL テナントにデータを移行するタスクが正常に開始されると、タスクは自動的に削除されます。 データ伝送サービスは、PolarDB-X 1.0 データベースにマウントされた MySQL データベースから OceanBase データベースの MySQL テナントにデータを移行するタスクを自動的に作成します。タスクの数は、PolarDB-X 1.0 データベース内の基盤となる MySQL インスタンスの数によって異なります。
バッチ開始、バッチ一時停止、バッチ開始フォワード スイッチオーバーなどの操作のために、タグまたはタスク名でタスクをフィルタリングすることをお勧めします。バッチ操作の詳細については、「データ移行タスクのバッチ操作を実行する」をご参照ください。
前提条件
データ伝送サービスには、クラウド リソースにアクセスする権限があります。詳細については、「データ伝送のロールに権限を付与する」をご参照ください。
ソース PolarDB-X 1.0 データベースとターゲット OceanBase データベースの MySQL テナントに、データ移行専用のデータベース ユーザーを作成し、対応する権限をユーザーに付与しています。
ソース側の PolarDB-X 1.0 データベースとターゲット側の OceanBase データベース MySQL テナントに、データ移行専用のデータベース ユーザーを作成し、関連する権限を付与済みです。詳細については、「PolarDB-X 1.0 アカウント管理」および「データベース ユーザーを作成する」をご参照ください。
制限事項
ソースデータベースの制限事項
完全移行中は、データベースまたはテーブル スキーマを変更する DDL 操作を実行しないでください。そうしないと、データ移行タスクが中断される可能性があります。
データ伝送サービスは、バージョン 5.2.8、5.4.2、5.4.9、および 5.4.12 の PolarDB-X 1.0 データベースをサポートしています。
データ伝送サービスは、PolarDB-X 1.0 データベースにマウントされた ApsaraDB RDS for MySQL インスタンスと互換性のあるバージョン 5.5、5.6、5.7、および 8.0 の MySQL データベース、ならびに標準の ApsaraDB RDS for MySQL および PolarDB for MySQL インスタンスをサポートしています。
データ伝送サービスは、オブジェクトのデータベース名、テーブル名、および列名が特殊文字を含まない ASCII エンコードである場合にのみ、オブジェクトの移行をサポートします。特殊文字は、改行、スペース、および次の文字です。 . | " ' ` ( ) = ; / & \.
PolarDB-X 1.0 データベースから OceanBase データベースの MySQL テナントにデータを移行する場合、データ伝送サービスは次のケースをサポートしていません。
スキーマ移行または逆増分同期
Alibaba Cloud アカウントを跨いでの移行
ビュー移行
ソース PolarDB-X 1.0 データベースにマウントされた ApsaraDB RDS for MySQL インスタンスのユーザー名またはパスワードの不一致
OceanBase データベースは、UTF8MB4、GBK、GB18030、binary、および UTF-16 文字セットをサポートしています。
考慮事項
一意キーのないテーブル(プライマリキーまたは NOT NULL 一意キーを持つテーブル)の移行では、完全移行を再開または復元すると、データ伝送サービスは再開または復元前に同期されたターゲット テーブルを自動的に切り捨てます。ただし、PolarDB-X 1.0 データベースにマウントされた ApsaraDB RDS for MySQL データベースから OceanBase データベースの MySQL テナントに一意キーのないテーブルを移行するデータ移行タスクの場合、完全移行を再開または復元するときに、データ伝送サービスはターゲット テーブルを自動的に切り捨てません。
PolarDB-X 1.0 データベースのオブジェクトのマッピングを指定しない場合、物理テーブルのすべてのデータは、ターゲット側で同じ名前の物理テーブルに同期されます。
ソースとターゲットのテーブル スキーマの違いにより、データの整合性が損なわれる可能性があります。いくつかの既知のシナリオは次のとおりです。
ターゲット側で手動でテーブル スキーマを作成する場合、いずれかの列のデータ型がデータ伝送サービスでサポートされていないと、ターゲット側で暗黙的なデータ型変換が発生し、ソース データベースとターゲット データベース間で列型に不整合が生じる可能性があります。
ターゲット側での列の長さがソース データベースよりも短い場合、この列のデータが自動的に切り捨てられ、ソース データベースとターゲット データベース間でデータの不整合が生じる可能性があります。
データ移行タスクの作成時に [増分同期] のみを選択した場合、データ転送サービスでは、ソースデータベースのローカル増分ログを 48 時間以上保持する必要があります。
データ移行タスクの作成時に [フル移行] と [増分同期] を選択した場合、データ転送サービスでは、ソースデータベースのローカル増分ログを 7 日間以上保持する必要があります。 データ転送サービスが増分ログを取得できない場合、データ移行タスクが失敗したり、移行後にソースデータベースとターゲットデータベースの間でデータの不整合が発生したりする可能性があります。
ソース データベースまたはターゲット データベースに大文字と小文字のみが異なるテーブル オブジェクトが含まれている場合、ソース データベースまたはターゲット データベースで大文字と小文字が区別されないため、データ移行の結果が予期したとおりにならない可能性があります。
サポートされているソース インスタンス タイプとターゲット インスタンス タイプ
次の表で、OB_MySQL は OceanBase データベースの MySQL テナントを表します。
ソース | ターゲット |
PolarDB-X 1.0 (Alibaba Cloud PolarDB-X 1.0 インスタンス) | OB_MySQL (OceanBase クラスタインスタンス) |
PolarDB-X 1.0 (Alibaba Cloud PolarDB-X 1.0 インスタンス) | OB_MySQL (サーバーレス インスタンス) |
手順
ApsaraDB for OceanBase コンソール にログインし、データ移行タスクを購入します。
詳細については、「データ移行タスクを購入する」をご参照ください。
[データ伝送] > [データ移行] を選択します。表示されるページで、データ移行タスクの [構成] をクリックします。

既存のタスクの構成を参照する場合は、[構成の参照] をクリックします。詳細については、「データ移行タスクの構成を参照する」をご参照ください。
[ソースとターゲットの選択] ページで、パラメータを構成します。
パラメータ
説明
移行タスク名
数字と文字の組み合わせに設定することをお勧めします。スペースを含めることはできず、長さは 64 文字を超えることはできません。
ソース
PolarDB-X 1.0 データソースを作成済みの場合は、ドロップダウン リストから選択します。それ以外の場合は、ドロップダウン リストの [新しいデータソース] をクリックし、右側に表示されるダイアログ ボックスで作成します。パラメータの詳細については、「PolarDB-X 1.0 データソースを作成する」をご参照ください。
ターゲット
OceanBase データベースの MySQL テナントのデータソースを作成済みの場合は、ドロップダウン リストから選択します。それ以外の場合は、ドロップダウン リストの [新しいデータソース] をクリックし、右側に表示されるダイアログ ボックスで作成します。パラメータの詳細については、「OceanBase データソースを作成する」をご参照ください。
タグ
ドロップダウン リストからターゲット タグを選択します。また、タグの管理タグを使用してデータ移行タスクを管理する をクリックして、タグを作成、変更、および削除することもできます。詳細については、「」をご参照ください。
説明PolarDB-X 1.0 データベースから OceanBase データベースの MySQL テナントにデータを移行するタスクが正常に開始されると、タスクは自動的に削除されます。タスクに適切なタグを追加する必要があります。
[次へ] をクリックします。[移行タイプの選択] ページで、現在のデータ移行タスクの移行タイプを指定します。
サポートされている移行タイプは、完全移行、増分同期、および完全検証です。
移行タイプ
説明
完全移行
完全移行タスクが開始されると、データ伝送サービスはソース データベースのテーブルからターゲット データベースの対応するテーブルに既存のデータを移行します。
データ移行の前に、ソース データベースとターゲット データベースのパフォーマンスを評価します。オフピーク時にデータ移行を実行することをお勧めします。完全移行中、データ伝送サービスはソース データベースとターゲット データベースで読み取りおよび書き込みリソースを消費します。これにより、データベースの負荷が増加する可能性があります。詳細については、「移行評価のパフォーマンス評価」をご参照ください。
増分同期
増分同期タスクが開始されると、データ伝送サービスは、変更されたデータ(追加、変更、または削除されたデータ)をソース データベースからターゲット データベースの対応するテーブルに同期します。
差分同期は、次の DML 操作をサポートしています。
Insert、Delete、Update。ビジネスニーズに基づいてステートメントを選択できます。詳細については、「DDL/DML 同期を構成する」をご参照ください。完全検証
完全移行タスクと増分同期タスクが完了すると、データ伝送サービスは自動的に完全検証タスクを開始し、ソース データベースとターゲット データベースのテーブルを検証します。
[増分同期] を選択したが、[DML 同期] セクションですべての DML 文を選択しなかった場合、データ転送サービスは完全な検証をサポートしていません。
データ移行の前に、ソース データベースとターゲット データベースのパフォーマンスを評価します。オフピーク時にデータ移行を実行することをお勧めします。完全検証中、データ伝送サービスはソース データベースとターゲット データベースで読み取りリソースを消費します。これにより、データベースの負荷が増加する可能性があります。
[次へ] をクリックします。[移行オブジェクトの選択] ページで、データ移行タスクの移行オブジェクトを指定します。
現時点では、[オブジェクトの指定] オプションを使用してのみ、移行オブジェクトを選択できます。左側の移行するオブジェクトを選択し、> をクリックして右側のリストに追加します。1 つ以上のデータベースのテーブルを移行オブジェクトとして選択できます。
データ伝送サービスでは、テキスト ファイルからのオブジェクトのインポート、ターゲット オブジェクトの名前変更、行フィルタの設定、列情報の表示、および単一またはすべての移行オブジェクトの削除を行うことができます。

操作
説明
オブジェクトのインポート
右側のリストで、右上隅にある オブジェクトのインポート をクリックします。
表示されるダイアログ ボックスで、OK をクリックします。
重要この操作は以前の選択を上書きします。注意して進めてください。
オブジェクトのインポート ダイアログ ボックスで、移行するオブジェクトをインポートします。
CSV ファイルをインポートして、データベースまたはテーブルの名前を変更し、行フィルタリング条件を設定できます。詳細については、「移行オブジェクトの設定をダウンロードしてインポートする」をご参照ください。
検証する をクリックします。
移行オブジェクトをインポートした後、その有効性を確認します。列フィールド マッピングは現在サポートされていません。
検証に成功したら、[OK] をクリックします。
オブジェクトの名前変更
データ伝送サービスでは、移行オブジェクトの名前を変更できます。詳細については、「データベース テーブルの名前を変更する」をご参照ください。
設定の構成
データ伝送サービスでは、
WHERE条件を使用して行をフィルタリングできます。詳細については、「SQL 条件を使用してデータをフィルタリングする」をご参照ください。[列の表示] セクションで、移行オブジェクトの列情報を表示することもできます。
1 つまたはすべてのオブジェクトを削除する
データ伝送サービスでは、データ マッピング中に右側のリストに追加された単一のオブジェクトまたはすべての移行オブジェクトを削除できます。
単一の移行オブジェクトを削除する
右側のリストで、削除するオブジェクトにポインターを移動し、[削除] をクリックして移行オブジェクトを削除します。
すべての移行オブジェクトを削除する
右側のリストで、右上隅にある すべて削除OK をクリックします。表示されるダイアログ ボックスで、 をクリックしてすべての移行オブジェクトを削除します。
[次へ] をクリックします。[移行オプション] ページで、パラメータを構成します。
完全移行
次の表に、完全移行のパラメータを示します。これらのパラメータは、フル移行移行タイプの選択 ページで を選択した場合にのみ表示されます。
パラメータ
説明
読み取り同時実行性
完全移行中にソースからデータを読み取るための同時実行性。最大値は 512 です。読み取り同時実行性が高いと、ソースに過度のストレスがかかり、ビジネスに影響を与える可能性があります。
書き込み同時実行性
完全移行中にターゲットにデータを書き込むための同時実行性。最大値は 512 です。書き込み同時実行性が高いと、ターゲットに過度のストレスがかかり、ビジネスに影響を与える可能性があります。
完全移行レート制限
必要に応じて、完全移行レートを制限するかどうかを選択できます。完全移行レートを制限することを選択した場合は、1 秒あたりのレコード数 (RPS) と 1 秒あたりのバイト数 (BPS) を指定する必要があります。RPS は、完全移行中にターゲットに移行されるデータ行の最大数を指定し、BPS は、完全移行中にターゲットに移行されるデータの最大バイト数を指定します。
説明ここで指定された RPS 値と BPS 値は、調整のためだけにあります。実際の完全移行パフォーマンスは、ソースとターゲットの設定やインスタンスの仕様などの要因の影響を受けます。
ターゲット データベース内の空でないテーブルの処理
有効な値:[無視] および [移行の停止]。
[無視] を選択すると、挿入されるデータがターゲット テーブルの既存のデータと競合する場合、データ伝送サービスは競合するデータをログに記録し、既存のデータを保持します。
重要[無視] を選択すると、完全検証中に IN モードでデータがプルされます。この場合、ターゲットにソースに存在しないデータが含まれていると検証は適用されず、検証パフォーマンスが低下します。
[移行の停止] を選択し、ターゲット テーブルにレコードが含まれている場合、完全移行中に移行がサポートされていないことを示すエラーが報告されます。この場合、移行を続行する前に、ターゲット テーブルのデータを処理する必要があります。
重要エラーを知らせるダイアログ ボックスで [復元] をクリックすると、データ伝送サービスはこのエラーを無視してデータの移行を続行します。注意して進めてください。
増分同期
次の表に、増分同期のパラメータを示します。これらのパラメータは、[移行タイプの選択] ページで [増分同期] を選択した場合にのみ表示されます。

パラメータ
説明
書き込み同時実行性
増分同期中にターゲットにデータを書き込むための同時実行性。最大値は 512 です。書き込み同時実行性が高いと、ターゲットに過度のストレスがかかり、ビジネスに影響を与える可能性があります。
増分同期レート制限
必要に応じて、増分同期レートを制限するかどうかを選択できます。増分同期レートを制限することを選択した場合は、RPS と BPS を指定する必要があります。RPS は、増分同期中にターゲットに同期されるデータ行の最大数を指定し、BPS は、増分同期中にターゲットに同期されるデータの最大バイト数を指定します。
説明ここで指定された RPS 値と BPS 値は、調整のためだけにあります。実際の増分同期パフォーマンスは、ソースとターゲットの設定やインスタンスの仕様などの要因の影響を受けます。
増分同期の開始タイムスタンプ
[移行タイプの選択] ページで [完全移行] を選択した場合、このパラメータは表示されません。
[増分同期] を選択したが [完全移行] を選択しなかった場合は、データを同期する開始時点を指定します。デフォルト値は現在のシステム時刻です。詳細については、「増分同期のタイムスタンプを設定する」をご参照ください。
[事前チェック] をクリックして、データ移行タスクの事前チェックを開始します。
[事前チェック] 中に、データ伝送サービスはデータベース ユーザーの読み取りおよび書き込み権限とデータベースのネットワーク接続を確認します。データ移行タスクは、すべてのチェック項目に合格した後でのみ開始できます。事前チェック中にエラーが返された場合は、次の操作を実行できます。
問題を特定してトラブルシューティングし、再度事前チェックを実行します。
失敗した事前チェック項目の [アクション] 列で [スキップ] をクリックします。操作の結果を確認するダイアログボックスで、[OK] をクリックします。
事前チェックが成功したら、[タスクの開始] をクリックします。
タスクを今すぐ開始する必要がない場合は、[保存] をクリックします。後で [移行タスク] ページで、またはバッチ操作を実行することでタスクを開始できます。バッチ操作の詳細については、「データ移行タスクのバッチ操作を実行する」をご参照ください。
PolarDB-X 1.0 データベースから OceanBase データベースの MySQL テナントへのデータ移行タスクは、開始後に自動的に削除されます。データ伝送サービスは、PolarDB-X 1.0 データベースにマウントされたデータベースから OceanBase データベースの MySQL テナントへのデータ移行タスクを保持し、対応するデータソースを自動的に作成します。表示されるダイアログ ボックスで、[ファイルとしてダウンロード] をクリックして、関連情報を CSV ファイルとして保存できます。
ダイアログ ボックスで [OK] をクリックします。[移行タスク] ページで、MySQL データベースから OceanBase データベースの MySQL テナントへのデータ移行タスクを 1 つ以上開始できます。
データ伝送サービスでは、移行タスクの実行中に移行オブジェクトを変更できます。詳細については、「移行オブジェクトとそのフィルタ条件を表示および変更する」をご参照ください。データ移行タスクが開始されると、選択した移行タイプに基づいて実行されます。詳細については、「移行の詳細を表示する」をご参照ください。