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

Data Transmission Service:RDS PostgreSQL 変更追跡タスクの作成

最終更新日:Dec 05, 2025

Data Transmission Service (DTS) は、自己管理 PostgreSQL および ApsaraDB RDS for PostgreSQL インスタンスの変更追跡タスクの作成をサポートしています。このトピックでは、ApsaraDB RDS for PostgreSQL インスタンスを例に、設定手順を説明します。

前提条件

注意事項

タイプ

説明

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

  • ソーステーブルには PRIMARY KEY または一意性制約が必要で、すべてのフィールドが一意である必要があります。そうでない場合、追跡されたデータ変更の一部が重複する可能性があります。

  • 追跡対象オブジェクトとしてテーブルを選択する場合、1 つの変更追跡タスクで追跡できるテーブルは最大 500 です。500 を超えるテーブルを追跡する変更追跡タスクを実行すると、リクエストエラーが発生します。この場合、複数のタスクを設定してテーブルをバッチで追跡するか、データベース全体に対して変更追跡タスクを設定することを推奨します。

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

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

    • DTS では、ソースデータベースに WAL ログを 24 時間以上保持する必要があります。そうしないと、DTS が WAL ログを取得できなくなる可能性があります。これにより、タスクが失敗したり、極端な場合にはデータの不整合や損失につながる可能性があります。WAL ログの保持期間を必要な時間より短く設定したことによる問題は、DTS のサービスレベルアグリーメント (SLA) の対象外です。

  • ソースインスタンスが読み取り専用インスタンスまたは一時インスタンスである場合は、インスタンスにトランザクションを記録するログがあることを確認してください。

  • 変更追跡タスクが期待どおりに実行され、プライマリ/セカンダリの切り替えによる中断を防ぐために、RDS PostgreSQL は論理レプリケーションスロットのフェイルオーバーをサポートし、有効にする必要があります。詳細については、「論理レプリケーションスロットのフェイルオーバー」をご参照ください。

  • ソースデータベースの論理サブスクリプションには制限があります。変更追跡プロセス中に、1 つの更新データレコードが 256 MB を超えると、変更追跡インスタンスが失敗し、回復できなくなる可能性があります。この場合、変更追跡インスタンスを再設定する必要があります。

その他の制限

  • ソースインスタンスのスキーマ更新 (CREATE、DROP、ALTER 操作) を追跡するには、ソースデータベースにトリガーと関数を作成して、データ定義言語 (DDL) 情報をキャプチャします。詳細については、「トリガーと関数を使用した PostgreSQL の増分 DDL 移行の実装」をご参照ください。

  • 表示される変更追跡の遅延の精度を確保するために、DTS はソースデータベースに dts_postgres_heartbeat という名前のハートビートテーブルを追加します。

  • 増分データ追跡中、DTS はソースデータベースに dts_sync_ というプレフィックスを持つレプリケーションスロットを作成してデータをレプリケートします。DTS は、過剰なディスク領域の消費を防ぐために、90 分ごとに履歴レプリケーションスロットを自動的にクリアします。

    説明

    変更追跡タスクがリリースまたは失敗すると、DTS は自動的にレプリケーションスロットをクリアします。RDS PostgreSQL インスタンスでプライマリ/セカンダリの切り替えが発生した場合は、セカンダリデータベースにログインして手動でレプリケーションスロットをクリアする必要があります。

    Amazon slot查询信息

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

  • 追跡するデータの 1 行が 16 MB を超える場合、データをコンシュームできません。これにより、コンシューマークライアントでメモリ不足 (OOM) エラーが発生する可能性があります。

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

  • デフォルトでは、タイムゾーンを含む時間データ型は、対応する UTC+8 タイムゾーンの時間に変換されます。

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

    説明

    パラメーターが調整されるとき、DTS インスタンスのパラメーターのみが変更されます。データベースのパラメーターは変更されません。

特殊なケース

ソースインスタンスが RDS PostgreSQL インスタンスの場合、変更追跡プロセス中に RDS PostgreSQL インスタンスのエンドポイントまたはゾーンを変更しないでください。変更すると、変更追跡タスクは失敗します。

操作手順

  1. 次のいずれかの方法で [変更追跡タスク] ページに移動し、変更追跡インスタンスが存在するリージョンを選択します。

    DTS コンソール

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

    2. 左側のナビゲーションウィンドウで、[変更追跡] をクリックします。

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

    DMS コンソール

    説明

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

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

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

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

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

  3. [ソースデータベース] と [コンシューマーネットワークタイプ] セクションでパラメーターを設定します。

    警告

    ソースデータベースインスタンスを指定した後、ページの上部に表示される [制限事項] をお読みになることを推奨します。そうしないと、タスクが失敗したり、追跡されたデータをコンシュームできなくなったりする可能性があります。

    カテゴリ

    設定

    説明

    なし

    タスク名

    変更追跡タスクの名前。DTS はタスクに自動的に名前を割り当てます。タスクを簡単に識別できるような、わかりやすい名前を指定することを推奨します。一意のタスク名を使用する必要はありません。

    ソースデータベース

    既存の接続情報の選択

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

      説明

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

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

    データベースタイプ

    [PostgreSQL] を選択します。

    アクセス方法

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

    インスタンスリージョン

    RDS PostgreSQL インスタンスが存在するリージョンを選択します。

    Alibaba Cloud アカウント間でデータを複製

    Alibaba Cloud アカウント間でデータを追跡するかどうかを指定します。この例では、× が選択されています。

    重要

    Alibaba Cloud アカウント間でクラウドリソースにアクセスする場合は、このパラメーターを に設定し、Alibaba Cloud アカウントRAM ロール名 パラメーターを指定します。DTS タスクを設定するために使用される Alibaba Cloud アカウントに対して Resource Access Management (RAM) 権限付与を設定する必要があります。RAM 権限付与の設定方法の詳細については、「アカウント間 DTS タスクの RAM 権限付与の設定」をご参照ください。

    [インスタンス ID]

    RDS PostgreSQL インスタンス ID を選択します。

    データベース名

    追跡するデータベースの名前を入力します。

    データベースアカウント

    RDS PostgreSQL インスタンスの特権アカウントを入力します。アカウントは、選択したデータベースのオーナーである必要があります。アカウントの作成と権限の付与の詳細については、「アカウントの作成」および「データベースの作成」をご参照ください。

    データベースパスワード

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

    暗号化

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

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

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

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

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

    消費者ネットワークタイプ

    ネットワークタイプ

    [ネットワークタイプ] パラメーターの値は [VPC] に固定されています。[VPC][vSwitch] を選択する必要があります。詳細については、「VPC」をご参照ください。

    説明
    • 変更追跡タスクを設定した後は、[コンシューマーネットワークタイプ] セクションの設定を変更することはできません。

    • 変更追跡クライアントが VPC にデプロイされている場合は、クライアントに接続されているのと同じ [VPC][vSwitch] を選択することを推奨します。

    • 内部ネットワーク経由でデータ変更を追跡する場合、ネットワーク遅延は最小限に抑えられます。

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

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

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

  5. 変更追跡のオブジェクトを設定します。

    1. オブジェクト設定 ページで、変更追跡のオブジェクトを設定します。

      設定

      説明

      データ変更タイプ

      データ変更タイプ オプションはデフォルトで選択されており、変更できません。

      • [データ更新]

        DTS は、選択したオブジェクトのデータ更新 (INSERT、DELETE、UPDATE 操作を含む) を追跡します。

      • [スキーマ更新]

        DTS は、ソースインスタンスのすべてのオブジェクトスキーマに対して実行される作成、削除、変更操作を追跡します。追跡するデータは、変更追跡クライアントを使用してフィルター処理する必要があります。

      説明

      [スキーマ更新] を追跡するには、ソースデータベースにトリガーと関数を作成して DDL 情報をキャプチャします。詳細については、「トリガーと関数を使用した PostgreSQL の増分 DDL 移行の実装」をご参照ください。

      ソースオブジェクト

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

      説明

      変更追跡のオブジェクトとして、テーブルまたはデータベースを選択できます。

      • オブジェクトとしてデータベースを選択した場合、DTS はデータベース内の新しいオブジェクトを含むすべてのオブジェクトの増分データを追跡します。

      • オブジェクトとしてテーブルを選択した場合、DTS はこのテーブルの増分データのみを追跡します。この場合、別のテーブルのデータ変更を追跡するには、そのテーブルをオブジェクトリストに追加する必要があります。詳細については、「変更追跡のオブジェクトの変更」をご参照ください。

    2. 詳細設定へ をクリックして、高度な設定を行います。

      設定

      説明

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

      デフォルトでは、DTS はタスクを共有クラスターにスケジュールします。このパラメーターを設定する必要はありません。指定した仕様の専用クラスターを購入して、DTS 変更追跡タスクを実行できます。詳細については、「DTS 専用クラスターとは」をご参照ください。

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

      接続失敗時のリトライ時間範囲。変更追跡タスクが失敗した場合、DTS は時間範囲内ですぐに接続をリトライします。有効な値:10~1440。単位:分。デフォルト値:720。このパラメーターは 30 より大きい値に設定することを推奨します。指定した時間範囲内に DTS がソースデータベースインスタンスに再接続されると、DTS は変更追跡タスクを再開します。そうでない場合、変更追跡タスクは失敗します。

      説明
      • データベースインスタンスに複数の変更追跡タスクが設定されている場合、最も短いリトライ時間範囲が優先されます。たとえば、同じデータベースインスタンスに対してタスク A とタスク B が設定されているとします。タスク A のリトライ時間範囲が 30 分、タスク B のリトライ時間範囲が 60 分の場合、30 分のリトライ時間範囲が優先されます。

      • DTS が接続をリトライすると、料金が発生します。ビジネス要件に基づいてリトライ時間範囲を指定するか、ソースデータベースインスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることを推奨します。

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

      その他の問題のリトライ時間範囲。たとえば、変更追跡タスクの開始後に DDL または DML 操作の実行に失敗した場合、DTS はリトライ時間範囲内にすぐに操作をリトライします。有効な値:1~1440。単位:分。デフォルト値:10。このパラメーターは 10 より大きい値に設定することを推奨します。指定したリトライ時間範囲内に失敗した操作が正常に実行されると、DTS は変更追跡タスクを再開します。そうでない場合、変更追跡タスクは失敗します。

      重要

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

      環境タグ

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

      監視アラート

      変更追跡タスクのアラートを有効にするかどうかを指定します。アラートが設定されていて、タスクが失敗したり、遅延がしきい値を超えたりすると、アラート通知が送信されます。有効な値:

  6. ページの下部で、[次へ:タスク設定を保存して事前チェック] をクリックします。

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

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

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

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある [詳細の表示] をクリックします。エラーメッセージに基づいて問題をトラブルシューティングした後、再度事前チェックを実行できます。

    • 事前チェック中に項目に対してアラートが生成された場合は、シナリオに基づいて次の操作を実行します:

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

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

  7. インスタンスの購入

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

    2. [購入] ページで、変更追跡インスタンスの課金方法を指定します。次の表にパラメーターを説明します。

      パラメーター

      説明

      課金方法

      • サブスクリプション:インスタンス作成時にサブスクリプション料金を支払います。サブスクリプション課金方法は、長期利用の場合、従量課金よりも費用対効果が高くなります。サブスクリプション期間が長いほど、料金は安くなります。

      • 従量課金:従量課金インスタンスは時間単位で課金されます。短期利用の場合は、従量課金を選択することを推奨します。従量課金インスタンスが不要になった場合は、インスタンスをリリースしてコストを削減できます。

      リソースグループ設定

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

      サブスクリプション期間

      サブスクリプション課金方法を選択した場合は、サブスクリプション期間と作成するインスタンスの数を設定します。サブスクリプション期間は、1~9 か月、1 年、2 年、3 年、または 5 年です。

      説明

      このパラメーターは、[サブスクリプション] 課金方法を選択した場合にのみ使用できます。

    3. [Data Transmission Service (従量課金) 利用規約] を読み、選択します。

    4. [購入して開始] をクリックして、変更追跡タスクを開始します。タスクリストでタスクの進行状況を確認できます。

次のステップ

変更追跡タスクが実行中の場合、ダウンストリームクライアントに基づいてコンシューマーグループを作成し、追跡されたデータをコンシュームできます。

  1. コンシューマーグループの作成と管理の詳細については、「コンシューマーグループの作成」をご参照ください。

  2. 次のいずれかの方法を使用して、追跡されたデータをコンシュームします: