OceanBaseデータベースのMySQL互換モードからTiDBデータベースへのデータ移行タスクを新規作成することで、ソースデータベースの増分データをターゲットデータベースにシームレスに移行できます。
注意
データ移行タスクが長期間非アクティブ状態(タスク状態が 失敗、一時停止 または 完了)にある場合、増分ログの保持期間などの影響でタスクが復旧できない可能性があります。データ移行システムは、非アクティブ状態が7日間を超えるタスクを自動的に解放し、関連リソースを回収します。タスクに対してアラートを設定し、タスク関連の異常を速やかに処理することを推奨します。
前提条件
ソース側のOceanBaseデータベースのクラスタとテナントが作成済みであること。詳細については、インスタンスの作成および新規テナントの作成をご参照ください。
ターゲット側のデータベースインスタンスが作成済みであること。
ソース側とターゲット側に、データ移行専用のデータベースユーザーを作成し、関連する権限を付与していること。詳細については、ユーザー権限の説明をご参照ください。
使用上の制限
データ移行タスクの新規作成は、プロジェクトロールが プロジェクトオーナー、プロジェクト管理者、または データサービス管理者 のユーザーのみがサポートします。
現在、データ移行はTiDBデータベースのV4.x、V5.4、V6.x、V7.x、およびOceanBaseデータベースのMySQL互換モードV2.x、V3.x、V4.xをサポートしています。
OceanBaseデータベースのMySQL互換モードのデータをTiDBデータベースに移行する場合、増分同期のみをサポートし、DDLの同期はサポートしていません。
データ移行サービスは、データベース名、テーブル名、列名がASCIIコードであり、特殊文字(.|"'`()=;/& および改行を含む)を含まないオブジェクトの移行のみをサポートします。
データ移行サービスはTiCDC Open Protocolのみをサポートし、他のプロトコルはサポートしていません。サポートされていないプロトコルを使用すると、JDBC-Connectorで例外が発生し、NULLポインタエラーが報告されます。
データ移行サービスは、ターゲット側にトリガー(Trigger)が存在する場合をサポートしていません。トリガーが存在すると、データ移行が失敗する可能性があります。
注意事項
ソース側の文字セットがUTF-8の場合、ターゲット側ではソース側と互換性のある文字セット(例:UTF-8、UTF-16など)を使用することを推奨します。これにより、文字セットの互換性不足によるターゲット側での文字化けなどの問題を回避できます。
ターゲット側の一意インデックスを変更する場合は、データ移行タスクを再起動する必要があります。そうしない場合、データの不整合が発生する可能性があります。
ノード間の時刻同期が取れていない場合、またはクライアント端末とサーバー間の時刻が同期されていない場合、増分同期の遅延時間が正確でない可能性があります。
例えば、時計が標準時より早い場合、遅延時間が負の値になる可能性があります。時計が標準時より遅い場合、遅延が発生する可能性があります。
データ移行サービスのDECIMAL、FLOAT、DATETIMEなどの列型の移行精度が期待通りであるか確認してください。ターゲット側のフィールド型の精度がソース側のフィールド型の精度より低い場合、切り捨てが発生し、ソース側とターゲット側のデータが一致しなくなる可能性があります。
データ移行タスクを新規作成する際、**増分同期**のみを設定した場合、データ移行ではソース側データベースのローカル増分ログを48時間以上保持する必要があります。
OceanBaseデータベースをソース側として増分同期を行う場合、データベーステーブルオブジェクトにUDT列が含まれていると、UDT列をサポートしていないため、増分同期タスクが異常終了する可能性があります。
サポートされているソース側およびターゲット側のインスタンスタイプ
下表では、OceanBase MySQL Compatibleがサポートするインスタンスタイプには、クラスタインスタンス(トランザクション型)と自社構築データベースが含まれます。
クラウドプロバイダー |
ソース側 |
ターゲット側 |
|---|---|---|
| AWS | OceanBase MySQL Compatible | 自社構築TiDB |
| 华为云 | OceanBase MySQL Compatible | 自社構築TiDB |
| 腾讯云 | OceanBase MySQL Compatible | 自社構築TiDB |
| Alibaba Cloud | OceanBase MySQL Compatible | 自社構築TiDB |
データ型マッピング
OceanBaseデータベースのMySQL互換モード |
TiDBデータベース |
|---|---|
| INTEGER | INTEGER |
| TINYINT | TINYINT |
| SMALLINT | SAMLLINT |
| MEDIUMINT | MEDIUMINT |
| BIGINT | BIGINT |
| FLOAT | FLOAT |
| DOUBLE | DOUBLE |
| REAL | REAL |
| DECIMAL | DECIMAL |
| NUMERIC | NUMERIC |
| BOOL | TINYINT(1) |
| DATE | DATE |
| DATETIME | DATETIME |
| TIMESTAMP | TIMESTAMP |
| TIME | TIME |
| YEAR | YEAR |
| CHAR | CHAR |
| VARCHAR | VARCHAR TEXT (> 65535 bytes) |
| BLOB | BLOB |
| TEXT | TEXT |
| BINARY | BINARY |
| VARBINARY | VARBINARY |
| BIT | BIT |
| ENUM | ENUM |
| SET | SET |
操作手順
データ移行タスクを新規作成します。

OB Cloudデータベースコンソールにログインします。
左側のナビゲーションペインで、データサービス > データ移行 をクリックします。
データ移行 ページで、データ移行 タブをクリックします。
データ移行 タブで、右上の タスクを作成する をクリックします。
タスク名を編集するテキストボックスに、カスタムの移行タスク名を入力します。
中国語、数字、英字の組み合わせを使用することをお勧めします。名前にはスペースを含めず、長さは64文字を超えないようにしてください。
ソースとターゲットを設定する ページで、各パラメータを設定します。
ソース エリアで、各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合、ソース の右側にある クイックフィル をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択後、ソースエリアの各設定が自動的に入力されます。現在の設定を新しいデータソースとして保存する場合、ソース エリアの右上にある 保存 アイコンをクリックしてください。
クイックフィル のドロップダウンリストで データソースの管理 をクリックすると、データソース ページに移動し、データソースの表示・管理ができます。この記事では異なる種類のデータソースを一元的に管理できます。詳細については、データソースモジュールのドキュメントをご参照ください。
パラメータ説明クラウドプロバイダー 現在、AWS、Huawei Cloud、Tencent Cloud、Alibaba Cloud をサポートしています。 データベースタイプ ソースを OceanBase MySQL Compatible に選択します。 インスタンスタイプ クラスタインスタンス(トランザクション) と オンプレデータベース が含まれます。 リージョン ソースデータベースのリージョンを選択します。 接続タイプ エンドポイント と パブリックIP が含まれます。 - エンドポイント 接続方式を選択した場合、ページに表示されているアカウントIDをエンドポイントサービスのホワイトリストに追加し、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようにする必要があります。詳細については、プライベートネットワーク接続の選択モジュールのドキュメントをご参照ください。
- パブリックIP 接続方式を選択した場合、ページに表示されているデータソースIPアドレスをOceanBaseデータベースインスタンスのホワイトリストに追加し、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択モジュールのドキュメントをご参照ください。
説明
インスタンスタイプが自社構築データベースのみを選択した場合にこのパラメータが表示されます。ソースとターゲットのリージョンを選択すると、ページにホワイトリストに追加する必要があるデータソースIPアドレスが表示されます。
接続情報 インスタンスタイプが自社構築データベースを選択した場合にのみ、このパラメータが表示されます。 - 接続タイプ を エンドポイント に選択した場合、エンドポイントサービス名を入力してください。
- 接続タイプ を パブリックIP に選択した場合、データベースホストのIPアドレスとポート番号を入力してください。
インスタンス OceanBaseデータベースMySQL互換モードのテナントが存在するインスタンスのIDまたは名前です。インスタンス ページで、ターゲットインスタンスのIDまたは名前を確認できます。 説明
クラウドプロバイダーがAlibaba Cloudの場合、アカウント間認証をサポートするAlibaba Cloudのメインアカウントインスタンスの選択も可能です。詳細については、Alibaba Cloudアカウント認証をご参照ください。
テナント OceanBaseデータベースMySQL互換モードのテナントのIDまたは名前です。インスタンス ページで、ターゲットインスタンスを展開し、そのインスタンス下のターゲットテナントのIDまたは名前を確認できます。 データベースアカウント データ移行用のOceanBaseデータベースMySQL互換モードテナントのユーザー名。 パスワード データベースユーザーのパスワード。 インスタンスタイプ を 自己管理型データベース に選択した場合、実際の状況に応じて詳細設定を行うかどうかを決定できます。
注意
新規作成した移行タスクで増分同期を行う場合は、sysテナントアカウントと増分ログプロキシサービスを同時に有効にしてください。
パラメータ説明sysテナントアカウント sysテナントアカウントを有効にした場合、sysアカウントとパスワードを入力する必要があります。 - システムアカウント:sysユーザーの名前です。このユーザーは主にOceanBaseデータベースの増分ログとデータベースオブジェクト構造情報の読み取りに使用されます。ビジネスクラスタのsysテナント内に作成してください。
- パスワード:sysユーザーのパスワード。
増分ログプロキシサービス 増分ログプロキシサービスを有効にした場合、**OBLogProxy接続情報**を入力する必要があります。このパラメータはOceanBaseデータベースの増分ログプロキシサービスであり、サービス形態でリアルタイムの増分プロジェクトの介入と管理機能を提供し、アプリケーションがOceanBaseデータベースの増分ログに介入しやすくします。同時に、ネットワークが分離されている状況でも、増分ログのサブスクリプションニーズを解決できます。形式は OBLogProxy IP:OBLogProxy Portです。**ソースとターゲットを設定するの手順で、ターゲット**エリアの各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合、**ターゲットの右側にあるクイックフィルをクリックし、ドロップダウンリストから対象のデータソースを選択します。選択完了後、ターゲット側エリアの各設定は自動的に入力されます。現在の設定を新しいデータソースとして保存する場合、ターゲットエリアの右上にある保存**アイコンをクリックしてください。
また、**クイックフィルのドロップダウンリストで、データソースの管理をクリックすると、データソース**ページに移動し、データソースの表示・管理ができます。この記事では異なる種類のデータソースを一元的に管理できます。詳細については、データソースモジュールのドキュメントをご参照ください。
パラメータ説明クラウドベンダー 現在、AWS、Huawei Cloud、Tencent Cloud、および Alibaba Cloud をサポートしています。ソース側と同じクラウドベンダーを選択することも、異なるクラウドベンダー間でのデータ移行も可能です。 説明
現在、クラウドベンダー間のデータ移行機能はデフォルトで有効になっていません。この機能を使用する場合は、OB Cloudのテクニカルサポートにお問い合わせください。
データベースタイプ ターゲット側のデータベースタイプとして TiDB を選択します。 インスタンスタイプ 現在、オンプレ TiDB のみをサポートしています。 リージョン ターゲット側データベースのリージョンを選択します。 接続タイプ エンドポイント と パブリックネットワーク接続 が含まれます。 - エンドポイント 接続方式を選択した場合、ページに表示されているアカウントIDを、ご利用のエンドポイントサービスのホワイトリストに追加する必要があります。これにより、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようになります。詳細については、プライベートネットワーク接続の選択モジュールのドキュメントをご参照ください。
クラウドベンダー を AWS に設定した場合、エンドポイントサービス作成時にパラメータ エンドポイントを使用するために受け入れる必要があります で 必要 を選択した場合、データ移行サービスが初めてプライベート接続にアクセスする際、AWSコンソールにアクセスし、受信した接続リクエストに対して エンドポイント接続リクエストを受け入れる 操作を実行するよう求められます。 - パブリックIP 接続方式を選択した場合、ページに表示されているデータソースIPアドレスをTiDBデータベースインスタンスのホワイトリストに追加して、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択モジュールのドキュメントをご参照ください。
説明
ソース側とターゲット側のリージョンを選択すると、ページにホワイトリストに追加する必要があるデータソースIPアドレスが表示されます。
接続情報 - 接続タイプ を エンドポイント に選択した場合、エンドポイントサービス名を入力してください。
- 接続タイプ を パブリックIP に選択した場合、データベースホストのIPアドレスとポート番号を入力してください。
データベースアカウント データ移行用のTiDBデータベースのユーザー名。 パスワード データベースユーザーのパスワード。 - エンドポイント 接続方式を選択した場合、ページに表示されているアカウントIDを、ご利用のエンドポイントサービスのホワイトリストに追加する必要があります。これにより、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようになります。詳細については、プライベートネットワーク接続の選択モジュールのドキュメントをご参照ください。
**テストして続行**をクリックします。
**タイプとオブジェクトを選択してください**ページで、各パラメータを設定します。
説明
現在、OceanBaseデータベースのMySQL互換モードのデータをTiDBデータベースに移行する場合、片方向同期のみをサポートしています。
**移行タイプ**エリアで、現在のデータ移行タスクの移行タイプを選択します。
現在、増分同期 のみをサポートしており、DML同期 はサポートしていません。詳細については、カスタムDML/DDLの設定をご参照ください。
**移行対象を選択してください**エリアで、移行オブジェクトの選択方法を設定します。
オブジェクトの指定 と ルールによる一致 の2つの方法で移行オブジェクトを選択できます。

移行範囲を選択してください セクションで、移行するオブジェクトを選択します。
オブジェクトの指定 を選択した場合、データ移行は データベースオブジェクト と データベース全体 をサポートします。テーブル・カラム移行では、1つまたは複数のデータベース内のテーブルやビューを移行対象として選択できます。データベース移行では、データベース全体を移行対象として選択できます。データベースにテーブル・カラム移行を選択した場合、そのデータベースはデータベース移行をサポートしなくなります。データベースにデータベース移行を選択した場合、そのデータベースはテーブル・カラム移行をサポートしなくなります。
データベースオブジェクト または データベース全体 のいずれかの方法を選択した後、左側で移行するオブジェクトを選択し、> をクリックして右側のリストに追加します。
データ移行は、テキスト形式でオブジェクトをインポートすることをサポートしており、ターゲット側のオブジェクトの名前変更、行フィルタリングの設定、列情報の表示、および単一またはすべての移行オブジェクトの削除などの操作もサポートしています。

説明
データベース移行を選択した場合、右側のリストにはデータベース名のみが表示され、具体的なオブジェクトは表示されません。
操作説明オブジェクトのインポート 選択エリアの右側のリストで、右上の インポート対象 をクリックします。移行オブジェクトのインポートをご参照ください。 名前の変更 データ移行は、移行オブジェクトの名前を変更することをサポートしています。データベース・テーブルの名前変更をご参照ください。 行のフィルタリング データ移行は WHERE条件を使用した行フィルタリングをサポートしています。SQL条件でのデータフィルタリングをご参照ください。また、列を表示 エリアで、移行オブジェクトの列情報を確認できます。すべての移行オブジェクトの削除/クリア データ移行では、データマッピング時に、一時的にターゲット側に選択された単一または複数のオブジェクトを削除する操作をサポートしています。 - 単一の移行オブジェクトの削除
選択エリアの右側のリストで、対象オブジェクトの後ろにある 削除 アイコンをクリックすると、その移行オブジェクトを削除できます。 - すべての移行オブジェクトの削除
選択エリアの右側のリストで、右上の すべてクリア をクリックします。ダイアログボックスで、OK をクリックすると、すべての移行オブジェクトが削除されます。
- 単一の移行オブジェクトの削除
マッチングルール を選択する場合は、データベース間のマッチングルールの設定をご参照ください。
次へ をクリックします。移行オプション ページで、増分同期の各パラメータを設定します。
パラメータ説明書き込み並列設定 このパラメータは、増分同期フェーズでターゲット側にデータを書き込む並列数を設定します。最大制限は512です。並列数が高すぎると、ターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 増分移行レートの制限 実際のニーズに応じて、増分同期レートの制限を有効にするかどうかを決定できます。有効にする場合は、ターゲット側の書き込みRPS(増分同期フェーズで1秒間にターゲット側に同期できるデータ行数の最大値の制限)とターゲット側の書き込みBPS(増分同期フェーズで1秒間にターゲット側に同期できるトラフィックの最大値の制限)を設定してください。 説明
ここで設定されたRPSとBPSは、速度制限とトラフィック制限の能力としてのみ機能します。実際の増分同期で達成可能な性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
増分同期開始時刻 特定の時間点以降のデータの移行を指定してください。デフォルトは現在のシステム時刻です。増分同期時刻の設定をご参照ください。 事前チェック をクリックすると、システムがデータ移行タスクの事前チェックを実行します。
事前チェック プロセスでは、データ移行はデータベースユーザーの読み書き権限、データベースのネットワーク接続などが要件を満たしているかどうかをチェックします。すべてのチェック項目が合格した場合にのみ、データ移行タスクを開始できます。事前チェックでエラーが発生した場合:
問題を調査し解決した後、事前チェックを再実行し、事前チェックが成功するまで繰り返すことができます。
失敗した事前チェック項目の操作列にある スキップ をクリックすることもできます。これにより、この操作をスキップする具体的な影響を示すダイアログボックスが表示されます。スキップしてもよいことを確認したら、ダイアログボックスの わかりました をクリックしてください。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページに進んで購入します。
購入が成功すると、データ移行タスクを開始できます。購入の詳細については、データ移行インスタンスの購入をご参照ください。データ移行インスタンスの購入が一時的に不要な場合は、保存 をクリックして、データ移行タスクの詳細ページに移動し、後から必要に応じて手動で購入できます。
データ移行の詳細ページの右上にある 検証タスクの設定 をクリックすると、ソースデータベースとターゲットデータベースのデータの差異を比較できます。詳細については、新しいデータ検証タスクの作成をご参照ください。
データ移行サービスは、データ移行タスクの実行中に移行オブジェクトを変更することをサポートしています。詳細については、移行オブジェクトの表示と変更をご参照ください。データ移行タスクが開始されると、選択した移行タイプに従って順次実行されます。詳細については、データ移行タスクの詳細の表示の「移行の詳細を見る」モジュールの内容をご参照ください。