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 | 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) |
| 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以降では、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以降でサポートされています
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文字を超えてはなりません。
ソースとターゲットを設定する ページで、各パラメータを設定します。
ソース セクションで、各パラメータを設定します。
既に作成・保存されたデータソースを参照する必要がある場合、ソース の右側にある クイック入力 をクリックし、ドロップダウンリストから対象のデータソースを選択します。選択完了後、ソースエリアの各設定が自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、ソース側 エリアの右上にある 保存 アイコンをクリックします。
クイック入力 のドロップダウンリストで、データソースの管理 をクリックすることもできます。これにより、データソース ページに移動し、データソースの表示と管理を行うことができます。このページでは、異なるタイプのデータソースを一元的に管理できます。詳細については、データソースモジュールのドキュメントを参照してください。
パラメータ説明クラウドプロバイダ 現在、Alibaba Cloud、AWS、および Google Cloud のみをサポートしています。 データベースタイプ データ送信元データベースタイプとして PostgreSQL を選択します。 インスタンスタイプ - クラウドプロバイダを AWS に設定した場合、インスタンスタイプは RDS PostgreSQL、Aurora PostgreSQL、および セルフマネージド PostgreSQL をサポートします。
- クラウドプロバイダを Google Cloud に設定した場合、インスタンスタイプは Cloud PostgreSQL および セルフマネージド PostgreSQL をサポートします。
- クラウドプロバイダを Alibaba Cloud に設定した場合、インスタンスタイプは RDS PostgreSQL および セルフマネージド PostgreSQL をサポートします。
リージョン データ送信元データベースのリージョンを選択します。 接続タイプ エンドポイント と パブリック接続 が含まれます。クラウドベンダー を Alibaba Cloud、AWS、または Google Cloud に設定した場合、ピアリング接続 もサポートされます。 - エンドポイント 接続方式を選択した場合、ページに表示されているアカウントIDをエンドポイントサービスの許可リストに追加し、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようにする必要があります。詳細については、プライベートネットワーク接続の選択モジュールのドキュメントを参照してください。
- クラウドプロバイダ を AWS に設定した場合、エンドポイントサービス作成時に、エンドポイント接続の承諾を要求 パラメータで 必要 を選択した場合、データ移行サービスが初めてプライベート接続にアクセスする際、AWSコンソールにアクセスし、受信したConnectionsリクエストに対して エンドポイント接続リクエストの受け入れ 操作を行うよう求められます。
- クラウドプロバイダを Google Cloud に設定した場合、認可プロジェクトをPublished Servicesに追加してください。認可後は、データソースの接続テスト時に手動で認可する必要はありません。
- パブリックネットワーク接続 接続方式を選択した場合、ページに表示されているデータソースIPアドレスをPostgreSQLデータベースインスタンスの許可リストに追加し、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択モジュールのドキュメントを参照してください。
説明
ソースとターゲットのリージョンを選択すると、ページに許可リストに追加する必要があるデータソースIPアドレスが表示されます。
- ピアリング接続 を選択した場合、ドロップダウンリストから利用可能なピアリング接続を選択し、ページに表示されているIPアドレスをPostgreSQLデータベースインスタンスのセキュリティグループのインバウンドルールまたは許可リストに追加して、接続性を確保してください。具体的な操作については、AWSピアリング接続、Alibaba Cloudピアリング接続、およびGoogle Cloudピアリング接続を参照してください。
ピアリング接続ID 接続タイプが ピアリング接続 の場合にのみ表示されます。ドロップダウンリストから利用可能なピアリング接続を選択します。ドロップダウンリストには、現在のクラウドプロバイダとリージョンが一致し、状態が 接続済み のピアリング接続のみが表示され、対応するVPC IDとCIDRが表示されます。利用可能な接続がない場合、新規作成 をクリックし、新しいタブでデータサービスのピアリング接続を作成できます。 接続情報 - 接続タイプ を エンドポイント に設定した場合、エンドポイントサービス名を入力してください。
- 接続タイプ を パブリックネットワーク接続 に設定した場合、データベースホストのIPアドレスとポート番号を入力してください。
- 接続タイプ を ピアリング接続 に設定した場合、データベースホストのプライベートIPアドレス、またはドメイン名とポート番号を入力してください。
Database Name PostgreSQLデータベースの名前。 データベースアカウント データ移行用のPostgreSQLデータベースのユーザー名。 パスワード データベースユーザーのパスワード。 ターゲット セクションで、各パラメータを設定します。
作成済みのデータソースを参照する必要がある場合は、クイック入力 の右側にある ターゲット側 をクリックし、ドロップダウンリストからターゲットデータソースを選択します。選択後、ターゲット側エリアの各設定は自動的に入力されます。現在の設定を新しいデータソースとして保存する場合は、ターゲット側 エリアの右上にある 保存 アイコンをクリックします。
クイック入力 のドロップダウンリストで データソースの管理 をクリックすると、データソース ページに移動し、データソースの表示と管理ができます。このページでは、異なる種類のデータソースを一元的に管理できます。詳細については、データソース モジュールのドキュメントを参照してください。
パラメータ説明クラウドベンダー 現在、Alibaba Cloud、AWS、および Google Cloud のみサポートされています。ソース側と同じクラウドベンダーを選択することも、クラウドベンダーを跨いだデータ移行も可能です。 説明
現在、クラウドベンダーを跨いだデータ移行機能はデフォルトで利用できません。この機能を使用する場合は、OceanBase Cloudのテクニカルサポートにお問い合わせください。
データベースタイプ 実際の状況に応じて、ターゲット側のデータベースタイプを OceanBase MySQL互換モード または OceanBase Oracle互換モード から選択します。 インスタンスタイプ 現在、クラスタインスタンス(トランザクション) と セルフマネージド型データベース をサポートしています。 リージョン データ送信先のデータベースが配置されるリージョンを選択します。 接続タイプ エンドポイント と パブリックネットワーク接続 が含まれます。クラウドベンダー を Alibaba Cloud、AWS、または Google Cloud に設定した場合、ピアリング接続 もサポートされます。 - エンドポイント 接続方式を選択した場合は、ページに表示されているアカウントIDを、エンドポイントサービスの許可リストに追加して、そのアカウントのエンドポイントがエンドポイントサービスに接続できるようにする必要があります。詳細については、プライベートネットワーク接続の選択 モジュールのドキュメントを参照してください。
- パブリックネットワーク接続 接続方式を選択した場合は、ページに表示されているデータソースIPアドレスをOceanBaseデータベースインスタンスの許可リストに追加して、接続性を確保する必要があります。詳細については、パブリックネットワーク接続の選択 モジュールのドキュメントを参照してください。
説明
インスタンスタイプがセルフマネージドデータベースの場合にのみ、このパラメータが表示されます。ソース側とターゲット側のリージョンを選択すると、ページには許可リストに追加するデータソースIPアドレスが表示されます。
- ピアリング接続 を選択した場合は、ドロップダウンリストから利用可能なピアリング接続を選択し、ページに表示されているIPアドレスをOceanBaseデータベースインスタンスのセキュリティグループのインバウンドルールまたは許可リストに追加して、接続性を確保する必要があります。具体的な操作については、AWSピアリング接続、Alibaba Cloudピアリング接続、および Google Cloudピアリング接続 を参照してください。
ピアリング接続ID インスタンスタイプがセルフマネージドデータベースで、接続タイプが ピアリング接続 の場合にのみ表示されます。ドロップダウンリストから利用可能なピアリング接続を選択します。ドロップダウンリストには、現在のクラウドベンダーとリージョンが一致し、ステータスが 接続済み のピアリング接続のみが表示され、対応するVPC IDとCIDRが表示されます。利用可能な接続がない場合は、新規作成 をクリックして、新しいタブでデータサービスのピアリング接続を作成できます。 接続情報 インスタンスタイプがセルフマネージドデータベースの場合にのみ、このパラメータが表示されます。 - 接続タイプ を エンドポイント に設定した場合は、エンドポイントサービス名を入力してください。
- 接続タイプ を パブリックネットワーク接続 に設定した場合は、データベースホストの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接続情報 を入力する必要があります。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 をクリックします。
事前チェックが成功したら、購入 をクリックし、データ移行インスタンスを購入する ページに移動して購入します。
購入が成功すると、データ移行タスクを開始できます。購入の詳細については、データ移行インスタンスの購入を参照してください。データ移行インスタンスの購入を後回しにする場合は、保存 をクリックしてデータ移行タスクの詳細ページに移動し、後から必要に応じて手動で購入できます。
データ移行の詳細ページの右上隅にある 検証タスクの設定 をクリックすると、ソースデータベースとターゲットデータベースのデータ差異を比較できます。詳細については、データ検証タスクの新規作成を参照してください。
データ移行サービスでは、データ移行タスクの実行中に移行オブジェクトを変更できます。詳細については、移行オブジェクトの表示と変更を参照してください。データ移行タスクは、選択した移行タイプに従って順次実行されます。詳細については、データ移行タスクの詳細を見るの「移行の詳細を見る」モジュールを参照してください。