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

Data Transmission Service:自主管理 PostgreSQL データベースから AnalyticDB for PostgreSQL へのデータ移行

最終更新日:Nov 21, 2025

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

前提条件

  • 宛先の AnalyticDB for PostgreSQL インスタンスを作成済みであること。詳細については、「インスタンスの作成」をご参照ください。

    説明

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

  • 宛先の AnalyticDB for PostgreSQL インスタンスの使用可能なディスク領域が、ソースの自主管理 PostgreSQL データベースが占有するディスク領域よりも大きいこと。

注意事項

説明
  • スキーマ移行中、DTS は外部キーをソースデータベースからターゲットデータベースに移行します。

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

カテゴリ

説明

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

  • ソースデータベースをホストするサーバーには、十分なアウトバウンド帯域幅が必要です。そうでない場合、データ移行速度が影響を受けます。

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

    説明

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

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

  • テーブルレベルでオブジェクトを移行し、テーブル名や列名のマッピングなどで編集する必要がある場合、単一のデータ移行タスクでサポートされるテーブルは最大 1,000 個です。この制限を超えると、タスクを送信した後にリクエストエラーが報告されます。この場合、テーブルを複数の移行タスクに分割するか、データベース全体を移行するようにタスクを構成します。

  • 増分移行の場合、先行書き込みログ (WAL) ファイルに関する次の要件に注意してください:

    • wal_level パラメーターを logical に設定します。

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

  • ソースデータベースでの操作の制限:

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

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

    • ソースデータベースの論理レプリケーションの制限により、移行中に移行される単一の増分データが 256 MB を超えると、DTS インスタンスが失敗し、回復できなくなる可能性があります。DTS インスタンスを再設定する必要があります。

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

  • ソースデータベースに長時間トランザクションがあり、タスクに増分移行が含まれている場合、トランザクションがコミットされる前に生成された WAL ファイルが蓄積される可能性があります。これにより、ソースデータベースのディスク領域が不足する可能性があります。

  • ソースインスタンスが Google Cloud Platform Cloud SQL for PostgreSQL の場合、ソースデータベースの データベースアカウント に cloudsqlsuperuser 権限を持つアカウントを指定する必要があります。移行オブジェクトを選択する際には、このアカウントが管理権限を持つオブジェクトを選択するか、移行対象のオブジェクトに対してこのアカウントに Owner 権限を付与する必要があります (たとえば、GRANT <owner_of_objects_to_migrate> TO <source_db_account_for_task> コマンドを実行して、このアカウントがオブジェクトの所有者として関連操作を実行できるようにします)。

    説明

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

  • DTS インスタンスの実行中にソースデータベースでメジャーエンジンバージョンのアップグレードを実行すると、インスタンスは失敗し、回復できなくなります。DTS インスタンスを再設定する必要があります。

その他の制限

  • 宛先テーブルは、追記最適化 (AO) テーブルにすることはできません。

  • DATATYPE、SEQUENCE、INDEX、PROCEDURE、FUNCTION、VIEW、OPERATOR、DEFAULT_CONSTRAINT、UK、PK、RULE、DOMAIN、AGGREGATE、EXTENSION、FK、および TRIGGER オブジェクトの移行はサポートされていません。

  • 部分的なテーブル移行に列マッピングを使用する場合、またはソースと宛先のテーブルスキーマが一致しない場合、ソースデータベースに存在するが宛先データベースには存在しない列のデータは失われます。

  • DTS インスタンスが増分データ移行タスクを実行する場合、データを書き込む前に、ソースデータベースの移行対象テーブルで 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 は自動的にレプリケーションスロットをクリアします。RDS for PostgreSQL インスタンスでプライマリ/セカンダリのスイッチオーバーが発生した場合、セカンダリデータベースにログインして手動でレプリケーションスロットをクリアする必要があります。

  • 1 つのデータ移行タスクで移行できるのは 1 つのデータベースのデータのみです。複数のデータベースからデータを移行するには、データベースごとにデータ移行タスクを作成する必要があります。

  • DTS は、TimescaleDB 拡張テーブルまたはスキーマ間継承を持つテーブルの移行をサポートしていません。

  • 移行対象のテーブルにプライマリキーが含まれている場合、宛先テーブルのプライマリキー列はソーステーブルのプライマリキー列と同じでなければなりません。移行対象のテーブルにプライマリキーが含まれていない場合、宛先テーブルのプライマリキー列と分散キーは同じでなければなりません。

  • 宛先テーブルの一意キー (プライマリキー列を含む) は、その分散キーのすべての列を含まなければなりません。

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

  • 完全データ移行には同時 INSERT 操作が含まれるため、宛先データベースのテーブルに断片化が発生します。完全移行が完了すると、宛先データベースのテーブルが使用するストレージ領域は、ソースデータベースよりも大きくなります。

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

  • DTS は、過去 7 日以内に失敗したデータ移行タスクの再開を試みます。ビジネスを宛先インスタンスに切り替える前に、タスクを停止または解放してください。また、revoke コマンドを使用して、DTS が宛先インスタンスへのアクセスに使用するアカウントから書き込み権限を取り消すこともできます。これにより、タスクが自動的に再開された場合にソースデータが宛先データを上書きするのを防ぎます。

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

  • ビジネスを宛先インスタンスに切り替えた後、新しく書き込まれたシーケンスは、ソースデータベースのシーケンスの最大値からインクリメントされません。スイッチオーバーの前に、ソースデータベースで対応するシーケンスの最大値をクエリし、それを宛先データベースの対応するシーケンスの初期値として設定する必要があります。次のコマンドは、ソースデータベースのシーケンス値をクエリします:

    do language plpgsql $$
    declare
      nsp name;
      rel name;
      val int8;
    begin
      for nsp,rel in select nspname,relname from pg_class t2 , pg_namespace t3 where t2.relnamespace=t3.oid and t2.relkind='S'
      loop
        execute format($_$select last_value from %I.%I$_$, nsp, rel) into val;
        raise notice '%',
        format($_$select setval('%I.%I'::regclass, %s);$_$, nsp, rel, val+1);
      end loop;
    end;
    $$;
    説明

    上記のコマンドによって出力される SQL 文には、ソースデータベース内のすべてのシーケンスが含まれています。必要に応じて、ターゲットデータベースでこれらの文を実行してください。

  • インスタンスが失敗した場合、DTS ヘルプデスクは 8 時間以内にインスタンスの回復を試みます。回復プロセス中に、インスタンスの再起動やパラメーターの調整などの操作が実行される場合があります。

    説明

    パラメーターが調整される場合、DTS インスタンスのパラメーターのみが変更されます。データベースのパラメーターは変更されません。変更される可能性のあるパラメーターには、「インスタンスパラメーターの変更」で説明されているものが含まれますが、これらに限定されません。

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

    説明

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

課金

移行タイプ

インスタンス構成料金

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

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

無料。

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

増分データ移行

有料です。詳細については、「課金の概要」をご参照ください。

移行タイプ

  • スキーマ移行

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

  • 完全データ移行

    DTS は、必要なオブジェクトの既存データをソースデータベースからターゲットデータベースに移行します。

  • 増分データ移行

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

増分移行をサポートする SQL 操作

操作タイプ

SQL 文

DML

INSERT、UPDATE、および DELETE

説明

データが宛先の AnalyticDB for PostgreSQL インスタンスに書き込まれると、UPDATE 文は自動的に REPLACE INTO 文に変換されます。UPDATE 文がプライマリキーに対して実行される場合、UPDATE 文は DELETE および INSERT 文に変換されます。

DDL

  • DDL 操作は、2020 年 10 月 1 日以降に作成されたデータ移行タスクでのみ移行できます。

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

    • 増分データ移行は、BIT 型のデータをサポートしていません。

  • ソースデータベースのデータベースアカウントは、特権アカウントである必要があります。DTS は、データ移行タスクで次の 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 (ソース PolarDB for PostgreSQL クラスターのデータベースエンジンバージョンは PostgreSQL V11 以降である必要があります。)

    • CREATE INDEX ON TABLE

    重要
    • CASCADE や RESTRICT など、DDL 文の追加情報を移行することはできません。

    • SET session_replication_role = replica 文が実行されたセッションからの DDL 文は移行できません。

    • 関数を呼び出して実行される DDL 文は移行できません。

    • ソースデータベースが一度に送信する SQL 文に DML 文と DDL 文の両方が含まれている場合、DTS は DDL 文を移行しません。

    • ソースデータベースが一度に送信する SQL 文に移行対象外の DDL 文が含まれている場合、DTS は DDL 文を移行しません。

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

データベースアカウントに必要な権限

データベース

スキーマ移行

完全移行

増分移行

自主管理 PostgreSQL

pg_catalog に対する USAGE 権限。

移行オブジェクトに対する SELECT 文の権限。

スーパーユーザ権限。

AnalyticDB for PostgreSQL

スキーマ所有者の権限。

説明

初期アカウントを使用することもできます。

データベースアカウントを作成し、権限を付与するには:

準備

説明
  • ソースデータベースが Amazon RDS for PostgreSQL インスタンスの場合の準備方法については、「Amazon RDS for PostgreSQL インスタンスから ApsaraDB RDS for PostgreSQL インスタンスへの増分データ移行」トピックの「開始する前に」セクションをご参照ください。ソースデータベースが Amazon Aurora PostgreSQL インスタンスの場合の準備方法については、「Amazon Aurora PostgreSQL インスタンスから ApsaraDB RDS for PostgreSQL インスタンスへの完全データ移行」トピックの「準備 1: Amazon Aurora PostgreSQL インスタンスのインバウンドルールを編集する」セクションをご参照ください。

  • この例では、Linux サーバーで実行されている自主管理 PostgreSQL データベースを使用します。

自主管理 PostgreSQL データベースのバージョンが 10.1 以降の場合、データ移行タスクを構成する前に次の操作を実行する必要があります。

  1. 自主管理 PostgreSQL データベースが存在するサーバーにログインします。

  2. postgresql.conf 設定ファイルを変更します。wal_level パラメーターを logical に設定し、max_wal_senders および max_replication_slots パラメーターの値が、自主管理 PostgreSQL データベースで使用されているレプリケーションスロットの数と、ソースデータベースが自主管理 PostgreSQL データベースである 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 データベースを再起動してパラメーター設定を有効にします。

  3. DTS サーバーの CIDR ブロックを、自主管理 PostgreSQL データベースの pg_hba.conf 設定ファイルに追加します。宛先データベースと同じリージョンにある DTS サーバーの CIDR ブロックのみを追加します。詳細については、「DTS サーバーの IP アドレスをホワイトリストに追加する」をご参照ください。

    説明
    • 設定ファイルを変更した後、SELECT pg_reload_conf(); 文を実行するか、自主管理 PostgreSQL データベースを再起動してパラメーター設定を有効にします。

    • pg_hba.conf 設定ファイルの詳細については、「pg_hba.conf ファイル」をご参照ください。pg_hba.conf ファイルの IP アドレスを 0.0.0.0/0 に設定している場合は、このステップをスキップしてください。次の図は構成を示しています。

    IP

  4. 移行対象のオブジェクトのデータベースとスキーマの情報に基づいて、宛先クラスターに対応するデータベースとスキーマを作成します。

自主管理 PostgreSQL データベースのバージョンが 9.4.8 から 10.0 の場合、データ移行タスクを構成する前に次の操作を実行する必要があります:

  1. 公式サイトから PostgreSQL のソースコードをダウンロードし、ソースコードをコンパイルして PostgreSQL をインストールします。

    1. 自主管理 PostgreSQL データベースのバージョンに基づいて、PostgreSQL 公式サイトからソースコードをダウンロードします。

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

      重要
      • PostgreSQL をコンパイルしてインストールする場合、PostgreSQL の OS バージョンは GNU コンパイラコレクション (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)
      
      # 次のコマンドを実行して ali_decoding プラグインをインストールします:
      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 make および sudo make install コマンドを順番に実行して ali_decoding プラグインをコンパイルし、ali_decoding プラグインのインストールに必要なファイルを取得します。

    5. ファイルを指定されたディレクトリにコピーします。

      指定位置

  3. 移行対象のオブジェクトのデータベースとスキーマの情報に基づいて、宛先クラスターに対応するデータベースとスキーマを作成します。

手順

  1. 次のいずれかの方法でデータ移行ページに移動し、データ移行インスタンスが存在するリージョンを選択します。

    DTS コンソール

    1. DTS コンソールにログインします。

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

    3. ページの左上隅で、データ移行インスタンスが存在するリージョンを選択します。

    DMS コンソール

    説明

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

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

    2. 上部のナビゲーションバーで、ポインターを [データ + AI] > [DTS (DTS)] > [データ移行] に移動します。

    3. [データ移行タスク] の右側にあるドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。

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

  3. ソースデータベースとターゲットデータベースを構成します。次の表にパラメーターを示します。

    警告

    ソースインスタンスと宛先インスタンスを選択した後、ページ上部の [制限] セクションを注意深く読むことをお勧めします。これにより、移行タスクを正常に作成および実行できるようになります。

    カテゴリ

    構成

    説明

    N/A

    タスク名

    DTS タスクの名前。DTS は自動的にタスク名を生成します。タスクを簡単に識別できるような情報的な名前を指定することをお勧めします。一意のタスク名を指定する必要はありません。

    移行元データベース

    既存の接続情報の選択

    • DTS に登録されているデータベースインスタンスを使用する場合、ドロップダウンリストからインスタンスを選択します。DTS はインスタンスの次のデータベースパラメーターを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • インスタンスを DTS に登録できない場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を構成する必要があります。

    データベースタイプ

    PostgreSQL を選択します。

    アクセス方法

    ソースデータベースのデプロイメント場所を選択します。このトピックでは、ECS 上の自己管理データベース を例として構成プロセスを説明します。

    説明

    自己管理データベースにアクセスするために別の方法を選択する場合は、対応する準備を行う必要があります。詳細については、「準備」をご参照ください。

    インスタンスのリージョン

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

    ECS インスタンス ID

    自主管理 PostgreSQL データベースがデプロイされている ECS インスタンスの ID を入力します。

    ポート番号

    自主管理 PostgreSQL データベースのサービスポート。デフォルト値: 5432

    データベース名

    自主管理 PostgreSQL データベース内の、移行オブジェクトが属するデータベースの名前を入力します。

    データベースアカウント

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

    データベースのパスワード

    データベースインスタンスへのアクセスに使用されるパスワード。

    暗号化

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

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

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

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

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

    移行先データベース

    既存の接続情報の選択

    • DTS に登録されているデータベースインスタンスを使用する場合、ドロップダウンリストからインスタンスを選択します。DTS はインスタンスの次のデータベースパラメーターを自動的に入力します。詳細については、「データベース接続の管理」をご参照ください。

      説明

      DMS コンソールでは、[DMS データベースインスタンスを選択] ドロップダウンリストからデータベースインスタンスを選択できます。

    • インスタンスを DTS に登録できない場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を構成する必要があります。

    データベースタイプ

    AnalyticDB for PostgreSQL を選択します。

    アクセス方法

    Alibaba Cloud インスタンス を選択します。

    インスタンスのリージョン

    宛先の AnalyticDB for PostgreSQL インスタンスが存在するリージョンを選択します。

    インスタンス ID

    宛先の AnalyticDB for PostgreSQL インスタンスの ID を選択します。

    データベース名

    宛先の AnalyticDB for PostgreSQL インスタンス内の、移行オブジェクトが属するデータベースの名前を入力します。

    データベースアカウント

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

    データベースのパスワード

    データベースインスタンスへのアクセスに使用されるパスワード。

  4. ページ下部の 接続をテストして続行 をクリックします。

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

    • ソースまたは宛先データベースが自己管理データベースで、その アクセス方法Alibaba Cloud インスタンス に設定されていない場合は、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックします。

  5. 移行するオブジェクトを構成します。

    1. 移行するオブジェクトを構成します。

      構成

      説明

      移行タイプ

      • 完全データ移行のみを実行するには、[スキーマ移行][完全データ移行] を選択します。

      • データ移行中のサービス継続性を確保するには、[スキーマ移行][完全データ移行]、および [増分データ移行] を選択します。

      説明
      • [スキーマ移行] を選択しない場合は、データを受信するために宛先データベースにデータベースとテーブルが作成されていること、および [選択したオブジェクト] でオブジェクト名マッピング機能が有効になっていることを確認してください。

      • [増分データ移行] を選択しない場合は、データ移行中にソースデータベースにデータを書き込まないことをお勧めします。これにより、ソースデータベースとターゲットデータベース間のデータ整合性が確保されます。

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

      • エラーの事前チェックと報告: 宛先データベースにソースデータベースのテーブルと同じ名前のテーブルが含まれているかどうかをチェックします。ソースデータベースとターゲットデータベースに同じテーブル名のテーブルが含まれていない場合、事前チェックは合格します。それ以外の場合、事前チェック中にエラーが返され、データ移行タスクを開始できません。

        説明

        ソースデータベースとターゲットデータベースに同じ名前のテーブルが含まれており、宛先データベースのテーブルを削除または名前変更できない場合は、オブジェクト名マッピング機能を使用して、宛先データベースに移行されるテーブルの名前を変更できます。詳細については、「オブジェクト名のマッピング」をご参照ください。

      • エラーを無視して続行: ソースデータベースとターゲットデータベースの同一テーブル名の事前チェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データ不整合が発生し、ビジネスが次の潜在的なリスクにさらされる可能性があります:

        • ソースデータベースとターゲットデータベースのスキーマが同じで、データレコードが宛先データベースの既存のデータレコードと同じプライマリキーを持つ場合、次のシナリオが発生する可能性があります:

          • 完全データ移行中、DTS はデータレコードを宛先データベースに移行しません。宛先データベースの既存のデータレコードが保持されます。

          • 増分データ移行中、DTS はデータレコードを宛先データベースに移行します。宛先データベースの既存のデータレコードは上書きされます。

        • ソースデータベースとターゲットデータベースのスキーマが異なる場合、特定の列のみが移行されるか、データ移行タスクが失敗します。注意して進めてください。

      同期する DDL および DML 操作

      インスタンスレベルで増分移行のための SQL 操作を選択します。サポートされている操作については、「増分移行をサポートする SQL 操作」をご参照ください。

      説明

      データベースまたはテーブルレベルで増分移行のための SQL 操作を選択するには、選択中のオブジェクト セクションで移行オブジェクトを右クリックし、ポップアップダイアログボックスで必要な SQL 操作を選択します。

      ストレージエンジンタイプ

      宛先テーブルのストレージエンジンタイプ。デフォルト値: Beam。ビジネス要件に基づいてこのパラメーターを指定します。

      説明

      このパラメーターは、宛先の AnalyticDB for PostgreSQL インスタンスのマイナーバージョンが v7.0.6.6 以降で、[移行タイプ] パラメーターに [スキーマ移行] を指定した場合にのみ使用できます。

      移行先インスタンスでのオブジェクト名の大文字化

      宛先インスタンスのデータベース名、テーブル名、および列名の大文字/小文字変換。デフォルトでは、[DTS のデフォルトポリシー] が選択されています。オブジェクト名の大文字/小文字がソースまたは宛先データベースと一致するように、他のオプションを選択できます。詳細については、「宛先インスタンスでのオブジェクト名の大文字/小文字変換を指定する」をご参照ください。

      ソースオブジェクト

      ソースオブジェクト セクションから 1 つ以上のオブジェクトを選択します。向右小箭头 アイコンをクリックして、オブジェクトを 選択中のオブジェクト セクションに追加します。

      説明

      移行するオブジェクトとして、列、テーブル、またはスキーマを選択できます。移行するオブジェクトとしてテーブルまたは列を選択した場合、DTS はビュー、トリガー、ストアドプロシージャなどの他のオブジェクトを宛先データベースに移行しません。

      選択中のオブジェクト

      • 宛先インスタンスに移行するオブジェクトの名前を変更するには、[選択したオブジェクト] セクションでオブジェクトを右クリックします。詳細については、「単一オブジェクトの名前をマッピングする」をご参照ください。

      • 一度に複数のオブジェクトの名前を変更するには、[選択したオブジェクト] セクションの右上隅にある [一括編集] をクリックします。詳細については、「一度に複数のオブジェクト名をマッピングする」をご参照ください。

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

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

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

    2. 詳細設定へ をクリックして詳細設定を構成します。

      構成

      説明

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

      デフォルトでは、専用クラスターを指定しない場合、DTS はデータ移行タスクを共有クラスターにスケジュールします。データ移行タスクの安定性を向上させたい場合は、専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。

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

      失敗した接続のリトライ時間範囲。データ移行タスクの開始後にソースまたは宛先データベースへの接続に失敗した場合、DTS はリトライ時間範囲内に直ちに接続を再試行します。有効な値: 10 から 1,440。単位: 分。デフォルト値: 720。パラメーターを 30 より大きい値に設定することをお勧めします。指定されたリトライ時間範囲内に DTS がソースおよび宛先データベースに再接続された場合、DTS はデータ移行タスクを再開します。それ以外の場合、データ移行タスクは失敗します。

      説明
      • 同じソースまたは宛先データベースを共有する複数のデータ移行タスクに異なるリトライ時間範囲を指定した場合、後で指定された値が優先されます。

      • DTS が接続を再試行する場合、DTS インスタンスに対して課金されます。ビジネス要件に基づいてリトライ時間範囲を指定することをお勧めします。また、ソースデータベースと宛先インスタンスが解放された後、できるだけ早く DTS インスタンスを解放することもできます。

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

      その他の問題のリトライ時間範囲。たとえば、データ移行タスクの開始後に DDL または DML 操作が失敗した場合、DTS はリトライ時間範囲内に直ちに操作を再試行します。有効な値: 1 から 1440。単位: 分。デフォルト値: 10。パラメーターを 10 より大きい値に設定することをお勧めします。指定されたリトライ時間範囲内に失敗した操作が正常に実行された場合、DTS はデータ移行タスクを再開します。それ以外の場合、データ移行タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 パラメーターの値は、失敗した接続の再試行時間 パラメーターの値より小さくなければなりません。

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

      完全データ移行のレート制限を有効にするかどうかを指定します。完全データ移行中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。ビジネス要件に基づいて、完全データ移行のレート制限を有効にすることができます。レート制限を構成するには、1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを構成する必要があります。これにより、宛先データベースサーバーの負荷が軽減されます。

      説明

      このパラメーターは、移行タイプ パラメーターに 完全データ移行 を選択した場合にのみ構成できます。

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

      増分データ移行のレート制限を有効にするかどうかを指定します。レート制限を構成するには、1 秒あたりの増分移行の行数 RPS および 1 秒あたりの増分移行データ量 (MB) BPS パラメーターを構成する必要があります。これにより、宛先データベースサーバーの負荷が軽減されます。

      説明

      このパラメーターは、移行タイプ パラメーターに 増分データ移行 を選択した場合にのみ構成できます。

      環境タグ

      必要に応じて、インスタンスを識別するための環境タグを選択できます。この設定はオプションです。

      ETL の設定

      抽出・変換・書き出し (ETL) 機能を有効にするかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効な値:

      監視アラート

      データ移行タスクのアラートを構成するかどうかを指定します。タスクが失敗した場合、または移行遅延が指定されたしきい値を超えた場合、アラート連絡先は通知を受け取ります。有効な値:

      • [いいえ]: アラートを構成しません。

      • [はい]: アラートを構成します。この場合、アラートのしきい値と アラート通知設定も構成する必要があります。詳細については、「モニタリングとアラートの設定」トピックの「DTS タスク作成時のモニタリングとアラートの設定」セクションをご参照ください。

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

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

    4. 上記の設定が完了したら、ページ下部の 次:データベースおよびテーブルのフィールド設定 をクリックします。次のページで、宛先の AnalyticDB for PostgreSQL インスタンスの移行テーブルのプライマリキーと分布列を構成します。

      説明

      このページは、移行タイプスキーマ移行 に設定されている場合にのみ表示されます。プライマリキー列と分布列の詳細については、「データテーブル管理」および「テーブル分散定義」をご参照ください。

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

    • 関連する API 操作を呼び出して DTS タスクを構成する際に指定するパラメーターを表示するには、次:タスク設定の保存と事前チェック にポインターを合わせ、OpenAPI パラメーターのプレビュー をクリックします。

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

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

    • タスクが事前チェックに失敗した場合、失敗した各項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析した後、問題をトラブルシューティングします。その後、再度事前チェックを実行します。

    • 事前チェック中に項目に対してアラートがトリガーされた場合:

      • アラート項目を無視できない場合は、失敗した項目の横にある [詳細の表示] をクリックして問題をトラブルシューティングします。その後、再度事前チェックを実行します。

      • アラート項目を無視できる場合は、[アラート詳細の確認] をクリックします。[詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。その後、[再度事前チェック] をクリックして再度事前チェックを実行します。アラート項目を無視すると、データ不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。

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

    1. [成功率][100%] になるまで待ちます。その後、[次へ: インスタンスの購入] をクリックします。

    2. [インスタンスの購入] ページで、データ移行インスタンスのインスタンスクラスパラメーターを構成します。次の表にパラメーターを示します。

      セクション

      パラメーター

      説明

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

      リソースグループ

      データ移行インスタンスが属するリソースグループ。デフォルト値: デフォルトリソースグループ。詳細については、「Resource Management とは」をご参照ください。

      インスタンスクラス

      DTS は、移行速度が異なるインスタンスクラスを提供します。ビジネスシナリオに基づいてインスタンスクラスを選択できます。詳細については、「データ移行インスタンスのインスタンスクラス」をご参照ください。

    3. [Data Transmission Service (Pay-as-you-go) Service Terms] を読み、同意のチェックボックスをオンにします。

    4. [購入して開始] をクリックします。表示されるメッセージで、[OK] をクリックします。

      [データ移行] ページでタスクの進行状況を表示できます。

      説明
      • データ移行タスクが増分データを移行できない場合、タスクは自動的に停止します。[ステータス] セクションに [完了] が表示されます。

      • データ移行タスクが増分データを移行できる場合、タスクは自動的に停止しません。増分データ移行タスクは決して停止したり完了したりしません。[ステータス] セクションに [実行中] が表示されます。