OceanBaseデータベースのOracle互換モードからOracleデータベースへのデータ移行タスクを新規作成し、構造移行、全量移行、増分同期を通じて、ソースデータベースの既存業務データおよび増分データをOracleデータベースへシームレスに移行できます。
注意
データ移行タスクが長期間非アクティブ状態(タスクステータスが 失敗、一時停止 または 完了)の場合、増分ログの保持期間などの影響により、タスクが復旧できない可能性があります。データ移行システムは、非アクティブ状態が7日間を超えるタスクを自動的に解放し、関連リソースを回収します。タスクに対してアラートを設定し、タスク関連の異常を速やかに処理することを推奨します。
背景
データ移行では、複数のOceanBaseデータベースのOracle互換モードのテーブルデータをOracleデータベースの単一のテーブルに集約することがサポートされています。この場合、構造移行は不要で、フル移行と増分同期のみが必要です。この集約同期機能の制限事項は以下の通りです:
フル移行と増分同期において、ソース側にある列はターゲット側にも存在していなければなりません。この要件を満たさない場合、データ移行はエラーとなります。
主キー列はソース側のテーブルに存在していなければなりません。
ターゲットテーブルの列には、ソース側にはない列を含めることができます。
前提条件
ターゲット側のOracleデータベースに対応するスキーマが作成されていること。
ターゲット側のOceanBaseデータベースのクラスタとテナントが作成されていること。詳細については、クラスタの作成およびテナントの作成をご参照ください。
ソース側のOceanBaseデータベースのOracle互換モードとターゲット側のOracleデータベースに、データ移行タスク専用のデータベースユーザーが作成され、関連する権限が付与されていること。詳細については、データ移行ユーザー権限をご参照ください。
制限事項
データ移行タスクを新規作成できるのは、プロジェクトロールが プロジェクトオーナー、プロジェクト管理者、または データサービス管理者 のユーザーのみです。
ソースデータベースの操作制限
構造移行およびフル移行段階では、データベースまたはテーブル構造変更のDDL操作を実行しないでください。実行した場合、データ移行タスクが中断する可能性があります。
現在、データ移行はOracleデータベースの10G/11G/12C/18C/19Cバージョンをサポートしています。12C以降のバージョンには、データベースコンテナ(Container Database、CDB)とプラグアンドプレイデータベース(Pluggable Database、PDB)が含まれます。同時に、OceanBaseデータベースのOracle互換モードV2.x、V3.x、V4.xもサポートしています。
データ移行は、テーブル内のすべての列がLOB型(BLOB/CLOB/NCLOB)である場合の増分データ移行をサポートしていません。
データ移行は、OceanBaseデータベースのOracle互換モードの非テンプレート化されたサブパーティションテーブルからOracleデータベースへの移行をサポートしていません。
データ移行は、現在、式に基づくインデックスをサポートしていません。
データ移行は、主キーを持つテーブルの複数テーブル集約のみをサポートしています。
データ移行は、データベース名、テーブル名、列名がASCIIコードであり、特殊文字(改行、スペース、および .|"'`()=;/& を含む)を含まないオブジェクトの移行のみをサポートしています。
ターゲット側がデータベースの場合、データ移行はターゲット側にトリガー(Trigger)が存在することをサポートしていません。存在する場合、データ移行が失敗する可能性があります。
データソース識別子やユーザーアカウントなどは、データ移行システム内でグローバルに一意である必要があります。
Oracleデータベース11G及びそれ以前のバージョンでは、30バイトを超えるデータベースオブジェクトの作成はサポートされていません。OceanBaseデータベースのOracle互換モードのデータをOracleデータベースに移行する際には、ソース側でこの制限を超えるデータベースオブジェクトを作成しないように注意してください。
注意点
OceanBaseデータベースV4.xでは、アーカイブログを有効にすることを強く推奨します。アーカイブログを有効にした後、Clogが回収されても、データ移行はアーカイブログを消費することで増分同期機能を実現できます。
ソース側の文字セットがUTF-8の場合、ターゲット側ではソース側と互換性のある文字セット(例:UTF-8、UTF-16など)を使用し、文字セットの不互換によるターゲット側での文字化けなどの問題を避けることを推奨します。
ノード間のクロックが同期していない場合、またはコンピュータ端末とサーバー間のクロックが同期していない場合、増分同期の遅延時間が正確でない可能性があります。
例えば、時計が標準時より進んでいると、遅延時間が負の値になる可能性があります。時計が標準時より遅れていると、遅延が発生する可能性があります。
Oracle文字セットとOceanBaseデータベースのOracle互換モードでは、シナリオに応じてフィールド長の選択ポリシーが異なります。
ソース側のテーブルに「OMS_PK_INCRMT」というフィールド名が含まれている場合、増分同期タスクは中断され、回復できません。
DDL同期を有効にしていない場合、ターゲット側の一意インデックスを変更した後は、データ移行タスクを再起動する必要があります。そうしないと、データの不整合が発生する可能性があります。
OceanBaseデータベースのOracle互換モードのゴミ箱内のオブジェクトを確認してください。オブジェクト数が100を超えると、内部テーブルのクエリがタイムアウトしやすくなります。ゴミ箱のオブジェクトのクリーンアップを実行してください。
Oracleデータベースのゴミ箱内のオブジェクトを確認してください。オブジェクト数が100を超えると、内部テーブルのクエリがタイムアウトしやすくなります。ゴミ箱のオブジェクトのクリーンアップを実行してください。
ゴミ箱が有効になっているか確認してください。
SELECT Value FROM V$parameter WHERE Name = 'recyclebin';ゴミ箱内のオブジェクト数を確認してください。
SELECT COUNT(*) FROM RECYCLEBIN;
ソースがOceanBaseデータベースでDDL同期が有効なデータ移行タスクにおいて、ソース側のデータベーステーブルでRENAME操作が発生した場合、増分同期でデータが失われるのを避けるため、タスクを再起動することを推奨します。
データ移行タスクを新規作成する際に、増分同期 のみを設定した場合、データ移行ではソースデータベースのローカル増分ログを48時間以上保持する必要があります。
データ移行タスクを新規作成する際に、完全移行 + 増分同期 を設定した場合、データ移行ではソースデータベースのローカル増分ログを少なくとも7日間以上保持する必要があります。そうでない場合、増分ログを取得できないためデータ移行タスクが失敗したり、ソースとターゲットのデータが不整合になったりする可能性があります。
OceanBaseデータベースをソースとして増分同期を行う場合、データベーステーブルオブジェクトにUDT列が含まれていると、UDT列をサポートしていないため増分同期タスクが異常終了する可能性があります。
データ型のマッピング
OceanBaseデータベースOracle互換モード |
Oracleデータベース |
|---|---|
| CHAR(n CHAR) | CHAR(n CHAR) |
| CHAR(n BYTE) | CHAR(n BYTE) |
| NCHAR(n) | NCHAR(n) |
| NCHAR(n BYTE) | NCHAR(n) |
| VARCHAR2(n) | VARCHAR2(n) |
| NVARCHAR2(n) | NVARCHAR2(n) |
| NVARCHAR2(n BYTE) | NVARCHAR2(n) |
| NUMBER(n) | NUMBER(n) |
| NUMBER(p, s) | NUMBER(p,s) |
| RAW | RAW |
| CLOB | CLOB |
| BLOB | BLOB |
| FLOAT(n) | FLOAT (n) |
| BINARY_FLOAT | BINARY_FLOAT |
| BINARY_DOUBLE | BINARY_DOUBLE |
| DATE | DATE |
| TIMESTAMP | TIMESTAMP |
| TIMESTAMP WITH TIME ZONE | TIMESTAMP WITH TIME ZONE |
| TIMESTAMP WITH LOCAL TIME ZONE | TIMESTAMP WITH LOCAL TIME ZONE |
| INTERVAL YEAR(p) TO MONTH | INTERVAL YEAR(p) TO MONTH |
| INTERVAL DAY(p) TO SECOND | INTERVAL DAY(p) TO SECOND |
| ROWID | ROWID |
| UROWID | UROWID |
サポートされているソースおよびターゲットインスタンスタイプ
クラウドプロバイダー |
ソース |
ターゲット端 |
|---|---|---|
| AWS | OceanBase Oracle Compatible(トランザクション型) | RDS Oracle |
| AWS | OceanBase Oracle Compatible(トランザクション型) | 自社構築Oracle |
| 华为云 | OceanBase Oracle Compatible(トランザクション型) | 自社構築Oracle |
| 腾讯云 | OceanBase Oracle Compatible(トランザクション型) | 自社構築Oracle |
| Alibaba Cloud | OceanBase Oracle Compatible(トランザクション型) | 自社構築Oracle |
操作手順
データ移行タスクを新規作成します。

OceanBase Cloudコンソールにログインします。
左側のナビゲーションペインで、データサービス > データ移行 をクリックします。
データ移行 ページで、データ移行 タブをクリックします。
データ移行 タブで、右上の タスクを作成する をクリックします。
タスク名を編集するテキストボックスに、カスタムの移行タスク名を入力します。
中国語、数字、英字の組み合わせを使用することをお勧めします。名前にはスペースを含めることができず、長さは64文字を超えてはなりません。
ソースとターゲットを設定する ページで、各パラメータを設定します。
ソース エリアで、各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合、ソース の右側にある クイックフィル をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択完了後、ソースエリアの各設定は自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、ソース エリアの右上にある 保存 アイコンをクリックします。
また、クイックフィル のドロップダウンリストで データソースの管理 をクリックすると、データソース ページに移動し、データソースの表示や管理ができます。この記事では異なる種類のデータソースを一元的に管理します。詳細については、データソースモジュールのドキュメントをご参照ください。
パラメータ説明クラウドベンダー 現在、AWS、Huaweiクラウド、Alibaba Cloud、テンセント・クラウド をサポートしています。 データベースタイプ ソースを OceanBase Oracle Compatible に選択します。 インスタンスタイプ クラスタインスタンス(トランザクション) と 自己管理型データベース が含まれます。現在、クラスタインスタンス(トランザクション) のデータからOracleデータベースへの移行のみをサポートしています。 リージョン ソースデータベースのリージョンを選択します。 インスタンス OceanBaseデータベースのOracle互換モードテナントが存在するインスタンスのIDまたは名前です。インスタンス ページで、対象インスタンスのIDまたは名前を確認できます。 説明
クラウドベンダーがAlibaba Cloudの場合、アカウント間認証をサポートするAlibaba Cloudのメインアカウントインスタンスの選択も可能です。詳細については、Alibaba Cloudアカウント認証をご参照ください。
テナント OceanBaseデータベースのOracle互換モードテナントのIDまたは名前です。インスタンス ページで、対象インスタンスを展開し、そのインスタンス下の対象テナントのIDまたは名前を確認できます。 データベースアカウント データ移行用のOceanBaseデータベースOracle互換モードテナントのユーザー名。 パスワード データベースユーザーのパスワード。 ターゲット エリアで、各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合、ターゲット の右側にある クイックフィル をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択完了後、ターゲットエリアの各設定は自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、ターゲット側 エリアの右上にある 保存 アイコンをクリックします。
また、クイックフィル のドロップダウンリストで データソースの管理 をクリックすると、データソース ページに移動し、データソースの表示や管理ができます。この記事では異なる種類のデータソースを一元的に管理します。詳細については、データソースモジュールのドキュメントをご参照ください。
パラメータ説明クラウドプロバイダー 現在、AWS、Huaweiクラウド、Alibaba Cloud、および テンセント・クラウド をサポートしています。ソースと同じクラウドプロバイダーを選択することも、異なるクラウド間でのデータ移行も可能です。 説明
現在、クラウド間のデータ移行機能はデフォルトで利用できません。この機能を使用する場合は、OB Cloudのテクニカルサポートにお問い合わせください。
データベースタイプ ターゲットを Oracle として選択します。 インスタンスタイプ - クラウドベンダー を AWS に設定した場合、インスタンスタイプは RDS Oracle と セルフマネージドオラクル が含まれます。
- クラウドベンダー を Huawei Cloud、Alibaba Cloud、または テンセント・クラウド に設定した場合、インスタンスタイプは セルフホスト型Oracle のみをサポートします。
リージョン ターゲットデータベースのリージョンを選択します。 接続タイプ エンドポイント と パブリックIP が含まれます。 - エンドポイント 接続方式を選択した場合、ページに表示されている権限付与されたアカウントIDをエンドポイントサービスのホワイトリストに追加し、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようにする必要があります。詳細については、プライベートネットワークホワイトリストの追加をご参照ください。
- パブリックIP 接続方式を選択した場合、ページに表示されているデータソースIPアドレスをOracleデータベースインスタンスのホワイトリストに追加して接続性を確保する必要があります。詳細については、パブリックネットワークホワイトリストの追加をご参照ください。
説明
ソースとターゲットのリージョンを選択すると、ページにはホワイトリストに追加する必要があるデータソースIPアドレスが表示されます。
接続情報 - 接続タイプ を エンドポイント に設定した場合、エンドポイントサービス名を入力してください。
- 接続タイプ を パブリックIP に設定した場合、データベースホストのIPアドレスとポート番号を入力してください。
Service Name OracleデータベースのService名。 データベースアカウント データ移行に使用するOracleデータベースのユーザー名。 パスワード データベースユーザーのパスワード。
テストして続行 をクリックします。
エンドポイント接続リクエストを受け入れない場合、接続テストに失敗します。ポップアップウィンドウの指示に従って操作してください。
クラウドベンダー を AWS に設定した場合、AWSコンソールにアクセスして、受信したエンドポイント接続リクエストに対して エンドポイント接続リクエストを受け入れる 操作を実行する必要があります。
クラウドベンダー を Huawei Cloud に設定した場合、接続管理 タブにアクセスして、接続承認を受け入れる必要があります。詳細については、エンドポイントサービスの接続承認の管理をご参照ください。
クラウドベンダー を テンセント・クラウド に設定した場合、エンドポイント タブにアクセスして、エンドポイントの状態接続リクエストを受け入れる必要があります。詳細については、エンドポイント接続の管理をご参照ください。
タイプとオブジェクトの選択 ページで、各パラメータを設定します。
同期トポロジー 領域で、一方向同期 を選択します。
データ移行は 一方向同期 と 双方向同期 をサポートしています。本記事では一方向同期の操作について説明します。双方向同期の詳細については、双方向同期タスクの設定をご参照ください。
移行タイプ 領域で、現在のデータ移行タスクの移行タイプを選択します。
移行タイプ には、スキーマ移行、完全移行、および 増分同期 が含まれます。
パラメータ説明構造移行 構造移行では、文字セットのマッピング関係を自ら定義する必要があります。データ移行は、ソースデータベースのデータ(構造)をターゲットデータベースにコピーするだけで、ソースデータ(構造)に影響を与えません。 フル移行 フル移行タスク開始後、データ移行サービスは、ソースデータベースのテーブルの既存データをターゲット側データベースの対応するテーブルに移行します。 増分同期 増分同期タスク開始後、データ移行は、ソースデータベースで変更されたデータ(追加、変更、削除)をターゲットデータベースの対応するテーブルに同期します。増分同期 には、DML同期 と DDL同期 が含まれ、ニーズに応じてカスタマイズ設定できます。詳細については、DML/DDLのカスタム設定をご参照ください。 移行対象を選択してください エリアで、移行対象の選択方法を設定します。
オブジェクトの指定 と ルールによる一致 の 2 種類の方法で移行対象を選択できます。
移行範囲を選択してください エリアで、移行する対象を選択します。
オブジェクトの指定 を選択した場合、データ移行は データベースオブジェクト と データベース全体 をサポートします。データベース・テーブル移行では、1 つまたは複数のデータベース内のテーブルやビューを移行対象として選択できます。データベース移行では、データベース全体を移行対象として選択できます。あるデータベースでデータベース・テーブル移行を選択した場合、そのデータベースはデータベース移行をサポートしなくなります。あるデータベースでデータベース移行を選択した場合、そのデータベースはデータベース・テーブル移行をサポートしなくなります。
データベースオブジェクト または データベース全体 を選択した後、左側で移行する対象を選択し、> をクリックして右側のリストに追加します。
データ移行は、テキストをインポートしてオブジェクトを追加することをサポートしており、ターゲット側のオブジェクトの名前変更、行フィルタリングの設定、列情報の表示、および単一またはすべての移行オブジェクトの削除などの操作もサポートしています。

説明
データベース移行 を選択した場合:
右側のリストにはデータベース名のみが表示され、具体的なオブジェクトは表示されません。
増分同期-DDL同期 移行タイプを選択した場合、ソース側で新規作成されたテーブルはターゲット側に同期されます。
操作説明オブジェクトのインポート 選択エリアの右側のリストで、右上の インポート対象 をクリックします。詳細については、移行オブジェクトのインポートをご参照ください。 名前の変更 データ移行は、移行オブジェクトの名前を変更することをサポートしています。詳細については、データベース・テーブルの名前変更をご参照ください。 行のフィルタリング データ移行は WHERE条件を使用した行のフィルタリングをサポートしています。詳細については、SQL条件でのデータフィルタリングをご参照ください。また、列を表示 エリアで、移行オブジェクトの列情報を確認できます。削除/すべてクリア データ移行では、データマッピング時に、一時的にターゲット側に選択された単一または複数のオブジェクトを削除する操作をサポートしています。 - 単一の移行オブジェクトの削除
選択エリアの右側のリストで、対象オブジェクトの後ろにある 削除 アイコンをクリックすると、その移行オブジェクトを削除できます。 - すべての移行オブジェクトの削除
選択エリアの右側のリストで、右上の すべてクリア をクリックします。ダイアログボックスで、OK をクリックすると、すべての移行オブジェクトが削除されます。
ルールによる一致 を選択した場合、詳細については データベース間のマッチングルールの設定をご参照ください。
次へ をクリックします。移行オプション ページで、各パラメータを設定します。
フル移行
タイプとオブジェクトの選択 ページで、一方向同期 > 完全移行 を選択した場合にのみ、以下のパラメータが表示されます。
パラメータ説明読み取り並列設定 このパラメータは、フル移行段階でソース側からデータを読み取る並列数を設定します。最大制限は512です。並列数が高すぎると、ソース側の負荷が過大になり、業務に影響を与える可能性があります。 書き込み並列設定 このパラメータは、フル移行段階でターゲット側にデータを書き込む並列数を設定します。最大制限は512です。並列数が高すぎると、ターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 フル移行レートの制限を有効にするかどうか 実際のニーズに応じて、フル移行レートの制限を有効にするかどうかを決定できます。有効にする場合は、ソース側読み取りRPS(フル移行段階で1秒間にソース側から読み取れる行数の最大制限)、ソース側読み取りBPS(フル移行段階で1秒間にソース側から読み取れるストリーム量の最大制限)、ターゲット側書き込みRPS(フル移行段階で1秒間にターゲット側に書き込める行数の最大制限)、ターゲット側書き込みBPS(フル移行段階で1秒間にターゲット側に書き込めるストリーム量の最大制限)を設定してください。 説明
ここで設定されたRPSとBPSは、速度制限とトラフィック制限の能力としてのみ機能します。フル移行で実際に達成可能な性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因によって制限されます。
ターゲット側テーブルオブジェクトにレコードが存在する場合の処理ポリシー 処理ポリシーには、移行を停止する と 無視する が含まれます: - 移行を停止する を選択した場合、ターゲット側テーブルオブジェクトにデータが存在すると、フル移行はエラーとして「移行は許可されません」と表示されます。ターゲット側のデータを適切に処理してから、移行を続けてください。
注意
エラー発生後に「復元」をクリックすると、データ移行はこの設定オプションを無視し、テーブルデータの移行を続けます。慎重に操作してください。
- 無視する を選択した場合、ターゲット側テーブルオブジェクトにデータが存在し、元のデータと書き込むデータが競合すると、データ移行は競合データをログに記録し、元のデータを変更せずに書き込むポリシーを採用します。
インデックスの後付けを許可するかどうか インデックスの後付け機能は、フル移行の所要時間を短縮できます。ここでは、フルデータ移行完了後にインデックスを作成することを許可するかどうかを設定します。インデックスの後付けを選択する際の注意事項については、表の下部の説明をご参照ください。 注意
移行タイプの選択 ページで、構成移行 と フル移行 の両方を選択した場合にのみ、このオプションを設定できます。
- 後付けできるのは、非一意キーインデックスのみです。
インデックスの後付けを許可する場合、OceanBaseデータベースのハードウェア条件と現在の業務トラフィック状況に基づいて、CLIツールを使用して以下のビジネステナントパラメータを調整することを推奨します。
// ファイルメモリバッファサイズの制限 ALTER SYSTEM SET _temporary_file_io_area_size = '10' tenant = 'xxx'; // OceanBaseデータベースV4.xでのレート制限の無効化 ALTER SYSTEM SET sys_bkgd_net_percentage = 100;- 移行を停止する を選択した場合、ターゲット側テーブルオブジェクトにデータが存在すると、フル移行はエラーとして「移行は許可されません」と表示されます。ターゲット側のデータを適切に処理してから、移行を続けてください。
増分同期
タイプとオブジェクトの選択 ページで、一方向同期 > 増分同期 を選択した場合、以下のパラメータが表示されます。
パラメータ説明書き込み並列設定 このパラメータは、増分同期段階でターゲット側にデータを書き込む並列数を設定します。最大制限は512です。並列数が高すぎると、ターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 増分移行レートの制限を有効にするかどうか 実際のニーズに応じて、増分同期レートの制限を有効にするかどうかを決定できます。有効にする場合は、ターゲット側書き込みRPS(増分同期段階で1秒間にターゲット側に同期できるデータ行数の最大値の制限)とターゲット側書き込みBPS(増分同期段階で1秒間にターゲット側に同期できるストリーム量の最大値の制限)を設定してください。 説明
ここで設定されたRPSとBPSは、速度制限とトラフィック制限の能力としてのみ機能します。増分同期で実際に達成可能な性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因によって制限されます。
増分同期開始時刻 - 移行タイプの選択時に 完全移行 を選択した場合、このパラメータは表示されません。
- 移行タイプの選択時に 完全移行 を選択せず、増分同期 を選択した場合は、この時点以降のデータを移行する時刻を指定してください。デフォルトは現在のシステム時刻です。増分同期の開始時刻の設定をご参照ください。
次へ をクリックすると、システムはデータ移行タスクの事前チェックを実行します。
事前チェック プロセスでは、データ移行はデータベースユーザーの読み書き権限、データベースのネットワーク接続などが要件を満たしているかどうかをチェックします。すべてのチェックタスクが通過した場合にのみ、データ移行タスクを開始できます。事前チェックでエラーが発生した場合:
問題を調査・処理した後、事前チェックを再実行し、事前チェックが成功するまで繰り返すことができます。
失敗した事前チェック項目の操作列にある スキップ をクリックすることもできます。これにより、この操作をスキップする具体的な影響を示すダイアログボックスがポップアップ表示されます。スキップしてもよいことを確認したら、ダイアログボックス内の OK をクリックしてください。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページに進んで購入します。
購入が成功すると、データ移行タスクを開始できます。購入の詳細については、データ移行インスタンスの購入をご参照ください。データ移行インスタンスの購入が一時的に不要な場合は、保存 をクリックして、データ移行タスクの詳細ページに移動してください。その後、必要に応じて手動で購入できます。
データ移行の詳細ページの右上隅にある 検証タスクの設定 をクリックすると、ソースデータベースとターゲットデータベースのデータの差異を比較できます。詳細については、データ検証タスクの新規作成をご参照ください。
データ移行サービスは、データ移行タスクの実行中に移行オブジェクトを変更することをサポートしています。詳細については、移行オブジェクトの表示と変更をご参照ください。データ移行タスクは開始後、選択した移行タイプに従って順次実行されます。詳細については、データ移行タスクの詳細の表示の「移行の詳細を見る」モジュールの内容をご参照ください。