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

ApsaraDB RDS:セルフマネージド PostgreSQL データベースから ApsaraDB RDS for PostgreSQL インスタンスへのデータ同期

最終更新日:Mar 15, 2025

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

前提条件

  • セルフマネージド PostgreSQL データベースと ApsaraDB RDS for PostgreSQL インスタンスが作成されていること。RDS インスタンスの作成方法の詳細については、「インスタンスの作成」をご参照ください。

    説明
    • 説明

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

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

  • RDS インスタンスの使用可能なストレージが、セルフマネージド PostgreSQL データベースのデータの合計サイズよりも大きいこと。

使用上の注意

カテゴリ

説明

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

  • 同期するテーブルには、PRIMARY KEY または UNIQUE 制約があり、すべてのフィールドが一意である必要があります。そうでない場合、ターゲットデータベースに重複したデータレコードが含まれる可能性があります。

    説明

    DTS を使用せずに作成したデータ同期タスクでデータを受信するターゲットテーブル([スキーマ同期] パラメーターの [同期タイプ] パラメーターが選択されていない)の場合は、テーブルとソースデータベースから同期されるテーブルに同じ PRIMARY KEY または NOT NULL UNIQUE 制約があることを確認してください。そうでない場合、ターゲットデータベースに重複したデータレコードが含まれる可能性があります。

  • 同期するオブジェクトとしてテーブルを選択し、ターゲットデータベースでテーブルの名前変更や列の名前変更などのテーブルの編集を行う場合は、1 つのデータ同期タスクで最大 5,000 個のテーブルを同期できます。5,000 個を超えるテーブルを同期するタスクを実行すると、リクエストエラーが発生します。この場合、複数のタスクを構成してテーブルを同期するか、データベース全体を同期するタスクを構成することをお勧めします。

  • DTS は、ソースデータベースの一時テーブル、内部トリガー、または C プログラミング言語で記述された一部の内部プロシージャと関数を同期できません。DTS は、COMPOSITE、ENUM、および RANGE タイプのカスタムパラメーターを同期できます。同期するテーブルには、PRIMARY KEY、FOREIGN KEY、UNIQUE、または CHECK 制約が必要です。

  • WAL ログについて、次の要件を満たす必要があります。

    • wal_level パラメーターの値は logical である必要があります。

    • 増分同期のみを実行する場合は、ソースデータベースの WAL ログを 24 時間以上保存する必要があります。完全同期と増分同期の両方を実行する場合は、ソースデータベースの WAL ログを 7 日以上保存する必要があります。そうでない場合、DTS は WAL ログを取得できず、タスクが失敗する可能性があります。例外的な状況では、データの不整合または損失が発生する可能性があります。完全同期が完了したら、保存期間を 24 時間以上に設定できます。上記の要件に基づいて WAL ログの保存期間を設定してください。そうでない場合、DTS のサービスレベル契約 (SLA) におけるサービスの信頼性またはパフォーマンスが保証されない場合があります。

  • ソースのセルフマネージド PostgreSQL データベースでプライマリ/セカンダリスイッチオーバーを実行すると、データ同期タスクは失敗します。

    max_wal_senders パラメーターと max_replication_slots パラメーターの値は、セルフマネージド PostgreSQL データベースで使用されているレプリケーションスロットの数と、このデータベースからデータを同期するために作成する必要がある DTS インスタンスの数の合計よりも大きくなければなりません。

  • ソースデータベースに長時間トランザクションがあり、データ同期タスクで増分データが同期される場合、ソースデータベースで長時間トランザクションがコミットされる前に生成された先行書き込みログ (WAL) ログが蓄積される可能性があります。その結果、ソースデータベースのディスク容量が不足する可能性があります。

  • ソースデータベースが Google Cloud Platform によって提供される Cloud SQL for PostgreSQL インスタンスである場合、データベースアカウント パラメーターを、ソースデータベースに対する cloudsqlsuperuser 権限を持つデータベースアカウントに設定する必要があります。同期するオブジェクトを選択する場合は、指定したアカウントが管理を承認されているオブジェクトを選択する必要があります。そうでない場合は、選択したオブジェクトに対する OWNER 権限を指定したアカウントに付与する必要があります。

    説明

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

  • ソースデータベースからの論理サブスクリプションには、DTS の使用に制限があります。増分データの変更時にソースデータベースから同期される単一のデータのサイズが 256 MB を超えると、実行中のデータ同期インスタンスは実行に失敗し、回復できません。タスクを再構成する必要があります。

  • スキーマ同期と完全同期中は、DDL 文を実行してデータベースまたはテーブルのスキーマを変更しないでください。変更すると、データ同期タスクは失敗します。

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

その他の制限

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

  • DTS は、スキーマをまたがる継承関係を持つテーブルを同期できません。

  • データ同期中に、同期するオブジェクトとしてスキーマを選択する場合は、次の制限に注意してください。スキーマにテーブルを作成する場合、または RENAME コマンドを実行してテーブルの名前を変更する場合は、テーブルにデータを書き込む前に、ALTER TABLE schema.table REPLICA IDENTITY FULL; 文を実行する必要があります。これはデータの整合性を確保するためです。この文を実行するときは、テーブルをロックしないことをお勧めします。ロックすると、デッドロックが発生します。

    説明
    • 上記のサンプル文の schematable を実際のスキーマ名とテーブル名に置き換えてください。

    • この操作は、オフピーク時に実行することをお勧めします。

  • DTS は、シーケンスなどのメタデータの有効性をチェックしません。メタデータの有効性は手動でチェックする必要があります。

  • ワークロードがターゲットデータベースに切り替えられた後、新しく書き込まれたシーケンスは、ソースデータベースのシーケンスの最大値から増加しません。したがって、ワークロードをターゲットデータベースに切り替える前に、ターゲットデータベースのシーケンスの開始値を更新する必要があります。

  • DTS は、ソースデータベースに次のテンポラリテーブルを作成して、増分データの DDL 文、増分テーブルのスキーマ、およびハートビート情報を取得します。データ同期中は、ソースデータベースの一時テーブルを削除しないでください。削除すると、データ同期タスクは失敗します。DTS インスタンスが解放されると、一時テーブルは自動的に削除されます。

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

  • データ同期のレイテンシが正確であることを確認するために、DTS はソースデータベースにハートビートテーブルを追加します。ハートビートテーブルの名前は dts_postgres_heartbeat です。

  • データ同期中、DTS はソースデータベースのレプリケーションスロットを作成します。レプリケーションスロットには、dts_sync_ というプレフィックスが付きます。DTS は、このレプリケーションスロットを使用して、過去 15 分以内のソースデータベースの増分ログを取得できます。

    説明

    データ同期タスクが解放されたか失敗した場合、DTS はレプリケーションスロットを自動的に削除します。ソースのセルフマネージド PostgreSQL データベースでプライマリ/セカンダリスイッチオーバーが実行された場合は、セカンダリデータベースにログインしてレプリケーションスロットを削除する必要があります。

    Amazon slot查询信息

  • データを同期する前に、データ同期がソースデータベースとターゲットデータベースのパフォーマンスに与える影響を評価してください。オフピーク時にデータを同期することをお勧めします。初期完全同期中、DTS はソースデータベースとターゲットデータベースの読み取りリソースと書き込みリソースを使用します。これにより、データベースサーバーの負荷が増加する可能性があります。

  • 初期完全同期中、同時 INSERT 操作により、ターゲットデータベースのテーブルで断片化が発生します。したがって、初期完全同期が完了した後、ターゲットデータベースの使用済み表領域のサイズはソースデータベースのサイズよりも大きくなります。

  • DTS のみを使用してターゲットデータベースにテーブルデータを書き込む場合は、データ同期中に DMS を使用してソーステーブルでオンライン DDL 操作を実行できます。詳細については、「テーブルをロックせずにスキーマを変更する」をご参照ください。

  • データ同期の間に他のソースからのデータがターゲットデータベースに書き込まれると、ソースデータベースとターゲットデータベースの間でデータの不整合が発生します。たとえば、他のソースからのデータがターゲットデータベースに書き込まれている間に DMS を使用してオンライン DDL 文を実行すると、ターゲットデータベースでデータ損失が発生する可能性があります。

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

  • DTS タスクの実行に失敗した場合、DTS テクニカルサポートは 8 時間以内にタスクの復元を試みます。復元中、タスクが再起動され、タスクのパラメーターが変更される可能性があります。

    説明

    タスクのパラメーターのみが変更される可能性があります。データベースのパラメーターは変更されません。 変更される可能性のあるパラメーターには、「DTS インスタンスのパラメーターを変更する」トピックの「インスタンスパラメーターの変更」セクションのパラメーターが含まれますが、これらに限定されません。

課金

同期タイプタスク構成料金
スキーマ同期と完全同期無料。
増分同期有料。詳細については、「課金概要」をご参照ください。

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

  • 一方向 1 対 1 同期

  • 一方向 1 対多同期

  • 一方向カスケード同期

  • 一方向多対 1 同期

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

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

  • SCHEMA と TABLE。

    説明

    PRIMARY KEY、UNIQUE KEY、FOREIGN KEY、DATATYPE(組み込みデータ型)、および DEFAULT CONSTRAINT を含みます。

  • VIEW、PROCEDURE (PostgreSQL V11 以降)、FUNCTION、RULE、SEQUENCE、EXTENSION、TRIGGER、AGGREGATE、INDEX、OPERATOR、および DOMAIN。

同期可能な SQL 操作

操作タイプ

SQL 文

DML

INSERT、UPDATE、および DELETE

DDL

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

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

    • 増分同期中は、BIT タイプのデータを同期できません。

  • セルフマネージド PostgreSQL データベースのデータベースアカウントは特権アカウントである必要があり、データベースのマイナーバージョンは 20210228 以降である必要があります。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 (セルフマネージド PostgreSQL データベースのバージョンは PostgreSQL 11 以降である必要があります。)

    • CREATE INDEX ON TABLE

    重要
    • CASCADE や RESTRICT などの DDL 文の追加情報は同期できません。

    • SET session_replication_role = replica 文を実行するセッションからの DDL 文は同期できません。

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

    • ソースデータベースによって同時にコミットされた複数の SQL 文に DML 文と DDL 文の両方が含まれている場合、DTS は DDL 文を同期しません。

    • ソースデータベースによって同時にコミットされた複数の SQL 文に、同期されていないオブジェクトの DDL 文が含まれている場合、DDL 文は同期されません。

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

インスタンス

必要な権限

参照

セルフマネージド PostgreSQL データベース

スーパーユーザー

CREATE USER および GRANT

RDS インスタンス

スキーマ所有者の権限

アカウントの作成

準備

説明

この例では、Linux オペレーティングシステムのサーバーで実行されているセルフマネージド PostgreSQL データベースを使用します。

データ同期タスクを構成する前に、次の操作を実行します。

  1. セルフマネージド PostgreSQL データベースが存在するサーバーにログインします。

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

    select count(1) from pg_replication_slots;
  3. postgresql.conf 構成ファイルを修正します。wal_level パラメーターを logical に設定し、max_wal_senders パラメーターと max_replication_slots パラメーターの値が、セルフマネージド PostgreSQL データベースで使用されているレプリケーションスロットの数と、ソースデータベースがセルフマネージド PostgreSQL データベースである DTS インスタンスの数の合計よりも大きくなるようにします。

    # - 設定 -
    
    wal_level = logical			# minimal、replica、または logical
    					# (変更するには再起動が必要です)
    
    ......
    
    # - 送信サーバー -
    
    # これらをマスターと、レプリケーションデータを送信するスタンバイに設定します。
    
    max_wal_senders = 10		# walsender プロセスの最大数
    				# (変更するには再起動が必要です)
    #wal_keep_segments = 0		# ログファイルセグメント単位、それぞれ 16 MB。0 は無効にします
    #wal_sender_timeout = 60s	# ミリ秒単位。0 は無効にします
    
    max_replication_slots = 10	# レプリケーションスロットの最大数
    				# (変更するには再起動が必要です)
    説明

    構成ファイルを修正した後、パラメーター設定を有効にするために、セルフマネージド PostgreSQL データベースを再起動します。

  4. セルフマネージド PostgreSQL データベースの pg_hba.conf 構成ファイルに DTS サーバーの CIDR ブロックを追加します。ターゲットデータベースと同じリージョンにある DTS サーバーの CIDR ブロックのみを追加します。詳細については、「DTS サーバーの CIDR ブロックの追加」をご参照ください。

    説明
    • 構成ファイルを修正した後、SELECT pg_reload_conf(); 文を実行するか、セルフマネージド PostgreSQL データベースを再起動して変更を有効にします。

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

    IP

  5. 同期するオブジェクトのデータベース情報とスキーマ情報に基づいて、RDS インスタンスにデータベースとスキーマを作成します。ソースデータベースとターゲットデータベースのスキーマ名は同じである必要があります。詳細については、「データベースの作成」および「スキーマを使用したアカウントの管理」をご参照ください。

セルフマネージド PostgreSQL データベースのバージョンが PostgreSQL 9.4.8 から PostgreSQL 10.0 の範囲内である場合は、データ同期タスクを構成する前に、次の操作を実行する必要があります。

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

    1. セルフマネージド PostgreSQL データベースが存在するサーバーにログインします。

    2. セルフマネージド PostgreSQL データベースのバージョンに基づいて、PostgreSQL公式 Web サイト からソースコードをダウンロードします。

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

      重要
      • PostgreSQL をコンパイルしてインストールするときは、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)
      
      # ソースコードをインストールするには、次のコマンドを実行します。
      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. 同期するオブジェクトのデータベース情報とスキーマ情報に基づいて、RDS インスタンスにデータベースとスキーマを作成します。ソースデータベースとターゲットデータベースのスキーマ名は同じである必要があります。詳細については、「データベースの作成」および「スキーマを使用したアカウントの管理」をご参照ください。

手順

  1. 次のいずれかの方法を使用して [データ同期] ページに移動し、データ同期インスタンスが存在するリージョンを選択します。

    DTS コンソール

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

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

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

    DMS コンソール

    説明

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

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

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

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

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

  3. オプション。 ページの右上隅にある 新バージョンの設定ページを試してみる をクリックします。

    説明
    • ページの右上隅に 旧バージョンの設定ページに戻る ボタンが表示されている場合は、この手順をスキップします。

    • 構成ページの新バージョンと旧バージョンでは、特定のパラメーターが異なる場合があります。新しいバージョンの構成ページを使用することをお勧めします。

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

    警告

    ソースデータベースとターゲットデータベースを構成した後、ページに表示される [制限] を読むことをお勧めします。そうでない場合、タスクが失敗したり、データの不整合が発生したりする可能性があります。

    セクション

    パラメーター

    説明

    N/A

    タスク名

    DTS タスクの名前。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 インスタンス を選択します。

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

    RDS インスタンスが存在するリージョン。

    インスタンス ID

    RDS インスタンスの ID。

    データベース名

    RDS インスタンスのターゲットデータベースの名前。

    データベースアカウント

    RDS インスタンスのデータベースアカウント。アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

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

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

    暗号化

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

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

    説明
    • セルフマネージド PostgreSQL データベースの [暗号化] を SSL 暗号化 に設定する場合は、CA 証明書 をアップロードする必要があります。

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

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

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

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

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

  6. 同期するオブジェクトを構成します。

    1. オブジェクト設定 ステップで、同期するオブジェクトを構成します。

      パラメーター

      説明

      同期タイプ

      同期タイプ。デフォルトでは、[増分同期] が選択されています。[スキーマ同期][完全同期] も選択する必要があります。事前チェックが完了すると、DTS は選択したオブジェクトの既存データをソースデータベースからターゲットクラスターに同期します。既存データは、後続の増分同期の基礎となります。

      説明

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

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

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

        説明

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

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

        警告

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

        • ソースデータベースとターゲットデータベースのスキーマが同じで、ターゲットデータベースのデータレコードのプライマリキー値または一意キー値がソースデータベースのデータレコードと同じである場合:

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

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

        • ソースデータベースとターゲットデータベースのスキーマが異なる場合、データの初期化に失敗する可能性があります。この場合、一部の列のみが同期されるか、データ同期タスクが失敗します。注意して進めてください。

      同期トポロジ

      この例では、一方向同期 が選択されています。

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

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

      ソースオブジェクト

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

      説明

      列、テーブル、またはスキーマを同期するオブジェクトとして選択できます。

      選択中のオブジェクト

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

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

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

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

      • オブジェクト名マッピング機能を使用してオブジェクトの名前を変更すると、そのオブジェクトに依存する他のオブジェクトが同期されない場合があります。

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

      パラメーター

      説明

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

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

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

      接続失敗時のリトライ時間の範囲。データ同期タスクの開始後にソースデータベースまたはターゲットデータベースに接続できない場合、DTS は指定された時間範囲内で直ちに接続を再試行します。有効な値:10 ~ 1440。単位:分。デフォルト値: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 パラメーターを構成する必要があります。これにより、ターゲットデータベースサーバーの負荷が軽減されます。

      環境タグ

      DTS インスタンスを識別するために使用される環境タグ。ビジネス要件に基づいて環境タグを選択できます。

      ETL の設定

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

      監視アラート

      データ同期タスクのアラートを構成するかどうかを指定します。タスクが失敗した場合、または同期レイテンシが指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。有効な値:

      • [いいえ]:アラートを有効にしません。

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

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

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

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

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

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

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

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

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

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

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

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

  9. データ移行インスタンスを購入します。

    1. [購入] ページで、データ同期インスタンスの [課金方法] パラメーターと [インスタンスクラス] パラメーターを構成します。次の表にパラメーターを示します。

      セクション

      パラメーター

      説明

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

      課金方法

      • サブスクリプション:データ同期インスタンスを作成するときにサブスクリプションの料金を支払います。サブスクリプション課金方法は、長期使用の場合、従量課金方法よりも費用対効果が高くなります。

      • 従量課金:従量課金インスタンスは 1 時間単位で課金されます。従量課金方法は、短期使用に適しています。従量課金データ同期インスタンスが不要になった場合は、インスタンスを解放してコストを削減できます。

      リソースグループ設定

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

      インスタンスクラス

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

      サブスクリプション期間

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

      説明

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

    2. [データ伝送サービス (従量課金) サービス規約] を読んで選択します。

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

      タスクリストでタスクの進捗状況を確認できます。