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 Databaseをソースとして増分同期を実行する場合、データベーステーブルのオブジェクトにUDT列が含まれていると、UDT列がサポートされていないため、増分同期タスクが失敗することがあります。
サポートされているデータ送信元およびデータ送信先のインスタンスタイプ
下表において、OceanBase MySQL Compatibleがサポートするインスタンスタイプには、専用インスタンス(トランザクション型) と セルフマネージドデータベース が含まれます。
クラウドプロバイダー |
データ送信元 |
データ送信先 |
|---|---|---|
| AWS | OceanBase MySQL Compatible | セルフマネージドTiDB |
| Huawei Cloud | OceanBase MySQL Compatible | セルフマネージドTiDB |
| Tencent Cloud | 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 |
操作手順
データ移行タスクを新規作成します。
OceanBase Cloudコンソールにログインします。
左側のナビゲーションバーで、データサービス > データ移行 をクリックします。
データ移行 ページで、データ移行 タブをクリックします。
データ移行 タブで、右上の 移行タスクの新規作成 をクリックします。
タスク名を編集するテキストボックスに、カスタムの移行タスク名を入力します。
名前には漢字、数字、英字の組み合わせを推奨します。スペースを含めず、64文字以内で入力してください。
データ送信元とデータ送信先の設定 ページで、各パラメータを設定します。
データ送信元 セクションで、各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合は、データ送信元 の右側にある データソースの参照 をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択後、データ送信元エリアの各設定が自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、データ送信元 エリアの右上にある 保存 アイコンをクリックします。
データソース管理 をクリックすると、データソース ページに移動し、データソースの表示や管理を行えます。このページでは異なる種類のデータソースを一元的に管理します。詳細については、データソースモジュールのドキュメントを参照してください。
パラメータ説明クラウドプロバイダー 現在、AWS、Huawei Cloud、Google Cloud および Alibaba Cloud をサポートしています。 データベースタイプ データ送信元を OceanBase MySQL Compatibleモード として選択します。 インスタンスタイプ 専用インスタンス(トランザクション型) と セルフマネージドデータベース が含まれます。 リージョン データ送信元データベースのリージョンを選択します。 接続タイプ ターミナルノード と パブリックネットワーク接続 が含まれます。 - ターミナルノード 接続方式を選択した場合は、ページに表示されているアカウントIDをターミナルノードサービスの許可リストに追加し、そのアカウントのターミナルノードがターミナルノードサービスに接続できるようにする必要があります。詳細については、プライベートネットワーク接続の選択 モジュールのドキュメントを参照してください。
- パブリックネットワーク接続 接続方式を選択した場合は、ページに表示されているデータソースIPアドレスをOceanBaseデータベースインスタンスの許可リストに追加し、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択 モジュールのドキュメントを参照してください。
説明
このパラメータは、インスタンスタイプがセルフマネージドデータベースのみを選択した場合に表示されます。データ送信元とデータ送信先のリージョンを選択すると、ページには許可リストに追加する必要があるデータソース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、Google Cloud、および Alibaba Cloud をサポートしています。データ送信元と同じクラウドプロバイダーを選択することも、異なるクラウド間でのデータ移行も可能です。 説明
現在、クラウド間のデータ移行機能はデフォルトで有効になっていません。この機能を使用する場合は、OceanBase Cloudのテクニカルサポートにお問い合わせください。
データベースタイプ データ送信先のデータベースタイプとして TiDB を選択します。 インスタンスタイプ 現在、セルフマネージド TiDB のみサポートされています。 リージョン データ送信先データベースのリージョンを選択します。 接続タイプ ターミナルノード と パブリックネットワーク接続 が含まれます。 - ターミナルノード 接続方式を選択した場合、ページに表示されているアカウントIDを、ターミナルノードサービスの許可リストに追加し、そのアカウントのターミナルノードがターミナルノードサービスに接続できるようにする必要があります。詳細については、プライベートネットワーク接続の選択 モジュールのドキュメントを参照してください。
クラウドベンダー を AWS として選択し、ターミナルノードサービス作成時にパラメータ エンドポイント接続を許可する で 有効 を選択した場合、データ移行サービスが初めてプライベート接続にアクセスする際、AWSコンソールにアクセスし、受信した接続リクエストに対して ターミナルノード接続リクエストを許可する 操作を行うよう求められます。 - パブリックネットワーク接続 接続方式を選択した場合、ページに表示されているデータソースIPアドレスをTiDBデータベースインスタンスの許可リストに追加し、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択 モジュールのドキュメントを参照してください。
説明
データ送信元とデータ送信先のリージョンを選択すると、ページに許可リストに追加する必要があるデータソースIPアドレスが表示されます。
接続情報 - 接続タイプ を ターミナルノード として選択した場合、ターミナルノードサービス名を入力してください。
- 接続タイプ を パブリックネットワーク接続 として選択した場合、データベースホストのIPアドレスとポート番号を入力してください。
データベースアカウント データ移行用のTiDBデータベースのユーザー名。 パスワード データベースユーザーのパスワード。 - ターミナルノード 接続方式を選択した場合、ページに表示されているアカウントIDを、ターミナルノードサービスの許可リストに追加し、そのアカウントのターミナルノードがターミナルノードサービスに接続できるようにする必要があります。詳細については、プライベートネットワーク接続の選択 モジュールのドキュメントを参照してください。
接続テストをして、次へ移動 をクリックします。
タイプとオブジェクトの選択 ページで、各パラメータを設定します。
説明
現在、OceanBaseデータベースのMySQL互換モードのデータをTiDBデータベースに移行する場合、片方向の同期のみがサポートされています。
移行タイプ エリアで、現在のデータ移行タスクの移行タイプを選択します。
現在、増分同期 のみがサポートされており、DML同期 はサポートされていません。詳細については、DML/DDLのカスタム設定を参照してください。
移行オブジェクトの選択 エリアで、移行オブジェクトの選択方法を設定します。
オブジェクトの指定 と マッチングルール の2つの方法から移行オブジェクトを選択できます。
移行範囲の選択 エリアで、移行するオブジェクトを選択します。
オブジェクトの指定 を選択した場合、データ移行は データベース/テーブル移行 と データベース全体の移行 をサポートします。データベーステーブル移行では、1つまたは複数のデータベース内のテーブルやビューを移行オブジェクトとして選択でき、データベース全体移行ではデータベース全体を移行オブジェクトとして選択できます。あるデータベースでデータベース内のテーブル移行を選択した場合、そのデータベースではデータベース全体移行はサポートされなくなります。あるデータベースでデータベース全体移行を選択した場合、そのデータベースではデータベース内のテーブル移行はサポートされなくなります。
データベース内のテーブル移行 または データベース全体の移行 の方法を選択した後、左側で移行するオブジェクトを選択し、> をクリックして右側のリストに追加します。
データ移行では、テキストを使ってオブジェクトをインポートでき、データ送信先のオブジェクトの名前変更、行フィルタリングの設定、列情報の表示、単一またはすべての移行オブジェクトの削除などの操作がサポートされています。
説明
データベース全体移行を選択した場合、右側のリストにはデータベース名のみが表示され、具体的なオブジェクトは表示されません。
操作説明インポートオブジェクト 選択エリアの右側のリストで、右上の オブジェクトのインポート をクリックします。移行オブジェクトのインポートを参照してください。 名前の変更 データ移行では、移行オブジェクトの名前を変更できます。データベース内のテーブルの名前変更を参照してください。 行フィルタリング データ移行では、 WHERE条件を使用した行のフィルタリングがサポートされています。SQL条件によるデータのフィルタリングを参照してください。また、カラムを表示 エリアで、移行オブジェクトの列情報を確認することもできます。すべて削除/クリア データ移行では、データマッピング時に、一時的にデータ送信先に選択された単一または複数のオブジェクトを削除する操作がサポートされています。 - 単一の移行オブジェクトの削除
選択エリアの右側のリストで、データ送信先オブジェクトの後ろにある 削除 アイコンをクリックすると、その移行オブジェクトを削除できます。 - すべての移行オブジェクトの削除
選択エリアの右側のリストで、右上の すべてクリア をクリックし、ダイアログボックスで OK をクリックすると、すべての移行オブジェクトを削除できます。
- 単一の移行オブジェクトの削除
マッチングルール を選択した場合、詳細については データベース間のマッチングルールの設定を参照してください。
次へ をクリックし、移行オプション ページで、増分同期の各パラメータを設定します。
パラメータ説明書き込み同時実行数設定 このパラメータは、増分同期フェーズにおいてデータ送信先へデータを書き込む同時実行数を設定します。最大値は512です。同時実行数が高すぎると、データ送信先の負荷が過大になり、業務に影響を与える可能性があります。 増分移行速度制限の有効化 実際のニーズに応じて、増分同期レートの制限を有効にするかどうかを決定できます。有効にする場合は、RPS(増分同期フェーズにおいて1秒間にデータ送信先に同期できるデータ行数の最大値の制限)とBPS(増分同期フェーズにおいて1秒間にデータ送信先に同期できるデータ量の最大値の制限)を設定してください。 説明
ここで設定されたRPSとBPSは、速度制限とトラフィック制御の能力としてのみ機能します。増分同期が実際に達成できるパフォーマンスは、データ送信元、データ送信先、インスタンス仕様の設定などの要因の影響を受けます。
増分同期開始時刻 - 移行タイプの選択時に フル移行 を選択した場合、このパラメータは表示されません。
- 移行タイプの選択時に フル移行 を選択せず、増分同期 を選択した場合は、特定の時点以降のデータを移行するように、ここで指定してください。デフォルトは現在のシステム時刻です。詳細については、増分同期の開始時刻の設定を参照してください。
事前チェック をクリックすると、システムがデータ移行タスクの事前チェックを実行します。
事前チェック の段階で、データ移行はデータベースユーザーの読み書き権限、データベースのネットワーク接続などが要件を満たしているかどうかをチェックします。すべてのチェック項目が合格した場合にのみ、データ移行タスクを開始できます。事前チェックでエラーが発生した場合:
問題を調査・処理した後、事前チェックが成功するまで繰り返し実行できます。
失敗した事前チェック項目の操作列にある スキップ をクリックすると、この操作の具体的な影響について警告するダイアログが表示されます。スキップしてもよいことを確認したら、ダイアログの OK をクリックします。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスの購入 ページで購入します。
購入が成功すると、データ移行タスクを開始できます。購入の詳細については、データ移行インスタンスの購入を参照してください。データ移行インスタンスの購入を後回しにしたい場合は、保存 をクリックしてデータ移行タスクの詳細ページに移動すれば、後から手動で購入することができます。
データ移行の詳細ページの右上にある 検証タスクの設定 をクリックすると、データ送信元データベースとデータ送信先データベースのデータ差異を比較できます。詳細については、データ検証タスクの新規作成を参照してください。
データ移行サービスでは、データ移行タスクの実行中に移行オブジェクトを変更できます。詳細については、移行オブジェクトの表示と変更を参照してください。データ移行タスクは開始後、選択した移行タイプに従って順次実行されます。詳細については、データ移行タスクの詳細を見るの「移行詳細を見る」モジュールを参照してください。