PostgreSQLデータベースからOceanBaseデータベース(MySQL互換モードおよびOracle互換モードを含む)へのデータ移行タスクを新規作成し、構造移行、全量移行、増分同期を通じて、ソースデータベースの既存業務データと増分データをターゲットデータベースにシームレスに移行できます。
注意
データ移行タスクが長期間非アクティブ状態(タスクステータスが 失敗、一時停止、または 完了 の場合)にあると、増分ログの保持期間などの影響でタスクが復元できない可能性があります。データ移行システムは、非アクティブ状態が7日を超えるタスクを自動的に解放し、関連リソースを回収します。タスクに対してアラートを設定し、タスク関連の異常を速やかに処理することを推奨します。
前提条件
ソース側のデータベースインスタンスが作成済みであること。
ターゲット側のOceanBaseデータベースのクラスタとテナントが作成済みであること。詳細については、インスタンスの作成および新規テナントの作成をご参照ください。
ソース側とターゲット側に、データ移行専用のデータベースユーザーを作成し、関連する権限を付与していること。詳細については、ユーザー権限の説明をご参照ください。
増分同期を実行する場合は、以下の事前操作を完了してください:
増分同期では、デフォルトでDDLの自動キャプチャはサポートされていません。ソース側でDDLが実行された場合、DDL情報が欠けているためデータ転送中にDMLが正しく解析できなくなる可能性があります。DMLの正常な解析とDDLの同期をサポートするために、対応するトリガーとDDLステートメントを記録するテーブルを作成する必要があります。詳細については、トリガーの作成をご参照ください。
増分同期を有効にした後、wal_levelパラメータはlogicalに設定する必要があります。自社構築のPostgreSQLについては、自社構築PostgreSQLインスタンスのログレベルの変更をご参照ください。
制限事項
データ移行タスクの新規作成は、プロジェクトロールが プロジェクトオーナー、プロジェクト管理者、または データサービス管理者 のユーザーのみがサポートします。
ソースデータベースの操作制限
構造移行およびフル移行段階では、データベースまたはテーブル構造変更のDDL操作を実行しないでください。そうしないと、データ移行タスクが中断する可能性があります。
現在、データ移行はPostgreSQLデータベースV10.x、V11.x、V12.x、V13.x、およびOceanBaseデータベース(MySQL互換モードおよびOracle互換モードを含む)V2.x、V3.x、V4.xをサポートしています。
データ移行サービスは、PostgreSQLデータベースのパーティションテーブル、unloggedテーブル、および一時テーブルの移行をサポートしていません。
データ移行サービスは、PostgreSQLデータベースの主キーテーブルおよびNOT NULL UNIQUEキーテーブルからOceanBaseデータベースへの移行をサポートしています。
データ移行サービスは、データベース名、テーブル名、列名がASCIIコードであり、特殊文字(.|"'`()=;/& および改行を含む)を含まないオブジェクトの移行のみをサポートしています。
データ移行サービスは、ターゲット側にトリガー(Trigger)が存在する場合をサポートしていません。トリガーが存在すると、データ移行が失敗する可能性があります。
注意点
増分同期を有効にした後、テーブルレベルレプリケーション識別子
REPLICA IDENTITYの要件は以下のとおりです:オブジェクトの指定 エントリを使用して移行オブジェクトを選択した場合、指定したテーブルには主キーが存在するか、テーブルレベルレプリケーション識別子
REPLICA IDENTITYがFULLである必要があります。そうでない場合、業務データの更新・削除操作が失敗します。マッチングルール エントリを使用して移行オブジェクトを選択した場合、PostgreSQLデータベースは選択したデータベースのすべてのテーブル(選択済みテーブル、未選択テーブル、新規テーブルを含む)を購読している必要があり、すべてのテーブルには主キーが存在するか、テーブルレベルレプリケーション識別子
REPLICA IDENTITYがFULLである必要があります。そうでない場合、業務データの更新・削除操作が失敗します。ソース側とターゲット側の主キーまたは一意キーが完全に一致しない場合、対応するテーブルのテーブルレベルレプリケーション識別子
REPLICA IDENTITYは FULL になります。PostgreSQLのdefaultモードは完全な先行イメージを返さないため、データ移行はデータ品質を確保するために対応するテーブルを直列処理し、増分同期の効率に影響を与えます。そのため、すべてのテーブルのテーブルレベルレプリケーション識別子
REPLICA IDENTITYを FULL に設定することを推奨します。
テーブルレベルレプリケーション識別子
REPLICA IDENTITYを FULL に変更するコマンドは以下のとおりです。注意
移行するテーブルオブジェクトに行フィルタ条件が設定されている場合、対応するテーブルで
FULLモードを有効にする必要があります。ALTER TABLE table_name REPLICA IDENTITY FULL;PostgreSQLデータベースのデータをOceanBaseデータベースのOracle互換モードに移行する場合(スキャラー移行または増分DDL)、テーブル名やフィールド名はデータ移行サービスのデフォルトポリシーに従って大文字に変換されます。例えば、ソース側のテーブル名がaの場合、ターゲット側ではデフォルトでAに変換されます。テーブル名やフィールド名はa、A、または“A”のいずれかの形式で使用できますが、“a”の形式では使用できません。
PostgreSQLデータベースの増分コンポーネントは、自動的にpublicationとslotを作成しますが、PostgreSQLデータベースのログファイルのディスク使用状況を監視する必要があります。データ移行サービスはデフォルトで10分ごとに、更新されたslotのconfirmed_flush_lsnが10分前のlsnであることを通知するため、各増分コンポーネントは少なくとも10分以上のPostgreSQLデータベースログファイルを保持します。
説明
通知の間隔や、PostgreSQLデータベースがどの程度古いログファイルをクリーンアップできるかを変更する必要がある場合は、テクニカルサポートにお問い合わせください。
データ移行中に、slotの存在によりPostgreSQLデータベースのログファイルをクリーンアップできない場合は、データ移行タスクを完全に削除してから、PostgreSQLデータベースのログをクリーンアップする必要があります。 PostgreSQLデータベースのログファイルが回収できるかどうかは、すべてのslotの中で最も古いslotのrestart_lsnがログファイルの範囲内にあるかどうかによって決まります。
テーブルに主キーがない場合、またはすべての列がNOT NULLの一意キーを持つ場合、データをターゲット側に移行する際に重複データが発生する可能性があります。
ソース側の文字セットがUTF-8の場合、ターゲット側ではソース側と互換性のある文字セット(例:UTF-8、UTF-16など)を使用することを推奨します。これにより、文字セットの不互換性によるターゲット側での文字化けなどの問題を回避できます。
データ移行サービスのDECIMAL、FLOAT、DATETIMEなどの列型の移行精度が期待通りであるか確認してください。ターゲット側のフィールド型の精度がソース側のフィールド型の精度より低い場合、切り捨てが発生し、ソース側とターゲット側のデータが一致しなくなる可能性があります。
ターゲット側の一意インデックスを変更する場合は、データ移行タスクを再起動する必要があります。そうでない場合、データの不整合が発生する可能性があります。
ノード間の時刻同期の不具合、またはクライアント端末とサーバー間の時刻同期の不具合により、増分同期の遅延時間が正確でない場合があります。
例えば、時計が標準時より進んでいる場合、遅延時間が負の値になる可能性があります。時計が標準時より遅れている場合、遅延が発生する可能性があります。
データベース・テーブルの集約シナリオにおいて:
ソース側とターゲット側の関係をマッピングするには、マッチングルールの使用を推奨します。
ターゲット側でのテーブル構造の作成は、手動で行うことを推奨します。データ移行サービスを使用して作成する場合は、スキャラー移行の手順で失敗したオブジェクトをスキップしてください。
ソース側とターゲット側のテーブル構造が完全に一致しない場合、データの不整合が発生する可能性があります。現在判明しているシナリオは以下のとおりです:
ユーザーが手動でテーブル構造を作成する際、データ移行のサポート範囲を超えると、暗黙的な変換が発生し、ソース側とターゲット側の列の型が一致しなくなる可能性があります。
ターゲット側のデータ長がソース側のデータ長より短い場合、データが切り捨てられ、ソース側とターゲット側のデータが一致しなくなる可能性があります。
新規データ移行タスクの作成時に、増分同期 のみを設定した場合、データ移行ではソースデータベースのローカル増分ログを48時間以上保存することが求められます。
新規データ移行タスクの作成時に、完全移行 + 増分同期 を設定した場合、データ移行ではソースデータベースのローカル増分ログを少なくとも7日間以上保持することが求められます。そうでない場合、増分ログを取得できないためデータ移行タスクが失敗したり、ソース側とターゲット側のデータが一致しなくなったりする可能性があります。
ソース側またはターゲット側に大文字小文字のみが異なるテーブルオブジェクトが存在する場合、ソース側またはターゲット側の大文字小文字不感応により、データ移行の結果が期待通りにならない可能性があります。
一意制約列がNULL値を許容する場合、データ損失が発生する可能性があります。PostgreSQLデータベースからOceanBaseデータベースに複数のNULL値を同期する際、最初のNULL値のみが正常に挿入され、その後のNULL値は一意制約列の競合により破棄されます。
サポートされているソースおよびターゲットインスタンスの種類
クラウドプロバイダー |
ソース |
ターゲット |
|---|---|---|
| AWS | 自社構築 PostgreSQL | OceanBase MySQL Compatible(トランザクション型) |
| AWS | 自社構築 PostgreSQL | OceanBase MySQL Compatible(自社構築データベース) |
| AWS | RDS PostgreSQL | OceanBase MySQL Compatible(トランザクション型) |
| AWS | RDS PostgreSQL | OceanBase MySQL Compatible(自社構築データベース) |
| AWS | Aurora PostgreSQL | OceanBase MySQL Compatible(トランザクション型) |
| AWS | Aurora PostgreSQL | OceanBase MySQL Compatible(自社構築データベース) |
| AWS | 自社構築 PostgreSQL | OceanBase Oracle Compatible(トランザクション型) |
| AWS | 自社構築 PostgreSQL | OceanBase Oracle Compatible(自社構築データベース) |
| AWS | RDS PostgreSQL | OceanBase Oracle Compatible(トランザクション型) |
| AWS | RDS PostgreSQL | OceanBase Oracle Compatible(自社構築データベース) |
| AWS | Aurora PostgreSQL | OceanBase Oracle Compatible(トランザクション型) |
| AWS | Aurora PostgreSQL | OceanBase Oracle Compatible(自社構築データベース) |
| 华为云 | 自社構築 PostgreSQL | OceanBase MySQL Compatible(トランザクション型) |
| 华为云 | 自社構築 PostgreSQL | OceanBase MySQL Compatible(自社構築データベース) |
| 华为云 | RDS PostgreSQL | OceanBase MySQL Compatible(トランザクション型) |
| 华为云 | RDS PostgreSQL | OceanBase MySQL Compatible(自社構築データベース) |
| 华为云 | 自社構築 PostgreSQL | OceanBase Oracle Compatible(トランザクション型) |
| 华为云 | 自社構築 PostgreSQL | OceanBase Oracle Compatible(自社構築データベース) |
| 华为云 | RDS PostgreSQL | OceanBase Oracle Compatible(トランザクション型) |
| 华为云 | RDS PostgreSQL | OceanBase Oracle Compatible(自社構築データベース) |
| 腾讯云 | 自社構築 PostgreSQL | OceanBase MySQL Compatible(トランザクション型) |
| 腾讯云 | 自社構築 PostgreSQL | OceanBase MySQL Compatible(自社構築データベース) |
| 腾讯云 | TencentDB for PostgreSQL | OceanBase MySQL Compatible(トランザクション型) |
| 腾讯云 | TencentDB for PostgreSQL | OceanBase MySQL Compatible(自社構築データベース) |
| 腾讯云 | 自社構築 PostgreSQL | OceanBase Oracle Compatible(トランザクション型) |
| 腾讯云 | 自社構築 PostgreSQL | OceanBase Oracle Compatible(自社構築データベース) |
| 腾讯云 | TencentDB for PostgreSQL | OceanBase Oracle Compatible(トランザクション型) |
| 腾讯云 | TencentDB for PostgreSQL | OceanBase Oracle Compatible(自社構築データベース) |
| Alibaba Cloud | 自社構築 PostgreSQL | OceanBase MySQL Compatible(トランザクション型) |
| Alibaba Cloud | 自社構築 PostgreSQL | OceanBase MySQL Compatible(自社構築データベース) |
| Alibaba Cloud | RDS PostgreSQL | OceanBase MySQL Compatible(トランザクション型) |
| Alibaba Cloud | RDS PostgreSQL | OceanBase MySQL Compatible(自社構築データベース) |
| Alibaba Cloud | 自社構築 PostgreSQL | OceanBase Oracle Compatible(トランザクション型) |
| Alibaba Cloud | 自社構築 PostgreSQL | OceanBase Oracle Compatible(自社構築データベース) |
| Alibaba Cloud | RDS PostgreSQL | OceanBase Oracle Compatible(トランザクション型) |
| Alibaba Cloud | RDS PostgreSQL | OceanBase Oracle Compatible(自社構築データベース) |
データ型のマッピング
PostgreSQLデータベースからOceanBaseデータベースのMySQL互換モードへのデータ型マッピング
PostgreSQLデータベースOceanBaseデータベース MySQL互換モードINT INTEGER INT2 SMALLINT INT4 INTEGER INT8 BIGINT SMALLINT SMALLINT INTEGER INTEGER BIGINT BIGINT DECIMAL(M, D) DECIMAL NUMERIC(M, D) NUMERIC Mの最大値は65、Dの最大値は30です。Dを省略した場合、デフォルトで0になります。Mを省略した場合、デフォルトで10になります
SMALLSERIAL SMALLINT SERIAL INTEGER BIGSERIAL BIGINT REAL FLOAT FLOAT FLOAT/DOUBLE FLOAT4 FLOAT FLOAT8 DOUBLE DOUBLE PRECISION DOUBLE CHAR PostgreSQLの長さ <=10485760、指定しない場合は長さが1になります
CHAR/LONGTEXT OceanBaseの列長は0〜255の値を指定できます
VARCHAR PostgreSQLの長さ <=10485760、指定しない場合は任意の長さを受け付けます
VARCHAR/LONGTEXT VARCHAR列の長さは0〜65535の値を指定できます
CHARACTER VARYING PostgreSQLの長さ <=10485760、指定しない場合は任意の長さを受け付けます
VARCHAR/LONGTEXT CHAR VARYING PostgreSQLの長さ <=10485760、指定しない場合は任意の長さを受け付けます
VARCHAR/LONGTEXT DATE DATE TIME [(p)] [WITHOUT TIME ZONE] TIME TIME [(p)] [WITH TIME ZONE] pは小数点の精度を表し、値の範囲は0〜6です
TIME TIMESTAMP [(p)] [WITHOUT TIME ZONE] DATETIME TIMESTAMP [(p)] WITH TIME ZONE TIMESTAMP INTERVAL [ fields ] [ (p) ] TIME BOOLEAN BOOLEAN UUID VARCHAR(36) MONEY DECIMAL(19,2) CIDR VARCHAR(43) INET VARCHAR(43) MACADDR VARCHAR(17) MACADDR8 VARCHAR(23) BYTEA LONGBLOB BIT BIT TEXT LONGTEXT TSVECTOR LONGTEXT TSQUERY LONGTEXT XML LONGTEXT JSON TEXT/JSON OceanBaseデータベースMySQL互換モードV3.2.2以降では、JSONに変換されます
POINT POINT OceanBaseデータベースMySQL互換モードV3.2.4およびV4.1.0でのみサポートされています
LINE LINESTRING OceanBaseデータベースMySQL互換モードV3.2.4およびV4.1.0でのみサポートされています
LSEG LINESTRING OceanBaseデータベースMySQL互換モードV3.2.4およびV4.1.0でのみサポートされています
BOX POLYGON OceanBaseデータベースのMySQL互換モードV3.2.4およびV4.1.0でのみサポート
PATH LINESTRING OceanBaseデータベースのMySQL互換モードV3.2.4およびV4.1.0でのみサポート
POLYGON POLYGON OceanBaseデータベースのMySQL互換モードV3.2.4およびV4.1.0でのみサポート
CIRCLE POLYGON OceanBaseデータベースのMySQL互換モードV3.2.4およびV4.1.0でのみサポート
PostgreSQLデータベースからOceanBaseデータベースのOracle互換モードへのデータ型マッピング
PostgreSQLデータベースOceanBaseデータベース Oracle互換モードINT NUMBER(11,0) INT2 NUMBER(6,0) INT4 NUMBER(11,0) INT8 NUMBER(20,0) SMALLINT NUMBER(6,0) INTEGER NUMBER(11,0) BIGINT NUMBER(20,0) DECIMAL(M, D) NUMBER(M,D) Mの取り得る値は[1,38]、Dの取り得る値は[-84,127]
NUMERIC(M, D) NUMBER(M,D) - ソース側M > 38の場合、ターゲット側M = 38
- ソース側D > 38の場合、ターゲット側D = 19
- ソース側D < -84の場合、ターゲット側D = -84
SMALLSERIAL NUMBER(6,0) SERIAL NUMBER(11,0) BIGSERIAL NUMBER(20,0) REAL BINARY_FLOAT FLOAT FLOAT/BINARY_DOUBLE FLOAT4 FLOAT FLOAT8 BINARY_DOUBLE DOUBLE PRECISION BINARY_DOUBLE CHAR | CHARACTER PostgreSQLの長さ <=10485760、指定しない場合は長さが1を意味します
CHAR/CLOB VARCHAR PostgreSQLの長さ <=10485760、指定しない場合は任意の長さを受け付け、ターゲット側ではCLOBに変換されます
VARCHAR2/CLOB CHARACTER VARYING PostgreSQLの長さ <=10485760、指定しない場合は任意の長さを受け付けます
VARCHAR2/CLOB CHAR VARYING PostgreSQLの長さ <=10485760、指定しない場合は任意の長さを受け付けます
VARCHAR2/CLOB DATE DATE TIME [(p)] [WITHOUT TIME ZONE] TIMESTAMP(p) TIME [(p)] [WITH TIME ZONE] TIMESTAMP(p) WITH TIME ZONE TIMESTAMP [(p)] [WITHOUT TIME ZONE] TIMESTAMP(p) ソース側のp > 9の場合、ターゲット側のp = 9
TIMESTAMP [(p)] WITH TIME ZONE TIMESTAMP(P) WITH TIME ZONE ソース側のp > 9の場合、ターゲット側のp = 9
INTERVAL [ fields ] [ (p) ] DATE BOOLEAN NUMBER(1) UUID VARCHAR2(36) MONEY NUMBER(19,2) CIDR VARCHAR2(43) INET VARCHAR2(43) MACADDR VARCHAR2(17) MACADDR8 VARCHAR2(23) BYTEA BLOB BIT(n) RAW(n) TEXT CLOB TSVECTOR CLOB TSQUERY CLOB XML CLOB JSON TEXT/JSON OceanBaseデータベースのOracle互換モードV4.1.0以降では、JSONに変換されます
POINT SDO_GEOMETRY OceanBaseデータベースのOracle互換モードV4.2.2以降でサポートされます
LINE SDO_GEOMETRY OceanBaseデータベースのOracle互換モードV4.2.2以降でサポートされます
LSEG SDO_GEOMETRY OceanBaseデータベースのOracle互換モードV4.2.2以降でサポートされます
BOX SDO_GEOMETRY OceanBaseデータベースのOracle互換モードV4.2.2以降でサポートされます
PATH SDO_GEOMETRY OceanBaseデータベースのOracle互換モードV4.2.2以降でサポートされます
POLYGON SDO_GEOMETRY OceanBaseデータベースのOracle互換モードV4.2.2以降でサポートされます
CIRCLE SDO_GEOMETRY OceanBaseデータベースのOracle互換モードV4.2.2以降でサポートされます
操作手順
データ移行タスクを新規作成します。

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

説明
データベース移行を選択した場合、右側のリストにはデータベース名のみが表示され、具体的なオブジェクトは表示されません。
操作説明オブジェクトのインポート 選択エリアの右側のリストで、右上の インポート対象 をクリックします。詳細については、移行オブジェクトのインポートをご参照ください。 名前の変更 データ移行は、移行オブジェクトの名前を変更することをサポートしています。詳細については、データベース・テーブルの名前変更をご参照ください。 行のフィルタリング データ移行は 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は、速度制限とトラフィック制限の能力としてのみ機能します。増分同期で実際に達成可能な性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
増分同期開始時刻 - 移行タイプの選択時に 完全移行 を選択している場合、このパラメータは表示されません。
- 移行タイプの選択時に 完全移行 を選択していないが、増分同期 を選択している場合、デフォルトは増分同期の開始時刻であり、変更はできません。
詳細オプション
ターゲット側のOceanBaseデータベースがV4.3.0以降のバージョンであり、かつ タイプとオブジェクトを選択してください ステップで スキーマ移行 を選択した場合に、このセクションのパラメータが表示されます。

ターゲット側テーブルオブジェクトのストレージタイプには、デフォルト、行ストア、カラムストア、および 行列ハイブリッド型 が含まれます。この設定は、構造移行または増分同期時のターゲット側テーブルオブジェクトのストレージタイプを決定するために使用されます。
説明
デフォルト オプションは、ターゲット側のパラメータ設定に基づいて他のオプションを自動的に適用します。構造移行のテーブルオブジェクトは、設定されたストレージタイプに応じて対応する構造を書き込みます。
事前検証 をクリックすると、システムがデータ移行タスクの事前チェックを実行します。
事前チェック プロセスでは、データ移行はデータベースユーザーの読み書き権限、データベースのネットワーク接続などが要件を満たしているかどうかをチェックします。すべてのチェック項目が合格した場合にのみ、データ移行タスクを開始できます。事前チェックでエラーが発生した場合:
問題を調査・処理した後、事前チェックを再実行し、事前チェックが成功するまで繰り返すことができます。
または、失敗した事前チェック項目の操作列にある スキップ をクリックすることもできます。これにより、この操作をスキップする具体的な影響を示すダイアログボックスがポップアップ表示されます。スキップしてもよいことを確認したら、ダイアログボックス内の わかりました をクリックしてください。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページで購入に進みます。
ご購入が完了しましたら、データ移行タスクを開始できます。購入の詳細については、データ移行インスタンスの購入をご参照ください。データ移行インスタンスの購入が一時的に不要な場合は、保存 をクリックしてデータ移行タスクの詳細ページに移動し、後から必要に応じて手動で購入することができます。
データ移行の詳細ページの右上にある 検証タスクの設定 をクリックすると、ソースデータベースとターゲットデータベースのデータ差異を比較できます。詳細については、データ検証タスクの作成をご参照ください。
データ移行サービスでは、データ移行タスクの実行中に移行オブジェクトを変更できます。詳細については、移行オブジェクトの表示と変更をご参照ください。データ移行タスクが開始されると、選択した移行タイプに従って順次実行されます。詳細については、データ移行タスクの詳細を表示するの「移行の詳細を見る」モジュールの内容をご参照ください。