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

Data Transmission Service:自己管理 PostgreSQL データベースから ApsaraDB RDS for PostgreSQL インスタンスへのデータ同期

最終更新日:Jan 06, 2026

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

前提条件

  • ソースの自己管理 PostgreSQL データベースとターゲットの ApsaraDB RDS for PostgreSQL インスタンスが作成済みである必要があります。ターゲットの ApsaraDB RDS for PostgreSQL インスタンスの作成方法の詳細については、「ApsaraDB RDS for PostgreSQL インスタンスの作成」をご参照ください。

    説明
    • 説明

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

    • ターゲットデータベースのバージョンは、ソースデータベースのバージョンと同じか、それ以降である必要があります。これにより、データベースの互換性が確保されます。ターゲットデータベースのバージョンがソースデータベースのバージョンより古い場合、データベースの互換性の問題が発生する可能性があります。

  • ターゲットの ApsaraDB RDS for PostgreSQL インスタンスの利用可能なストレージ領域は、ソースの自己管理 PostgreSQL データベースが占有するストレージ領域よりも大きい必要があります。

注意事項

タイプ

説明

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

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

    説明

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

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

  • テーブルレベルでデータを同期し、列名のマッピングなどのオブジェクトを編集する必要があり、単一の同期タスク内のテーブル数が 5,000 を超える場合は、テーブルを複数のタスクに分割するか、データベース全体を同期するタスクを設定してください。そうしないと、タスクを送信した後にリクエストエラーが報告される可能性があります。

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

  • 先行書き込みログ (WAL):

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

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

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

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

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

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

    説明

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

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

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

    説明

    初期完全同期中、DTS はソースデータベースにクエリを実行します。これによりメタデータロックが作成され、ソースデータベースでの DDL 操作がブロックされる可能性があります。

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

その他の制限

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

  • DTS は、TimescaleDB 拡張テーブルや、スキーマをまたいで継承するテーブルを同期しません。

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

  • 以下の 3 つのシナリオでは、データを書き込む前に、同期するテーブルに対して ALTER TABLE schema.table REPLICA IDENTITY FULL; コマンドを実行する必要があります。これにより、データ整合性が確保されます。このコマンドの実行中は、テーブルロック操作を実行しないでください。そうしないと、テーブルがロックされる可能性があります。事前チェックで関連するチェック項目をスキップした場合、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 アドレスのホワイトリストを削除したりすると、レプリケーションスロットは自動的にクリアされません。この場合、ソースデータベースで手動でレプリケーションスロットをクリアして、それが蓄積されてディスク領域を占有し、ソースデータベースが利用できなくなるのを防ぐ必要があります。

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

    Amazon slot查询信息

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

  • 初期完全同期は同時 INSERT 操作を実行するため、ターゲットデータベースでテーブルの断片化が発生します。その結果、初期完全同期が完了した後、ターゲットインスタンスの表領域はソースインスタンスの表領域よりも大きくなります。

  • テーブルレベルのデータ同期で、DTS からのデータ以外にターゲットデータベースにデータが書き込まれない場合は、Data Management (DMS) を使用してオンライン DDL 操作を実行できます。詳細については、「テーブルロックなしでのスキーマ変更の実行」をご参照ください。

  • DTS 同期中は、DTS からのデータ以外にターゲットデータベースにデータを書き込まないでください。そうしないと、ソースデータベースとターゲットデータベースの間でデータ不整合が発生します。たとえば、他のデータがターゲットデータベースに書き込まれている間に DMS を使用してオンライン DDL 操作を実行すると、ターゲットデータベースでデータが失われる可能性があります。

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

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

    説明

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

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

    説明

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

課金説明

同期タイプ

タスク構成料金

スキーマ同期と完全データ同期

無料。

増分同期

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

サポートされる同期トポロジ

  • 一対一の一方向同期

  • 一対多の一方向同期

  • カスケードの一方向同期

  • 多対一の一方向同期

DTS がサポートする同期トポロジの詳細については、「同期トポロジ」をご参照ください。

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

    同期可能な SQL 操作

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

    事前準備

    説明

    以下の手順では、Linux オペレーティングシステムを例として使用します。

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

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

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

      select count(1) from pg_replication_slots;
    3. postgresql.conf ファイルを修正します。wal_level パラメーターを logical に設定します。max_wal_sendersmax_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 ブロックを追加する」をご参照ください。

      説明
      • 設定ファイルを修正した後、SELECTpg_reload_conf(); コマンドを実行するか、自己管理 PostgreSQL データベースを再起動して変更を有効にしてください。

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

      IP

    5. 同期するオブジェクトのデータベースとスキーマ情報に基づいて、ターゲットの ApsaraDB RDS for PostgreSQL インスタンスに対応するデータベースとスキーマを作成します。スキーマ名は同じでなければなりません。詳細については、「データベースの作成」および「スキーマの管理」をご参照ください。

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

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

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

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

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

        重要
        • PostgreSQL をコンパイルしてインストールする際、オペレーティングシステムのバージョンは 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. 同期するオブジェクトのデータベースとスキーマに基づいて、ターゲットの ApsaraDB RDS for PostgreSQL インスタンスに対応するデータベースとスキーマを作成します。スキーマ名は同じでなければなりません。詳細については、「データベースの作成」および「スキーマの管理」をご参照ください。

    操作手順

    1. ターゲットリージョンのデータ同期タスクリストページに移動します。次のいずれかの方法を使用できます。

      DTS コンソールから

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

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

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

      DMS コンソールから

      説明

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

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

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

      3. データ同期タスク の右側で、同期インスタンスのリージョンを選択します。

    2. タスクの作成 をクリックします。タスク設定ページが開きます。

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

      警告

      ソースインスタンスとターゲットインスタンスを選択した後、ページ上部の 制限事項 を確認してください。そうしないと、タスクが失敗したり、データ不整合が発生したりする可能性があります。

      カテゴリ

      構成

      説明

      N/A

      タスク名

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

      移行元データベース

      データベースタイプ

      PostgreSQL を選択します。

      アクセス方法

      Cloud Enterprise Network (CEN) を選択します。

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

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

      CEN インスタンス ID/CEN インスタンス 名

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

      既にデータベースに接続されている VPC ネットワーク

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

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

      自己管理 PostgreSQL データベースが存在するサーバーの IP アドレスを入力します。

      ポート番号

      自己管理 PostgreSQL データベースのサービスポートを入力します。デフォルトは 3433 です。

      データベース名

      同期するオブジェクトを含む自己管理 PostgreSQL インスタンス内のデータベースの名前を入力します。

      データベースアカウント

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

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

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

      暗号化

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

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

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

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

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

      移行先データベース

      データベースタイプ

      PostgreSQL を選択します。

      アクセス方法

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

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

      ターゲットの ApsaraDB RDS for PostgreSQL インスタンスが存在するリージョンを選択します。

      インスタンス ID

      ターゲットの ApsaraDB RDS for PostgreSQL インスタンスの ID を選択します。

      データベース名

      同期されたオブジェクトを含むターゲットの ApsaraDB RDS for PostgreSQL インスタンス内のデータベースの名前を入力します。

      データベースアカウント

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

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

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

      暗号化

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

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

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

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

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

    4. 設定完了後、ページ下部の 接続をテストして続行 をクリックします。

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

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

    5. タスクオブジェクトを設定します。

      1. オブジェクト設定 ページで、同期するオブジェクトを設定できます。

        構成

        説明

        同期タイプ

        増分同期 がデフォルトで選択されています。スキーマ同期完全データ同期 も選択する必要があります。事前チェックが完了すると、DTS はソースインスタンスの完全データでターゲットクラスターの同期オブジェクトを初期化します。このデータは、後続の増分同期のベースラインとして機能します。

        説明

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

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

        • エラーの事前チェックと報告:ターゲットデータベースに同名のテーブルがあるかチェックします。同名のテーブルが見つかった場合、事前チェック中にエラーが報告され、データ同期タスクは開始されません。それ以外の場合、事前チェックは成功します。

          説明

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

        • エラーを無視して続行:ターゲットデータベースでの名前の衝突チェックをスキップします。

          警告

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

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

            • 完全データ同期中、DTS はターゲットクラスターのレコードを保持します。ソースデータベースの対応するレコードは同期されません。

            • 増分同期中、ソースデータベースのレコードがターゲットデータベースのレコードを上書きします。

          • テーブルスキーマが一致しない場合、データ初期化が失敗する可能性があります。これにより、一部の列のみの同期または完全な同期失敗が発生する可能性があります。注意して進めてください。

        同期トポロジ

        これは一方向同期のシナリオです。一方向同期 を選択します。

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

        ターゲットインスタンスのデータベース、テーブル、および列オブジェクトの名前の大文字/小文字ポリシーを設定できます。デフォルトでは、DTS デフォルトポリシー が選択されています。ソースまたはターゲットデータベースのデフォルトポリシーを使用することも選択できます。詳細については、「ターゲットオブジェクト名の大文字/小文字ポリシー」をご参照ください。

        ソースオブジェクト

        ソースオブジェクト ボックスでオブジェクトをクリックし、向右 をクリックして 選択中のオブジェクト ボックスに移動します。

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

        • 同期するテーブルに SERIAL データ型が含まれており、同期タイプとして スキーマ同期 を選択した場合、シーケンスまたはスキーマ全体の同期も選択することを推奨します。

        選択中のオブジェクト

        • ターゲットインスタンスで単一の同期オブジェクトの名前を変更するには、選択中のオブジェクト ボックスでオブジェクトを右クリックします。詳細については、「単一のオブジェクト名のマッピング」をご参照ください。

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

        説明
        • データベースまたはテーブルレベルで同期する SQL 操作を選択するには、選択済みオブジェクト セクションで同期するオブジェクトを右クリックします。表示されるダイアログボックスで、目的の操作を選択します。

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

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

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

        構成

        説明

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

        デフォルトでは、DTS は共有クラスターでタスクをスケジュールするため、選択する必要はありません。タスクの安定性を高めるために、DTS 同期タスクを実行するための専用クラスターを購入できます。詳細については、「DTS 専用クラスターとは」をご参照ください。

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

        同期タスクの開始後にソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、直ちに接続のリトライを開始します。デフォルトのリトライ時間は 720 分です。リトライ時間は 10 分から 1,440 分の間でカスタマイズできます。30 分以上の設定を推奨します。指定されたリトライ時間内に DTS が再接続した場合、タスクは自動的に再開されます。それ以外の場合、タスクは失敗します。

        説明
        • 同じソースまたはターゲットを持つ複数の DTS インスタンス (DTS インスタンス A と DTS インスタンス B など) で、A のネットワークリトライ時間が 30 分、B が 60 分に設定されている場合、短い方の 30 分が適用されます。

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

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

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

        重要

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

        完全同期レートを制限するかどうか

        完全データ同期フェーズ中、DTS はソースおよびターゲットデータベースの読み書きリソースを消費し、それらの負荷を増加させる可能性があります。1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS を設定することで、完全データ同期タスクのレート制限を設定し、ターゲットデータベースへの圧力を軽減できます。

        説明

        増分同期率を制限するかどうか

        1 秒あたりの増分同期の行数 RPS1 秒あたりの増分同期データ量 (MB) BPS を設定することで、増分同期タスクのレート制限を設定し、ターゲットデータベースへの圧力を軽減することもできます。

        環境タグ

        インスタンスを識別するための環境タグを選択できます。

        ETL 機能の設定

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

        監視アラート

        アラートを設定するかどうかを指定します。同期が失敗した場合や、遅延が指定されたしきい値を超えた場合に、アラート連絡先に通知が送信されます。

      3. 次へ:データ検証 をクリックしてタスクを設定します。

        データ検証機能を使用するには、「データ検証の設定」をご参照ください。

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

      • API 操作でこのインスタンスを設定するためのパラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにマウスを移動し、ツールチップの OpenAPI パラメーターのプレビュー をクリックします。

      • API パラメーターの表示が完了したら、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。

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

      • 事前チェックが失敗した場合は、失敗した項目の横にある 詳細を表示 をクリックし、プロンプトに従って問題を解決してから、事前チェックを再実行してください。

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

        • チェック項目が失敗し、無視できない場合は、項目の横にある 詳細を表示 をクリックします。その後、指示に従って問題を修正し、事前チェックを再実行してください。

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

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

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

      2. 購入 ページで、データ同期インスタンスの課金方法とリンク仕様を選択します。詳細については、次の表をご参照ください。

        カテゴリ

        パラメーター

        説明

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

        課金方法

        • サブスクリプション:インスタンス作成時にお支払いいただきます。長期的なニーズに適しており、従量課金よりも手頃で、サブスクリプション期間が長いほど割引率が高くなります。

        • 従量課金:時間単位で課金されます。短期的なニーズに適しています。使用後すぐにインスタンスをリリースしてコストを節約できます。

        リソースグループ構成

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

        リンク仕様

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

        サブスクリプション期間

        サブスクリプションモードでは、サブスクリプションインスタンスの期間と数量を選択します。月次サブスクリプションでは 1〜9 ヶ月、年次サブスクリプションでは 1、2、3、または 5 年から選択できます。

        説明

        このオプションは、課金方法が サブスクリプション の場合にのみ表示されます。

      3. 設定が完了したら、Data Transmission Service (従量課金) 利用規約 を読み、選択します。

      4. 購入して起動 をクリックし、OK ダイアログボックスで OK をクリックします。

        データ同期ページでタスクの進捗状況を確認できます。