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

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

最終更新日:Jan 06, 2026

このトピックでは、Data Transmission Service (DTS) を使用して、自主管理 PostgreSQL データベースから RDS for PostgreSQL インスタンスにデータを移行する方法について説明します。DTS は、スキーマ移行、完全なデータ移行、増分データ移行をサポートしています。これらの 3 つの移行タイプを組み合わせて使用することで、サービスの中断を最小限に抑えながら、自主管理 PostgreSQL データベースをクラウドに移行できます。

前提条件

  • ソースの自主管理 PostgreSQL データベースよりも多くのストレージ領域を持つ宛先の RDS for PostgreSQL インスタンスを作成します。RDS for PostgreSQL インスタンスの作成の詳細については、「RDS for PostgreSQL インスタンスの作成」をご参照ください。

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

    • 互換性を確保するため、ターゲットデータベースのバージョンはソースデータベースのバージョンと同じか、それ以降である必要があります。新しいバージョンから古いバージョンにデータを移行すると、データベースの互換性の問題が発生する可能性があります。

  • 移行したデータを保存するために、宛先の RDS for PostgreSQL インスタンスにデータベースを作成します。詳細については、「データベースの作成」をご参照ください。

注意事項

タイプ

説明

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

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

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

    説明

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

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

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

  • DTS は、ソースデータベースからの一時テーブル、内部トリガー、および一部の関数 (C 言語関数、PROCEDURE および FUNCTION の内部関数) の移行をサポートしていません。DTS は、一部のカスタムデータ (TYPE が COMPOSITE、ENUM、または RANGE) の移行をサポートしています。DTS は、プライマリキー、外部キー、および UNIQUE 制約と CHECK 制約の移行をサポートしています。

  • 増分移行の場合、先行書き込みログ (WAL) は次のようになります:

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

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

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

    • 自主管理 PostgreSQL データベースでフェールオーバーが発生した場合、移行は失敗します。

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

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

  • ソースデータベースに長時間トランザクションがあり、インスタンスが増分移行を実行する場合、トランザクションコミット前の先行書き込みログ (WAL) がクリアされない可能性があります。これにより、ログが蓄積され、ソースデータベースのディスク領域が不足する可能性があります。

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

その他の制限

  • ソースデータベースのプライマリノードとセカンダリノード間の潜在的な遅延により、データ不整合が発生する可能性があるため、移行のデータソースとしてソースデータベースのプライマリノードを使用してください。

  • 1 つのデータ移行タスクで移行できるデータベースは 1 つだけです。複数のデータベースを移行するには、データベースごとにデータ移行タスクを設定する必要があります。

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

  • 移行対象のテーブルに SERIAL 型のフィールドが含まれている場合、ソースデータベースはそのフィールドのシーケンスを自動的に作成します。したがって、ソースオブジェクト を設定する際に、移行タイプスキーマ移行 を選択した場合は、[シーケンス] も選択するか、完全なスキーマ移行を実行することをお勧めします。そうしないと、移行インスタンスが失敗する可能性があります。

  • DTS インスタンスが増分データ移行タスクを実行する場合、データを書き込む前に、ソースデータベースの移行対象テーブルで ALTER TABLE schema.table REPLICA IDENTITY FULL; コマンドを実行する必要があります。これは、以下の 2 つのシナリオに適用され、データ整合性を確保します。このコマンドの実行中は、テーブルロック操作を実行しないことを推奨します。そうしないと、テーブルがロックされる可能性があります。事前チェックで関連するチェックをスキップした場合、DTS はインスタンスの初期化中にこのコマンドを自動的に実行します。

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

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

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

    • この操作はオフピーク時に実行することを推奨します。

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

  • ビジネスを宛先インスタンスに切り替えた後、新しいシーケンスはソースシーケンスの最大値から増分しません。ビジネスのスイッチオーバーの前に、ターゲットデータベースのシーケンス値を更新する必要があります。詳細については、「ターゲットデータベースのシーケンス値の更新」をご参照ください。

  • 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 はこのレプリケーションスロットを自動的にクリアしようとします。

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

    • ソースデータベースでフェールオーバーが発生した場合、セカンダリデータベースにログインしてスロットを手動でクリアする必要があります。

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

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

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

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

  • DTS は、失敗した移行タスクを 7 日以内に再開しようとします。したがって、ビジネスを宛先インスタンスに切り替える前に、タスクを終了またはリリースする必要があります。または、revoke コマンドを使用して、DTS が宛先インスタンスにアクセスするために使用するアカウントの書き込み権限を取り消します。これにより、タスクが自動的に再開された場合に、ソースデータが宛先インスタンスのデータを上書きするのを防ぎます。

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

    説明

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

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

    説明

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

特殊なケース

  • ソースインスタンスが自主管理 PostgreSQL データベースの場合、`max_wal_senders` および `max_replication_slots` パラメーターの値が、現在使用中のレプリケーションスロットの数と、このデータベースをソースとして作成される DTS インスタンスの数の合計よりも大きいことを確認してください。

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

    説明

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

移行タイプ

  • スキーマ移行

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

    説明

    DTS は、テーブル、トリガー、ビュー、シーケンス、関数、ユーザー定義型、ルール、ドメイン、操作、集計など、次の種類のオブジェクトのスキーマ移行をサポートしています。

  • 完全移行

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

  • 増分移行

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

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

    増分移行をサポートする 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 データベースは PostgreSQL 11 以降である必要があります。)

      • CREATE INDEX ON TABLE

      重要
      • CASCADE や RESTRICT など、DDL 文の追加情報は移行されません。

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

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

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

      • ソースデータベースから一度に送信される複数の SQL 文に、移行対象でないオブジェクトの DDL が含まれている場合、DDL 文は移行されません。

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

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

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

    データベース

    スキーマ移行

    完全移行

    増分移行

    自主管理 PostgreSQL データベース

    pg_catalog に対する USAGE 権限

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

    スーパーユーザー

    RDS for PostgreSQL インスタンス

    移行対象オブジェクトに対する CREATE および USAGE 権限

    スキーマ所有者の権限

    スキーマ所有者の権限

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

    • 自主管理 PostgreSQL データベースについては、CREATE USER および GRANT 構文をご参照ください。

    • RDS for PostgreSQL インスタンスについては、「アカウントの作成」をご参照ください。

    事前準備

    説明

    自主管理 PostgreSQL データベースのすべてのバージョンで、以下の準備を行ってください。

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

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

      select count(1) from pg_replication_slots;
    3. postgresql.conf ファイルを変更します。wal_level パラメーターを logical に設定します。max_wal_senders および max_replication_slots パラメーターの値が、使用中のレプリケーションスロットの数と、この自主管理 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 データベースを再起動して、パラメーター設定を有効にします。

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

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

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

      IP

    5. 移行対象オブジェクトのデータベースとスキーマ情報に基づいて、宛先の RDS for PostgreSQL インスタンスに対応するデータベースとスキーマを作成します。スキーマ名は同じである必要があります。詳細については、「データベースの作成」および「スキーマの管理」をご参照ください。

    自主管理 PostgreSQL データベースのバージョンが 9.4.8 から 10.0 の場合は、以下の準備も行う必要があります。

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

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

      2. sudo ./configuresudo makesudo make install コマンドを順に実行して、ソースコードを設定、コンパイル、インストールします。

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

        • 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. 移行対象オブジェクトのデータベースとスキーマ情報に基づいて、宛先の RDS for PostgreSQL インスタンスに対応するデータベースとスキーマを作成します。スキーマ名は同じである必要があります。詳細については、「データベースの作成」および「スキーマの管理」をご参照ください。

    操作手順

    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] を選択します。

      アクセス方法

      ソースデータベースのデプロイ場所に基づいて接続タイプを選択します。このトピックでは、[Cloud Enterprise Network (CEN)] を例として使用します。

      説明

      ソースインスタンスが自己管理データベースの場合は、必要な準備も行う必要があります。詳細については、「事前準備」をご参照ください。

      インスタンスリージョン

      自主管理 PostgreSQL データベースが配置されているリージョンを選択します。

      CEN インスタンス ID

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

      データベースに接続された VPC

      自主管理 PostgreSQL データベースに接続されている VPC を選択します。

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

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

      ポート

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

      データベース名

      移行対象のオブジェクトを含む自主管理 PostgreSQL インスタンス内のデータベースの名前を入力します。

      データベースアカウント

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

      データベースパスワード

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

      暗号化

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

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

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

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

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

      移行先データベース

      既存の接続情報の選択

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

        説明

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

      • DTS へのインスタンスの登録に失敗した場合、または DTS に登録されているインスタンスを使用する必要がない場合は、次のデータベース情報を設定する必要があります。

      データベースタイプ

      [PostgreSQL] を選択します。

      アクセス方法

      [クラウドインスタンス] を選択します。

      インスタンスリージョン

      宛先の RDS for PostgreSQL インスタンスが配置されているリージョンを選択します。

      インスタンス ID

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

      データベース名

      移行されたオブジェクトを受け取る宛先の RDS for PostgreSQL インスタンス内のデータベースの名前を入力します。

      データベースアカウント

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

      データベースパスワード

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

      暗号化

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

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

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

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

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

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

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

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

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

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

        設定

        説明

        移行タイプ

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

        • サービスを停止せずにデータを移行するには、スキーマ移行完全データ移行、および増分データ移行を選択します。

        説明
        • スキーマ移行 を選択すると、DTS は移行対象のテーブルのスキーマをソースデータベースからターゲットデータベースに移行します。スキーマには外部キーが含まれます。

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

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

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

          説明

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

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

          警告

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

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

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

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

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

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

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

        ソースオブジェクト

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

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

        • 移行対象のテーブルに SERIAL フィールドが含まれており、スキーマ移行移行タイプ として選択した場合、[シーケンス] も選択するか、スキーマ全体を移行することをお勧めします。

        選択中のオブジェクト

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

        • 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. [次のステップ:データ検証] をクリックしてデータ検証タスクを設定します。

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

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

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

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

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

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

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

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

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

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

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

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

        セクション

        パラメーター

        説明

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

        リソースグループ

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

        インスタンスクラス

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

      3. [Data Transmission Service (従量課金) サービス規約] を読み、チェックボックスを選択して同意します。

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

        タスクの進捗は、[データ移行] ページで確認できます。

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

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