すべてのプロダクト
Search
ドキュメントセンター

Data Transmission Service:自主管理 PostgreSQL から PolarDB for PostgreSQL (Oracle 互換) への移行

最終更新日:Jul 11, 2026

このトピックでは、Data Transmission Service (DTS) を使用して、自主管理 PostgreSQL データベースから PolarDB for PostgreSQL (Compatible with Oracle) クラスターにデータを移行する方法について説明します。

前提条件

  • 移行先の PolarDB for PostgreSQL (Oracle 互換) クラスターを作成しておく必要があります。詳細については、「PolarDB for PostgreSQL (Oracle 互換) クラスターの作成」をご参照ください。

    説明

    サポートされているソースデータベースとターゲットデータベースのバージョンについては、「移行シナリオの概要」をご参照ください。

  • PolarDB for PostgreSQL (Oracle 互換) クラスターのストレージ容量は、自主管理 PostgreSQL が使用する容量よりも大きい必要があります。

注意事項

説明
  • DTS はスキーマ移行中に外部キーを移行します。

  • 完全データ移行および増分データ移行中、DTS はセッションレベルで制約チェックと外部キーのカスケードを一時的に無効にします。タスクの実行中にソースデータベースでカスケード更新または削除を行うと、データの不整合が発生する可能性があります。

タイプ

説明

ソースデータベースの制限事項

  • ソースデータベースをホストするサーバーには十分なアウトバウンド帯域幅が必要です。帯域幅が不足していると、移行速度に影響します。

  • 移行対象として選択されたテーブルには、プライマリキーまたは一意性制約が必要です。また、制約内のフィールドは一意である必要があります。そうでない場合、ターゲットデータベースでデータが重複する可能性があります。

    説明

    [移行タイプ] として [スキーマ移行] を選択しなかったために、DTS によってターゲットテーブルが作成されなかった場合、ターゲットテーブルにソーステーブルと同じプライマリキーまたは NULL でない一意性制約があることを確認する必要があります。そうでない場合、ターゲットデータベースでデータが重複する可能性があります。

    移行するデータベースの名前にハイフン (-) を含めることはできません (例: dts-testdata)。

  • 移行オブジェクトとしてテーブルを選択し、それらを編集する必要がある場合 (たとえば、テーブル名や列名をマッピングする場合)、1 つの移行タスクで移行できるテーブルは最大 1,000 個です。この制限を超えると、タスク送信時にエラーが発生します。この場合、テーブルを複数のタスクに分割するか、データベース全体を移行するようにタスクを構成してください。

  • 増分データ移行の場合、次の先行書き込みログ (WAL) の要件が適用されます。

    • wal_level パラメーターを logical に設定する必要があります。

    • 増分データ移行タスクの場合、ソースデータベースの WAL は 24 時間以上保持する必要があります。完全データ移行と増分データ移行の両方を含むタスクの場合、DTS は WAL を少なくとも 7 日間保持することを要求します。完全データ移行が完了した後、保持期間を 24 時間以上に短縮できます。DTS が必要な WAL を取得できない場合、移行タスクが失敗する可能性があります。極端な場合、データの不整合や損失が発生する可能性があります。必要な期間より短い WAL 保持期間に起因する問題は、DTS サービスレベルアグリーメント (SLA) の対象外です。

  • ソースデータベースでの操作に関する制限事項:

    • 自主管理 PostgreSQL ソースデータベースでプライマリ/セカンダリ スイッチオーバーを実行すると、移行が失敗します。

    • 論理サブスクリプションの制限により、増分データ移行を含む移行インスタンスが実行中で、増分変更後に移行される単一行のサイズが 256 MB を超える場合、移行インスタンスは回復不能なエラーで失敗し、再構成する必要があります。

    • 完全データ移行フェーズ中は、データベースまたはテーブルスキーマを変更する DDL 操作を実行しないでください。そうしないと、データ移行タスクが失敗します。

    • 完全データ移行のみを実行する場合、移行中にソースデータベースに新しいデータを書き込まないでください。そうしないと、ソースデータベースとターゲットデータベースの間でデータの不整合が発生します。リアルタイムのデータ整合性を維持するために、完全データ移行と増分データ移行の両方を選択することを推奨します。

  • ソースデータベースに長時間トランザクションがあり、インスタンスが増分移行タスク用に構成されている場合、トランザクションがコミットされる前に生成された先行書き込みログ (WAL) はクリアできません。これにより、WAL が蓄積され、ソースデータベースのディスク領域が枯渇する可能性があります。

  • 移行インスタンスの実行中にソースデータベースでメジャーバージョンアップを実行すると、インスタンスは回復不能なエラーで失敗し、再構成する必要があります。

その他の制限事項

  • この注意は、外部キー、トリガー、またはイベントトリガーを含むテーブルの完全または増分データ移行インスタンスに適用されます。DTS は、完全または増分移行中にセッションレベルで session_replication_role パラメーターを一時的に replica に設定します。ターゲットデータベースのアカウントにこの権限がない場合は、手動で session_replication_role パラメーターを replica に設定する必要があります。 この期間中、ソースデータベースでカスケード更新または削除操作が発生すると、データの不整合が生じる可能性があります。DTS データ移行インスタンスがリリースされた後、session_replication_role パラメーターの値を origin に戻すことができます。

  • 移行するテーブルに SERIAL 型の列が含まれている場合、ソースデータベースでその列に対してシーケンスが自動的に作成されます。したがって、[ソースオブジェクト] を構成する際に、[移行タイプ] に [スキーマ移行] が含まれている場合は、シーケンスも選択するか、スキーマ全体を移行することを推奨します。そうしないと、移行インスタンスが失敗する可能性があります。

  • 増分データ移行を含むタスクの場合、データを書き込む前に、ソースデータベースの移行対象テーブルで ALTER TABLE schema.table REPLICA IDENTITY FULL; コマンドを実行する必要があります。これにより、次の 2 つのシナリオでテーブルのデータ整合性が確保されます。デッドロックを防ぐため、このコマンドの実行中はテーブルロック操作を避けてください。事前チェックで関連するチェックをスキップした場合、DTS はインスタンスの初期化時にこのコマンドを自動的に実行します。

    • インスタンスが初めて実行されるとき。

    • 移行オブジェクトの粒度がスキーマに設定されており、スキーマ内に新しいテーブルが作成されるか、RENAME コマンドを使用して既存のテーブルが再構築されるとき。

    説明
    • コマンドで、schematable を移行するデータのスキーマ名とテーブル名に置き換えてください。

    • この操作はオフピーク時に実行してください。

  • DTS は、増分データの DDL 文、増分テーブルのスキーマ、ハートビートデータなどの情報を取得するために、ソースデータベースに次の一時テーブルを作成します。移行中にこれらの一時テーブルを削除しないでください。そうしないと、DTS タスクが中断されます。DTS は、移行インスタンスがリリースされた後、これらの一時テーブルを自動的に削除します。

    public.dts_pg_classpublic.dts_pg_attributepublic.dts_pg_typepublic.dts_pg_enumpublic.dts_postgres_heartbeatpublic.dts_ddl_commandpublic.dts_args_session、および public.aliyun_dts_instance

  • 増分データ移行の表示レイテンシの精度を確保するために、DTS はソースデータベースに dts_postgres_heartbeat という名前のハートビートテーブルを作成します。

  • 増分データ移行中、DTS はデータをレプリケーションするために、ソースデータベースに dts_sync_ というプレフィックスの付いたレプリケーションスロットを作成します。このレプリケーションスロットにより、DTS は過去 15 分間のソースデータベースから増分ログを取得できます。データ移行タスクが失敗した場合、または移行インスタンスがリリースされた場合、DTS はレプリケーションスロットを自動的にクリーンアップしようとします。

    説明
    • 移行中にタスクが使用するソースデータベースアカウントのパスワードを変更したり、ソースデータベースの IP アドレスホワイトリストから DTS の IP アドレスを削除したりすると、レプリケーションスロットは自動的にクリーンアップされません。この場合、ログの蓄積を防ぐために、ソースデータベースで手動でレプリケーションスロットをクリーンアップする必要があります。これにより、ディスク領域が枯渇し、ソースデータベースが利用できなくなる可能性があります。

    • ソースデータベースでプライマリ/セカンダリ スイッチオーバーが発生した場合、セカンダリデータベースにログインして手動でレプリケーションスロットをクリーンアップする必要があります。

  • DTS はタスクごとに 1 つのデータベースのみを移行します。複数のデータベースを移行するには、それぞれに個別のタスクを構成してください。

  • DTS は、TimescaleDB 拡張テーブル、スキーマ間継承を持つテーブル、または式ベースの一意なインデックスを持つテーブルの移行をサポートしていません。

  • プラグインによって作成されたスキーマは移行できず、タスク構成中にコンソールで選択できません。

  • データを移行する前に、ソースデータベースとターゲットデータベースのパフォーマンスを評価してください。データ移行はオフピーク時に実行してください。完全データ移行中、DTS はソースデータベースとターゲットデータベースの両方で読み取りおよび書き込みリソースを消費するため、データベースの負荷が増加する可能性があります。

  • 完全データ移行には同時 INSERT 操作が含まれるため、ターゲットデータベースでテーブルの断片化が発生し、ターゲットデータベースがソースデータベースよりも多くのストレージ領域を消費する可能性があります。

  • FLOAT または DOUBLE データ型の列の移行精度がビジネス要件を満たしているか確認してください。DTS は ROUND(COLUMN,PRECISION) 関数を使用してこれらの列から値を読み取ります。精度を明示的に定義しない場合、DTS は FLOAT には 38 桁、DOUBLE には 308 桁の精度を使用します。

  • DTS は、失敗した移行タスクを最大 7 日間再開しようとします。したがって、ワークロードを宛先インスタンスに切り替える前に、タスクを停止またはリリースする必要があります。または、REVOKE コマンドを使用して、DTS が宛先インスタンスにアクセスするために使用するアカウントの書き込み権限を取り消します。これにより、自動的に再開されたタスクが宛先インスタンスのデータを上書きするのを防ぎます。

  • DTS はデータ内容を検証しますが、シーケンスなどのメタデータは検証しません。メタデータはご自身で検証する必要があります。

  • ワークロードを宛先インスタンスに切り替えた後、新しく書き込まれたシーケンスは、ソースデータベースの対応するシーケンスの最大値からインクリメントされません。ワークロードを切り替える前に、宛先インスタンスのシーケンス値を更新する必要があります。詳細については、「宛先インスタンスのシーケンス値の更新」をご参照ください。

  • タスクが失敗した場合、DTS のサポートスタッフは 8 時間以内に復旧を試みます。復旧中、タスクを再起動したり、パラメーターを調整したりすることがあります。

    説明

    変更されるのは DTS タスクのパラメーターのみで、データベースのパラメーターは変更されません。調整される可能性のあるパラメーターには、「インスタンスパラメーターの変更」に記載されているものが含まれます。

  • パーティションテーブルを移行する場合、親テーブルとその子パーティションの両方を移行オブジェクトとして含める必要があります。そうしないと、パーティションテーブルのデータが不整合になる可能性があります。

    重要
    • PostgreSQL のパーティションテーブルの親テーブルはデータを直接保存しません。すべてのデータはその子パーティションに保存されます。データ移行タスクには、親テーブルとそのすべての子パーティションを含める必要があります。そうしないと、子パーティションのデータが欠落し、ソースとターゲットの間でデータの不整合が発生する可能性があります。

    • 異なるデータベース間でのパーティションテーブルと継承テーブル (親子テーブル) の移行はサポートされていません。パーティションテーブルとそのすべてのパーティションが同じデータベースにあることを確認してください。また、親テーブルとそのすべての子テーブルが同じデータベースにあることを確認してください。

特殊なケース

  • 移行中にソースの ApsaraDB RDS for PostgreSQL インスタンスの接続エンドポイントまたはゾーンを変更しないでください。タスクが失敗する原因となります。

  • ソースインスタンスが Cloud SQL for PostgreSQL の場合、[データベースアカウント] フィールドに cloudsqlsuperuser 権限を持つアカウントを指定する必要があります。移行オブジェクトを選択する際は、このアカウントが管理を許可されているオブジェクトを選択してください。または、オブジェクトの OWNER ロールをこのアカウントに付与します (例: GRANT <owner_of_the_object_to_be_migrated> TO <source_database_account_used_by_the_task> コマンドを実行)。

    説明

    cloudsqlsuperuser 権限を持つアカウントは、別の cloudsqlsuperuser アカウントが所有するデータを管理できません。

  • ソースデータベースが自主管理 PostgreSQL インスタンスの場合、max_wal_senders および max_replication_slots パラメーターの値が、既存のレプリケーションスロットの合計数と、ソース用に作成する予定の DTS 移行インスタンスの数を上回るようにしてください。

課金

移行タイプ

インスタンス構成料金

インターネットトラフィック料金

スキーマ移行と完全データ移行

無料です。

ターゲットデータベースの [アクセス方法] パラメーターが [パブリック IP アドレス] に設定されている場合、インターネットトラフィックに対して課金されます。詳細については、「課金概要」をご参照ください。

増分データ移行

課金されます。詳細については、「課金概要」をご参照ください。

移行タイプ

  • スキーマ移行

    DTS は、移行オブジェクトのスキーマ定義をソースデータベースからターゲットデータベースに移行します。

  • 完全移行

    DTS は、指定された移行オブジェクトのすべての既存データをソースデータベースからターゲットデータベースに移行します。

  • 増分移行

    完全移行が完了した後、DTS はソースデータベースからターゲットデータベースに増分データ更新を移行します。増分移行により、自主管理アプリケーションを中断することなく、データをスムーズに移行できます。

サポートされるオブジェクト

  • スキーマとテーブル

    説明

    これには、プライマリキー、一意キー、外部キー、DATATYPE (組み込みデータ型)、およびデフォルト制約が含まれます。

  • ビュー、プロシージャ (PostgreSQL 11 以降)、関数、ルール、シーケンス、拡張、トリガー、集計、インデックス、演算子、およびドメイン

サポートされる SQL 操作

操作タイプ

SQL ステートメント

DML

INSERTUPDATE、および DELETE

DDL

  • 以降に作成されたデータ移行タスクのみが DDL 操作をサポートします。

    重要
    • シンガポールで 2023 年 5 月 12 日より前に作成されたデータ移行タスクの場合、移行タスクを構成する前に、ソースデータベースにトリガーと関数を作成して DDL 情報をキャプチャする必要があります。詳細については、「トリガーと関数を使用して PostgreSQL の増分 DDL 移行を実装する」をご参照ください。

    • 増分データ移行では、BIT 型のデータは移行されません。

  • データ移行タスクは、次の DDL ステートメントをサポートします。ソースデータベースアカウントは特権アカウントである必要があります。

    • CREATE TABLE, DROP TABLE

    • ALTER TABLE (RENAME TABLE, ADD COLUMN, ADD COLUMN DEFAULT, ALTER COLUMN TYPE, DROP COLUMN, ADD CONSTRAINT, ADD CONSTRAINT CHECK, ALTER COLUMN DROP DEFAULT を含む)

    • TRUNCATE TABLE (ソース PostgreSQL データベースはバージョン 11 以降である必要があります。)

    • CREATE INDEX ON TABLE

    重要
    • CASCADE や RESTRICT など、DDL ステートメント内の追加情報は移行されません。

    • セッションが SET session_replication_role = replica コマンドを使用する場合、その DDL ステートメントは移行されません。

    • 関数を呼び出して実行される DDL ステートメントは移行されません。

    • ソースデータベースからの単一のトランザクションに DML と DDL の両方のステートメントが含まれている場合、DDL ステートメントは移行されません。

    • ソースデータベースからの単一のトランザクションに、移行対象として選択されていないオブジェクトの DDL ステートメントが含まれている場合、DDL ステートメントは移行されません。

    • CREATE SEQUENCE は現在サポートされていません。

    • サーバープログラミングインターフェイス (SPI) を介してプラグイン内で直接実行される DDL ステートメントは移行されません。

データベースアカウントの権限

データベース

スキーマ移行

完全データ移行

増分データ移行

自主管理 PostgreSQL

pg_catalog に対する USAGE 権限

ソースオブジェクトに対する SELECT 権限

スーパーユーザー

PolarDB for PostgreSQL (Oracle 互換) クラスター

データベース所有者の権限

重要

データベース所有者は、データベースを作成するときに指定します。

データベースアカウントを作成し、それに権限を付与するには、次のトピックをご参照ください。

前提条件

説明

自主管理 PostgreSQL のすべてのバージョンで、次の手順に従ってください。

  1. 自主管理 PostgreSQL データベースをホストしているサーバーにログインします。

  2. 次のコマンドを実行して、データベースで使用されているレプリケーションスロットの数をクエリします。

    select count(1) from pg_replication_slots;
  3. postgresql.conf 設定ファイルを変更します。wal_level パラメーターを logical に設定し、max_wal_senders および max_replication_slots パラメーターが、使用されているレプリケーションスロットの数と作成予定の DTS インスタンスの数の合計よりも大きいことを確認します。

    # - Settings -
    
    wal_level = logical			# minimal, replica, or logical
    					# (change requires restart)
    
    ......
    
    # - Sending Server(s) -
    
    # Set these on the master and on any standby that will send replication data.
    
    max_wal_senders = 10		# max number of walsender processes
    				# (change requires restart)
    #wal_keep_segments = 0		# in logfile segments, 16MB each; 0 disables
    #wal_sender_timeout = 60s	# in milliseconds; 0 disables
    
    max_replication_slots = 10	# max number of replication slots
    				# (change requires restart)
    説明

    設定ファイルを変更した後、変更を適用するには自主管理 PostgreSQL データベースを再起動する必要があります。

  4. DTS サーバーの CIDR ブロックを、自主管理 PostgreSQL データベースの pg_hba.conf 設定ファイルに追加します。宛先データベースが配置されているリージョンの DTS サーバーの CIDR ブロックのみを追加する必要があります。詳細については、「DTS サーバーの CIDR ブロックをホワイトリストに追加する」をご参照ください。

    説明
    • 設定ファイルを変更した後、SELECT pg_reload_conf(); コマンドを実行するか、自主管理 PostgreSQL データベースを再起動して変更を適用します。

    • この設定ファイルの設定の詳細については、「pg_hba.conf ファイル」をご参照ください。信頼できるアドレスをすでに 0.0.0.0/0 に設定している場合 (次の図を参照)、この手順はスキップできます。

    IP

  5. 宛先データベースインスタンスで、移行するソースオブジェクトに対応するデータベースとスキーマを作成します。

自主管理 PostgreSQL バージョン 9.4.8 から 10.0 の場合は、次の追加手順に従ってください。

  1. PostgreSQL のソースコードをダウンロード、コンパイル、インストールします。

    1. PostgreSQL 公式ウェブサイトから、ご利用の自主管理 PostgreSQL バージョンのソースコードをダウンロードします。

    2. sudo ./configuresudo make、および sudo make install コマンドを順に実行して、ソースコードを構成、コンパイル、インストールします。

      重要
      • PostgreSQL をコンパイルしてインストールする場合、オペレーティングシステムのバージョンは GNU Compiler Collection (GCC) のバージョンと互換性がある必要があります。

      • sudo ./configure コマンドの実行時にエラーが発生した場合は、エラーメッセージに基づいてコマンドを変更できます。たとえば、エラーメッセージが readline library not found. Use --without-readline to disable readline support. の場合、コマンドを sudo ./configure --without-readline に変更します。

      • 別の方法で PostgreSQL をインストールする場合は、本番環境と同じオペレーティングシステムと GCC バージョンを使用するテスト環境で ali_decoding プラグインをコンパイルする必要があります。

  2. DTS が提供する ali_decoding プラグインをダウンロード、コンパイル、インストールします。

    1. ali_decoding をダウンロードします。

    2. ali_decoding ディレクトリ全体を PostgreSQL インストールの contrib ディレクトリにコピーします。

      contrib目录

    3. ali_decoding ディレクトリに移動し、Makefile ファイルの内容を次のコードに置き換えます。

      # contrib/ali_decoding/Makefile
      MODULE_big = ali_decoding
      MODULES = ali_decoding
      OBJS    = ali_decoding.o
      
      DATA = ali_decoding--0.0.1.sql ali_decoding--unpackaged--0.0.1.sql
      
      EXTENSION = ali_decoding
      
      NAME = ali_decoding
      
      #subdir = contrib/ali_decoding
      #top_builddir = ../..
      #include $(top_builddir)/src/Makefile.global
      #include $(top_srcdir)/contrib/contrib-global.mk
      
      #PG_CONFIG = /usr/pgsql-9.6/bin/pg_config
      #pgsql_lib_dir := $(shell $(PG_CONFIG) --libdir)
      #PGXS := $(shell $(PG_CONFIG) --pgxs)
      #include $(PGXS)
      
      # Use the following for source code installation
      ifdef USE_PGXS
      PG_CONFIG = pg_config
      PGXS := $(shell $(PG_CONFIG) --pgxs)
      include $(PGXS)
      else
      subdir = contrib/ali_decoding
      top_builddir = ../..
      include $(top_builddir)/src/Makefile.global
      include $(top_srcdir)/contrib/contrib-global.mk
      endif
    4. ali_decoding ディレクトリに移動します。sudo makesudo make install コマンドを順に実行して、ali_decoding プラグインをコンパイルし、必要なインストールファイルを生成します。

    5. 次のファイルを指定の場所にコピーします。

      指定位置

  3. 宛先データベースインスタンスで、移行するソースオブジェクトに対応するデータベースとスキーマを作成します。

操作手順

  1. 次のいずれかの方法で、ターゲットリージョンの移行タスクリストページに移動します。

    DTS コンソールから

    1. Data Transmission Service (DTS) コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[データの移行] をクリックします。

    3. ページの左上隅で、移行インスタンスが配置されているリージョンを選択します。

    DMS コンソールから

    説明

    実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモードコンソール」および「DMS コンソールのレイアウトとスタイルをカスタマイズする」をご参照ください。

    1. Data Management (DMS) コンソールにログインします。

    2. トップメニューバーで、データ + AI > Data Transmission (DTS) > データ移行を選択します。

    3. [データ移行タスク] の右側で、移行インスタンスが配置されているリージョンを選択します。

  2. [タスクの作成] をクリックして、タスク構成ページに移動します。

  3. ソースデータベースとターゲットデータベースを構成します。

    警告

    ソースインスタンスと宛先インスタンスを選択した後、ページ上部の [制限事項] を読んで、移行タスクが正常に作成および実行できることを確認してください。

    カテゴリ

    パラメーター

    説明

    N/A

    タスク名

    DTS は自動的にタスク名を生成します。簡単に識別できるように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。

    移行元データベース

    データベースタイプ

    [PostgreSQL] を選択します。

    アクセス方法

    [Express Connect/VPN Gateway/Smart Access Gateway 経由で接続された自己管理データベース] を選択します。

    説明

    自己管理データベースを選択するには、いくつかの準備が必要です。詳細については、「準備」をご参照ください。

    インスタンスリージョン

    自主管理 PostgreSQL データベースのリージョンを選択します。

    Alibaba Cloudアカウント全体でのデータの複製

    この例では、データは同じ Alibaba Cloud アカウント内で移行されます。[×] を選択します。

    ソースデータベースに接続されているVPC

    自主管理 PostgreSQL データベースが属する VPC の ID を選択します。

    IP アドレス

    自主管理 PostgreSQL データベースサーバーの IP アドレスを入力します。

    ポート

    自主管理 PostgreSQL データベースのサービスポート番号を入力します。デフォルト値は [5432] です。

    データベース名

    移行するオブジェクトを含むソースデータベースの名前を入力します。

    データベースアカウント

    自主管理 PostgreSQL データベースのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

    データベースアカウントのパスワードを入力します。

    暗号化

    ソースデータベースへの接続を暗号化するかどうかを指定します。このパラメーターは、ビジネス要件に基づいて構成できます。この例では、[非暗号化] が選択されています。

    ソースデータベースへの SSL 暗号化接続を確立する場合は、次の手順を実行します:[SSL 暗号化] を選択し、必要に応じて [CA 証明書]、[クライアント証明書]、および [クライアント証明書の秘密鍵] をアップロードし、[クライアント証明書の秘密鍵のパスワード] を指定します。

    説明
    • 自主管理 PostgreSQL データベースの暗号化を [SSL 暗号化] に設定した場合、[CA 証明書] をアップロードする必要があります。

    • クライアント証明書を使用する場合は、[クライアント証明書] と [クライアント証明書の秘密鍵] をアップロードし、[クライアント証明書の秘密鍵のパスワード] を指定する必要があります。

    • ApsaraDB RDS for PostgreSQL インスタンスの SSL 暗号化を構成する方法については、「SSL 暗号化」をご参照ください。

    移行先データベース

    データベースタイプ

    [PolarDB (Oracle と互換性)] を選択します。

    アクセス方法

    [Express Connect/VPN Gateway/Smart Access Gateway 経由で接続された自己管理データベース] を選択します。

    インスタンスリージョン

    移行先の PolarDB for PostgreSQL (Oracle 互換) クラスターが配置されているリージョンを選択します。

    接続中の VPC

    移行先の PolarDB for PostgreSQL (Oracle 互換) クラスターが属する VPC の ID を選択します。VPC ID は、クラスターの基本情報ページで確認できます。

    ドメイン名または IP アドレス

    移行先の PolarDB for PostgreSQL (Oracle 互換) クラスターのプライマリノードのエンドポイントを入力します。

    説明

    ping コマンドを実行して、移行先の PolarDB for PostgreSQL (Oracle 互換) クラスターの直接接続エンドポイントの IP アドレスを取得できます。

    ポート

    ターゲットデータベースのサービスポート番号を入力します。デフォルト値は [1521] です。

    データベース名

    移行先の PolarDB for PostgreSQL (Oracle 互換) クラスターで移行オブジェクトを格納するデータベースの名前を入力します。

    データベースアカウント

    移行先の PolarDB for PostgreSQL (Oracle 互換) クラスターのデータベースアカウントを入力します。必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

    データベースアカウントのパスワードを入力します。

  4. 構成が完了したら、ページ下部の [接続をテストして続行] をクリックします。

    説明
    • DTS サーバーからのアクセスを許可するために、DTS サービスの IP アドレスセグメントがソースデータベースとターゲットデータベースのセキュリティ設定に自動または手動で追加されていることを確認してください。詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。

    • ソースまたはターゲットデータベースが自己管理データベースの場合 ([アクセス方法] が [Alibaba Cloud インスタンス] ではない場合)、表示される [DTS サーバーの CIDR ブロック] ダイアログボックスで [接続テスト] をクリックする必要もあります。

  5. タスクオブジェクトを構成します。

    1. [オブジェクト設定] ページで、移行するオブジェクトを構成します。

      パラメーター

      説明

      移行タイプ

      • 完全移行のみを実行する必要がある場合は、[スキーマ移行] と [完全データ移行] の両方を選択します。

      • ダウンタイムなしで移行を実行するには、[スキーマ移行]、[完全データ移行]、および [増分データ移行] を選択します。

      説明
      • [スキーマ移行] を選択しない場合は、データを受け取るためのデータベースとテーブルがターゲットデータベースに存在することを確認する必要があります。必要に応じて、[選択中のオブジェクト] ボックスのオブジェクト名マッピング機能を使用することもできます。

      • [増分データ移行] を選択しない場合、データの一貫性を確保するために、データ移行中にソースインスタンスに新しいデータを書き込まないでください。

      [競合するテーブルの処理モード]

      • [エラーの事前チェックと報告]: ターゲットデータベースに同じ名前のテーブルが存在するかどうかをチェックします。同じ名前のテーブルが存在しない場合、事前チェックは合格します。同じ名前のテーブルが存在する場合、事前チェック中にエラーが報告され、データ移行タスクは開始されません。

        説明

        ターゲットデータベースのテーブルが同じ名前で、簡単に削除または名前変更できない場合は、ターゲットデータベースのテーブルの名前を変更できます。詳細については、「オブジェクト名のマッピング」をご参照ください。

      • [エラーを無視して続行]: 同じ名前のテーブルのチェックをスキップします。

        警告

        [エラーを無視して続行] を選択すると、データの不整合やビジネスリスクが発生する可能性があります。例:

        • テーブルスキーマが一貫しており、ターゲットデータベースのレコードがソースデータベースのレコードと同じプライマリキー値を持つ場合:

          • 完全移行中、DTS はターゲットデータベースのレコードを保持します。ソースデータベースからのレコードは移行されません。

          • 増分移行中、DTS はターゲットデータベースのレコードを保持しません。ソースデータベースからのレコードがターゲットデータベースのレコードを上書きします。

        • テーブルスキーマが一致しない場合、データの一部の列のみが移行されるか、移行が失敗する可能性があります。注意して進めてください。

      ソースオブジェクト

      [ソースオブジェクト] ボックスで、移行するオブジェクトをクリックし、Right arrow をクリックして [選択中のオブジェクト] ボックスに移動します。

      説明
      • スキーマまたはテーブルレベルでオブジェクトを選択できます。テーブルを選択した場合、ビュー、トリガー、ストアドプロシージャなどの他のオブジェクトは移行されません。

      • 移行するテーブルに SERIAL 型の列が含まれており、[移行タイプ] で [スキーマ移行] を選択した場合は、シーケンスも選択するか、スキーマ全体を移行してください。

      選択中のオブジェクト

      説明
      • オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、名前が変更されたオブジェクトに依存する他のオブジェクトの移行が失敗する可能性があります。

      • WHERE 条件を使用してデータをフィルタリングするには、[選択中のオブジェクト] ボックスでテーブルを右クリックします。表示されるダイアログボックスで、条件を指定します。詳細については、「フィルター条件の設定」をご参照ください。

      • データベースまたはテーブルレベルで移行する SQL 操作を選択するには、[選択中のオブジェクト] ボックスでオブジェクトを右クリックし、表示されるダイアログボックスで目的の SQL 操作を選択します。

    2. [詳細設定へ] をクリックして、詳細パラメーターを構成します。

      パラメーター

      説明

      [タスクのスケジュールに使用する専用クラスターの選択]

      デフォルトでは、DTS は共有クラスターでタスクをスケジュールします。選択する必要はありません。より安定したタスクが必要な場合は、専用クラスターを購入して DTS 移行タスクを実行できます。

      [失敗した接続の再試行時間]

      移行タスクが開始された後、ソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、すぐに接続の再試行を開始します。デフォルトの再試行時間は 720 分です。再試行時間は 10 分から 1440 分までカスタマイズできます。30 分以上に設定することを推奨します。指定された時間内に DTS がソースおよびターゲットデータベースに再接続した場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。

      説明
      • 同じソースまたはターゲットを共有する複数の DTS インスタンスの場合、ネットワークの再試行時間は最後に作成されたタスクの設定によって決まります。

      • 接続再試行期間中はタスクに課金されるため、ビジネスニーズに基づいて再試行時間をカスタマイズするか、ソースおよびターゲットデータベースインスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることを推奨します。

      [移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。]

      移行タスクが開始された後、DDL または DML 実行例外などの接続以外の問題がソースまたはターゲットデータベースで発生した場合、DTS はエラーを報告し、すぐに操作の再試行を開始します。デフォルトの再試行時間は 10 分です。再試行時間は 1 分から 1440 分までカスタマイズできます。10 分以上に設定することを推奨します。指定された再試行時間内に関連する操作が成功した場合、移行タスクは自動的に再開されます。そうでない場合、タスクは失敗します。

      重要

      [移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。] の値は、[失敗した接続の再試行時間] の値より小さくする必要があります。

      [完全移行率を制限するかどうか]

      完全移行中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを消費するため、データベースの負荷が増加する可能性があります。必要に応じて、完全移行タスクの速度制限を有効にできます。[1 秒あたりのソースデータベースのクエリ率 QPS]、[1 秒あたりの完全移行の行数 RPS]、および [1 秒あたりの完全移行データ量 (MB) BPS] を設定して、ターゲットデータベースの負荷を軽減できます。

      説明
      • この構成項目は、[移行タイプ] で [完全データ移行] を選択した場合にのみ使用できます。

      • 移行インスタンスの実行後に 完全移行速度を調整することもできます。

      [増分移行率を制限するかどうか]

      必要に応じて、増分移行タスクの速度制限を設定することもできます。[1 秒あたりの増分移行の行数 RPS] と [1 秒あたりの増分移行データ量 (MB) BPS] を設定して、ターゲットデータベースの負荷を軽減できます。

      説明
      • この構成項目は、[移行タイプ] で [増分データ移行] を選択した場合にのみ使用できます。

      • 移行インスタンスの実行後に 増分移行速度を調整することもできます。

      環境タグ

      インスタンスを識別するために環境タグを選択できます。この例では、タグは選択されていません。

      ETL 機能の設定

      抽出、変換、ロード (ETL) 機能を有効にするかどうかを選択します。詳細については、「ETL とは何か?」をご参照ください。有効な値:

      監視アラート

      ビジネスニーズに基づいて、アラートを設定し、アラート通知を受け取るかどうかを選択します。

      • [×]: アラートを設定しません。

      • []: アラートのしきい値アラート通知を設定してアラートを構成します。移行が失敗した場合やレイテンシがしきい値を超えた場合、システムはアラート通知を送信します。

    3. [次へ: データ検証] をクリックして、データ検証タスクを構成します。

      データ検証機能の詳細については、「データ検証の構成」をご参照ください。

  6. タスクを保存し、事前チェックを実行します。

    • API オペレーションを呼び出す際にこのインスタンスを構成するためのパラメーターを表示するには、[次:タスク設定の保存と事前チェック] ボタンにポインターを合わせ、表示されるバブルで [OpenAPI パラメーターのプレビュー] をクリックします。

    • API パラメーターを表示する必要がない場合、または表示が完了した場合は、ページ下部の [次:タスク設定の保存と事前チェック] をクリックします。

    説明
    • 移行タスクが開始される前に、DTS は事前チェックを実行します。タスクは事前チェックに合格した後にのみ開始されます。

    • 事前チェックが失敗した場合は、失敗したチェック項目の横にある [詳細を表示] をクリックし、プロンプトに基づいて問題を修正してから、再度事前チェックを実行します。

    • 事前チェック中に警告が報告された場合:

      • 無視できないチェック項目の場合は、失敗した項目の横にある [詳細を表示] をクリックし、プロンプトに基づいて問題を修正してから、再度事前チェックを実行します。

      • 無視できるチェック項目の場合は、[アラートの詳細を確認]、[無視]、[OK]、および [再度事前チェックを実行] をクリックして、アラート項目をスキップし、再度事前チェックを実行できます。警告を無視することを選択した場合、データの不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。

  7. インスタンスを購入します。

    1. [成功率] が 100% になったら、[次:インスタンスの購入] をクリックします。

    2. [購入] ページで、データ移行インスタンスのリンク仕様を選択します。詳細については、次の表をご参照ください。

      カテゴリ

      パラメーター

      説明

      新しいインスタンスクラス

      リソースグループの設定

      インスタンスが属するリソースグループを選択します。デフォルト値はデフォルトリソースグループです。詳細については、「Resource Management とは何か?」をご参照ください。

      インスタンスクラス

      DTS は、異なるパフォーマンスレベルの移行仕様を提供します。リンク仕様は移行速度に影響します。ビジネスシナリオに基づいて仕様を選択できます。詳細については、「データ移行リンクの仕様」をご参照ください。

    3. 構成が完了したら、[Data Transmission Service (従量課金) 利用規約] を読んで選択します。

    4. [購入して起動] をクリックします。表示される [OK] ダイアログボックスで、[OK] をクリックします。

      [データ移行タスク] リストページで移行タスクの進捗状況を確認できます。

      説明
      • 移行タスクに増分移行が含まれていない場合、完全移行が完了すると自動的に停止します。タスクが停止すると、その [ステータス] は [完了] に変わります。

      • 移行タスクに増分移行が含まれている場合、自動的に停止しません。増分移行タスクは実行を続けます。増分移行タスクの実行中、タスクの [ステータス] は [実行中] です。