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 KEYテーブルから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 | Self-managed PostgreSQL | OceanBase MySQL Compatible(Transactional) |
| AWS | Self-managed PostgreSQL | OceanBase MySQL Compatible(Self-managed database) |
| AWS | RDS PostgreSQL | OceanBase MySQL Compatible(Transactional) |
| AWS | RDS PostgreSQL | OceanBase MySQL Compatible(Self-managed database) |
| AWS | Aurora PostgreSQL | OceanBase MySQL Compatible(Transactional) |
| AWS | Aurora PostgreSQL | OceanBase MySQL Compatible(Self-managed database) |
| AWS | Self-managed PostgreSQL | OceanBase Oracle Compatible(Transactional) |
| AWS | Self-managed PostgreSQL | OceanBase Oracle Compatible(Self-managed database) |
| AWS | RDS PostgreSQL | OceanBase Oracle Compatible(Transactional) |
| AWS | RDS PostgreSQL | OceanBase Oracle Compatible(Self-managed database) |
| AWS | Aurora PostgreSQL | OceanBase Oracle Compatible(Transactional) |
| AWS | Aurora PostgreSQL | OceanBase Oracle Compatible(Self-managed database) |
| Huawei Cloud | Self-managed PostgreSQL | OceanBase MySQL Compatible(Transactional) |
| Huawei Cloud | Self-managed PostgreSQL | OceanBase MySQL Compatible(Self-managed database) |
| Huawei Cloud | RDS PostgreSQL | OceanBase MySQL Compatible(Transactional) |
| Huawei Cloud | RDS PostgreSQL | OceanBase MySQL Compatible(Self-managed database) |
| Huawei Cloud | Self-managed PostgreSQL | OceanBase Oracle Compatible(Transactional) |
| Huawei Cloud | Self-managed PostgreSQL | OceanBase Oracle Compatible(Self-managed database) |
| Huawei Cloud | RDS PostgreSQL | OceanBase Oracle Compatible(Transactional) |
| Huawei Cloud | RDS PostgreSQL | OceanBase Oracle Compatible(Self-managed database) |
| Google Cloud | Self-managed PostgreSQL | OceanBase MySQL Compatible(Transactional) |
| Google Cloud | Self-managed PostgreSQL | OceanBase MySQL Compatible(Self-managed database) |
| Google Cloud | Cloud PostgreSQL | OceanBase MySQL Compatible(Transactional) |
| Google Cloud | Cloud PostgreSQL | OceanBase MySQL Compatible(Self-managed database) |
| Google Cloud | Self-managed PostgreSQL | OceanBase Oracle Compatible(Transactional) |
| Google Cloud | Self-managed PostgreSQL | OceanBase Oracle Compatible(Self-managed database) |
| Google Cloud | Cloud PostgreSQL | OceanBase Oracle Compatible(Transactional) |
| Google Cloud | Cloud PostgreSQL | OceanBase Oracle Compatible(Self-managed database) |
| Alibaba Cloud | Self-managed PostgreSQL | OceanBase MySQL Compatible(Transactional) |
| Alibaba Cloud | Self-managed PostgreSQL | OceanBase MySQL Compatible(Self-managed database) |
| Alibaba Cloud | RDS PostgreSQL | OceanBase MySQL Compatible(Transactional) |
| Alibaba Cloud | RDS PostgreSQL | OceanBase MySQL Compatible(Self-managed database) |
| Alibaba Cloud | Self-managed PostgreSQL | OceanBase Oracle Compatible(Transactional) |
| Alibaba Cloud | Self-managed PostgreSQL | OceanBase Oracle Compatible(Self-managed database) |
| Alibaba Cloud | RDS PostgreSQL | OceanBase Oracle Compatible(Transactional) |
| Alibaba Cloud | RDS PostgreSQL | OceanBase Oracle Compatible(Self-managed database) |
データ型のマッピング
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 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でのみサポート
INTERVAL YEAR VARCHAR(64) INTERVAL MONTH VARCHAR(64) INTERVAL DAY VARCHAR(64) INTERVAL HOUR VARCHAR(64) INTERVAL MINUTE VARCHAR(64) INTERVAL SECOND VARCHAR(64) INTERVAL YEAR TO MONTH VARCHAR(64) INTERVAL DAY TO HOUR VARCHAR(64) INTERVAL DAY TO MINUTE VARCHAR(64) INTERVAL DAY TO SECOND VARCHAR(64) INTERVAL HOUR TO MINUTE VARCHAR(64) INTERVAL HOUR TO SECOND VARCHAR(64) INTERVAL MINUTE TO SECOND VARCHAR(64) INTERVAL VARCHAR(64) 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) ] VARCHAR2(50) 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以降では、この型に変換されます。
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以降でサポートされています。
INTERVAL YEAR INTERVAL YEAR TO MONTH INTERVAL MONTH INTERVAL YEAR TO MONTH INTERVAL DAY INTERVAL DAY TO SECOND INTERVAL HOUR INTERVAL DAY TO SECOND INTERVAL MINUTE INTERVAL DAY TO SECOND INTERVAL SECOND INTERVAL DAY TO SECOND INTERVAL YEAR TO MONTH INTERVAL YEAR TO MONTH INTERVAL DAY TO HOUR INTERVAL DAY TO SECOND INTERVAL DAY TO MINUTE INTERVAL DAY TO SECOND INTERVAL DAY TO SECOND INTERVAL DAY TO SECOND INTERVAL HOUR TO MINUTE INTERVAL DAY TO SECOND INTERVAL HOUR TO SECOND INTERVAL DAY TO SECOND INTERVAL MINUTE TO SECOND INTERVAL DAY TO SECOND INTERVAL VARCHAR2(64)
手順
データ移行タスクを新規作成します。
OceanBase Cloudコンソールにログインします。
左側のナビゲーションバーで、データサービス > データ移行 をクリックします。
データ移行 ページで、データ移行 タブをクリックします。
データ移行 タブで、右上の タスクを作成する をクリックします。
タスク名を編集するテキストボックスに、カスタムの移行タスク名を入力します。
中国語、数字、英字の組み合わせを使用することを推奨します。名前にはスペースを含めず、長さは64文字を超えないようにしてください。
ソースとターゲットを設定する ページで、各パラメータを設定します。
ソース セクションで、各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合、ソース の右側にある クイック入力 をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択完了後、ソースエリアの各設定は自動的に入力されます。現在の設定を新しいデータソースとして保存する場合、ソース側 エリアの右上にある 保存 アイコンをクリックしてください。
また、クイック入力 のドロップダウンリストで データソースの管理 をクリックすると、データソース ページに移動し、データソースの表示と管理を行えます。このページでは、異なるタイプのデータソースを一元的に管理できます。詳細については、データソースモジュールのドキュメントを参照してください。
パラメータ説明クラウドベンダー 現在 AWS、Huaweiクラウド、Google Cloud、Alibaba Cloud をサポートしています。 データベースタイプ ソースデータベースのタイプを PostgreSQL に選択します。 インスタンスタイプ - クラウドベンダーを AWS に選択した場合、インスタンスタイプは RDS PostgreSQL、Aurora PostgreSQL、セルフマネージド PostgreSQL をサポートします。
- クラウドベンダーを Huawei Cloud に選択した場合、インスタンスタイプは RDS PostgreSQL と セルフマネージド PostgreSQL をサポートします。
- クラウドベンダーを Google Cloud に選択した場合、インスタンスタイプは Cloud PostgreSQL と セルフマネージド PostgreSQL をサポートします。
- クラウドベンダー を Alibaba Cloud に選択した場合、インスタンスタイプは RDS PostgreSQL と セルフマネージド PostgreSQL をサポートします。
リージョン ソースデータベースのリージョンを選択します。 接続タイプ エンドポイント と パブリックIP が含まれます。 - エンドポイント 接続方式を選択した場合、ページに表示されているアカウントIDをエンドポイントサービスの許可リストに追加する必要があります。これにより、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようになります。詳細については、プライベートネットワーク接続の選択モジュールのドキュメントを参照してください。
- クラウドベンダー を AWS に選択し、エンドポイントサービスの作成時に、エンドポイントの使用を許可する パラメータで 必要 を選択した場合、データ移行サービスが初めてプライベート接続にアクセスする際、AWSコンソールにアクセスし、受信したConnectionsリクエストに対して エンドポイント接続リクエストの受け入れ 操作を行うよう求められます。
- クラウドベンダーを Google Cloud に選択した場合、Published Servicesに認可プロジェクトを追加してください。認可後は、データソースの接続テスト時に手動で認可する必要はありません。
- パブリックネットワーク接続 接続方式を選択した場合、ページに表示されているデータソースIPアドレスをPostgreSQLデータベースインスタンスの許可リストに追加し、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択モジュールのドキュメントを参照してください。
説明
ソースとターゲットのリージョンを選択すると、ページに許可リストに追加する必要があるデータソースIPアドレスが表示されます。
接続情報 - 接続タイプ を エンドポイント に選択した場合、エンドポイントサービス名を入力してください。
- 接続タイプ を パブリックネットワーク接続 に選択した場合、データベースホストのIPアドレスとポート番号を入力してください。
Database Name PostgreSQLデータベースの名前。 データベースアカウント データ移行用のPostgreSQLデータベースのユーザー名。 パスワード データベースユーザーのパスワード。 ターゲット エリアで、各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合、クイック入力 の右側にある ターゲット側 をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択完了後、ターゲットエリアの各設定は自動的に入力されます。現在の設定を新しいデータソースとして保存する場合、ターゲット側 エリアの右上にある 保存 アイコンをクリックしてください。
また、クイック入力 のドロップダウンリストで データソースの管理 をクリックすると、データソース ページに移動し、データソースの表示と管理を行えます。このページでは、異なるタイプのデータソースを一元的に管理できます。詳細については、データソースモジュールのドキュメントを参照してください。
パラメータ説明クラウドプロバイダー 現在、AWS、Huawei Cloud、Google Cloud および Alibaba Cloud をサポートしています。ソースと同じクラウドプロバイダーを選択することも、異なるクラウド間でのデータ移行も可能です。 説明
現在、クラウド間データ移行機能はデフォルトで無効です。この機能を使用する場合は、OceanBase Cloudテクニカルサポートにお問い合わせください。
データベースタイプ 実際の状況に応じて、ターゲット側のデータベースタイプを OceanBase MySQL互換モード または OceanBase Oracle互換モード から選択します。 インスタンスタイプ 現在、クラスタインスタンス(トランザクション) と オンプレデータベース をサポートしています。 リージョン ターゲット側のデータベースが存在するリージョンを選択します。 接続タイプ エンドポイント と パブリック接続 が含まれます。 - エンドポイント 接続方式を選択した場合、ページに表示されているアカウントIDを、エンドポイントサービスの許可リストに追加する必要があります。これにより、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようになります。詳細については、プライベートネットワーク接続の選択 モジュールのドキュメントを参照してください。
- パブリックネットワーク接続 接続方式を選択した場合、ページに表示されているデータソースIPアドレスをOceanBaseデータベースインスタンスの許可リストに追加する必要があります。これにより、接続性が確保されます。詳細については、パブリックネットワーク接続の選択 モジュールのドキュメントを参照してください。
説明
インスタンスタイプがセルフビルドデータベースのみを選択した場合にこのパラメータが表示されます。ソース側とターゲット側のリージョンを選択すると、ページに許可リストに追加する必要があるデータソースIPアドレスが表示されます。
接続情報 インスタンスタイプがセルフビルドデータベースのみを選択した場合にこのパラメータが表示されます。 - 接続タイプ を エンドポイント に選択した場合、エンドポイントサービス名を入力してください。
- 接続タイプ を パブリックネットワーク接続 に選択した場合、データベースホストのIPアドレスとポート番号を入力してください。
インスタンス OceanBaseデータベースが存在するインスタンスのIDまたは名前です。インスタンス ページで、ターゲットインスタンスのIDまたは名前を確認できます。 説明
クラウドプロバイダーがAlibaba Cloudの場合、アカウントをまたいだ権限付与が可能なAlibaba Cloudのメインアカウントインスタンスの選択もサポートしています。詳細については、Alibaba Cloudアカウント認証を参照してください。
テナント OceanBaseデータベースのテナントIDまたは名前です。インスタンス ページで、ターゲットインスタンスを展開し、そのインスタンス下のターゲットテナントのIDまたは名前を確認できます。 データベースアカウント データ移行用のOceanBaseデータベースのユーザー名。 パスワード データベースユーザーのパスワード。 インスタンスタイプ を オンプレデータベース に設定した場合、実際の状況に応じて高度な設定を有効にするかどうかを決定できます。
注意
新規作成した移行タスクで増分同期が必要な場合は、sysテナントアカウントと増分ログプロキシサービスを同時に有効にしてください。
パラメータ説明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ツールを使用して以下のビジネステナントパラメータを調整することを推奨します。
// File memory buffer size limit ALTER SYSTEM SET _temporary_file_io_area_size = '10' tenant = 'xxx'; // Disable throttling for OceanBase Database V4.x ALTER SYSTEM SET sys_bkgd_net_percentage = 100;- 移行の停止 を選択した場合、ターゲット側のテーブルオブジェクトにデータが存在すると、フル移行はエラーとして移行を許可しないと報告します。ターゲット側のデータを適切に処理してから、移行を続行してください。
増分同期
サブスクリプションタイプとオブジェクトを選択する ステップで、一方向同期 > 増分同期 を選択した場合にのみ、以下のパラメータが表示されます。
パラメータ説明書き込み並列設定 このパラメータは、増分同期段階でターゲット側にデータを書き込む並列数を設定します。最大値は512です。並列数が高すぎると、ターゲット側の負荷が過大になり、業務に影響を与える可能性があります。 増分移行レートの制限 実際のニーズに応じて、増分同期レートの制限を有効にするかどうかを決定できます。有効にする場合は、ターゲット側の書き込みRPS(増分同期段階で1秒間にターゲット側に同期できるデータ行数の最大値制限)とターゲット側の書き込みBPS(増分同期段階で1秒間にターゲット側に同期できる流量の最大値制限)を設定してください。 説明
ここで設定されたRPSとBPSは、速度制限とトラフィック制限の能力としてのみ機能します。増分同期が実際に達成できる性能は、ソース側、ターゲット側、インスタンス仕様の設定などの要因の影響を受けます。
増分同期開始時刻 - 移行タイプとして フル移行 を選択した場合、このパラメータは表示されません。
- 移行タイプとして フル移行 は選択されていないが、増分同期 が選択されている場合、デフォルトで増分同期の開始時刻が設定され、変更はできません。
詳細オプション
ターゲット側のOceanBaseデータベースがV4.3.0以降のバージョンであり、かつ サブスクリプションタイプとオブジェクトを選択する ステップで スキーマ移行 を選択した場合にのみ、このセクションのパラメータが表示されます。
ターゲット側テーブルオブジェクトのストレージタイプには、デフォルト、行ストア、カラムストア、および 行列ハイブリッド型 が含まれます。この設定は、構造移行または増分同期時のターゲット側テーブルオブジェクトのストレージタイプを決定するために使用されます。
説明
デフォルト オプションは、ターゲット側のパラメータ設定に応じて他のオプションを適応させるものであり、構造移行のテーブルオブジェクトが設定されたストレージタイプに従って対応する構造を書き込むことを意味します。
事前確認 をクリックすると、システムがデータ移行タスクの事前チェックを実行します。
事前検証 プロセスでは、データ移行はデータベースユーザーの読み書き権限、データベースのネットワーク接続などが要件を満たしているかどうかをチェックします。すべてのチェック項目が合格した場合にのみ、データ移行タスクを開始できます。事前チェックでエラーが発生した場合:
問題を調査・処理した後、事前チェックが成功するまで再度実行することができます。
失敗した事前チェック項目の操作列にある スキップ をクリックすることもできます。これにより、その操作をスキップする具体的な影響を示すダイアログボックスがポップアップ表示されます。スキップしてもよいことを確認したら、ダイアログボックス内の OK をクリックしてください。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページに移動して購入します。
購入が成功すると、データ移行タスクを開始できます。購入の詳細については、データ移行インスタンスの購入を参照してください。データ移行インスタンスの購入が一時的に不要な場合は、保存 をクリックしてデータ移行タスクの詳細ページに移動し、後から必要に応じて手動で購入することができます。
データ移行の詳細ページの右上隅にある 検証タスクの設定 をクリックすると、ソースデータベースとターゲットデータベース間のデータ差異を比較できます。詳細については、新しいデータ検証タスクの作成を参照してください。
データ移行サービスは、データ移行タスクの実行中に移行オブジェクトを変更することをサポートしています。詳細については、移行オブジェクトの表示と変更を参照してください。データ移行タスクが開始されると、選択した移行タイプに従って順次実行されます。詳細については、データ移行タスクの詳細を見るの「移行の詳細を見る」モジュールの内容を参照してください。