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

Data Transmission Service:ApsaraDB RDS for MySQL インスタンスから ApsaraDB RDS for PostgreSQL インスタンスへのデータ同期

最終更新日:Mar 29, 2026

Data Transmission Service (DTS) を使用して、ApsaraDB RDS for MySQL インスタンスから ApsaraDB RDS for PostgreSQL インスタンスへリアルタイムでデータを同期します。DTS はスキーマ同期、完全データ同期、増分データ同期をサポートしているため、最小限のダウンタイムでデータを移行し、ターゲットデータベースを継続的に最新の状態に保つことができます。

前提条件

開始する前に、以下をご確認ください。

課金

同期タイプ料金
スキーマ同期と完全データ同期無料
増分データ同期課金済み。「課金概要」を参照してください。

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

  • 一方向の 1 対 1 同期

  • 一方向の 1 対多同期

  • 一方向の多対 1 同期

同期可能な SQL 操作

操作タイプサポートされる操作
DMLINSERT、UPDATE、DELETE

制限事項

タスクを設定する前に、これらの制限事項を確認してください。

ソースデータベースの要件

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

  • テーブルを同期オブジェクトとして選択し、テーブル名またはカラム名を変更する必要がある場合、1 つのタスクでサポートされるテーブルは最大 1,000 個です。1,000 個を超えるテーブルの場合は、複数のタスクを設定するか、1 つのタスクでデータベース全体を同期してください。

  • スキーマ同期または完全データ同期中に DDL 文を実行しないでください。これらのフェーズ中に DDL を変更すると、タスクは失敗します。

  • データ同期インスタンスが実行中である間、物理バックアップの復元またはカスケード操作によるデータ変更は、ターゲットデータベースに記録されず、同期されません。この現象が発生した場合、影響を受けるデータベースおよびテーブルを同期対象から削除し、その後再追加できます。詳細については、「同期対象を変更する」をご参照ください。

  • MySQL 8.0.23 以降:同期するデータに不可視カラムが含まれている場合、DTS はそれらのカラムを読み取れず、データ損失が発生します。カラムを可視にするには、以下を実行します。

    ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;

    プライマリキーのないテーブルは自動的に不可視のプライマリキーを生成します。それらも可視にしてください。「Invisible Columns」および「Generated Invisible Primary Keys」をご参照ください。

  • ソースインスタンスで EncDB 機能が有効になっている場合、完全データ同期は実行できません。透過的データ暗号化 (TDE) が有効になっているインスタンスは、スキーマ同期、完全データ同期、および増分データ同期をサポートします。

バイナリログの要件

ApsaraDB RDS for MySQL

ApsaraDB RDS for MySQL インスタンスでは、バイナリロギングはデフォルトで有効になっています。以下のパラメーターを確認してください。

パラメーター必須値
binlog_row_imagefull
binlog_row_imagefull に設定されていない場合、事前チェック中にエラーメッセージが返され、データ同期タスクを開始できません。トランザクションログを記録しない読み取り専用の ApsaraDB RDS for MySQL 5.6 インスタンスは、ソースデータベースとして使用できません。

バイナリログは、少なくとも 7 日間保持する必要があります。DTS がバイナリログを読み取れない場合、同期タスクが失敗し、データの不整合または損失が発生する可能性があります。詳細については、「バイナリログファイルの表示および削除」をご参照ください。

自己管理 MySQL

ソースが自己管理 MySQL データベースの場合、タスクを開始する前に以下のパラメーターを設定してください。

パラメーター必須値
binlog_formatrow
binlog_row_imagefull
log_slave_updatesONデュアルプライマリクラスターの場合のみ必須

自己管理 MySQL データベース用のアカウントを作成し、バイナリロギングを設定する」をご参照ください。

タスクの実行中にソースデータベースでプライマリ/セカンダリの切り替えが発生すると、タスクは失敗します。

オブジェクトとデータ型

  • 同期オブジェクトとして選択できるのはテーブルのみです。DTS はビュー、トリガー、ストアドプロシージャを同期しません。

  • 次のデータ型はサポートされていません:BIT、VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT、POINT。

  • プレフィックスインデックスは同期できません。ソースデータベースにプレフィックスインデックスが含まれている場合、タスクが失敗する可能性があります。

  • テーブルレベルの同期中に、pt-online-schema-change などのツールをオンライン DDL 操作に使用しないでください。代わりに、Data Management (DMS) を使用してください。

外部キーの処理

スキーマ同期中、DTS はソースデータベースからターゲットデータベースへ外部キーを同期します。

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

ターゲットデータベースに特権アカウントまたはスーパーユーザーアカウントを使用し、テーブルに外部キー、トリガー、またはイベントトリガーが含まれている場合、DTS はセッションレベルで session_replication_role を一時的に replica に設定します。アカウントに必要な権限がない場合は、手動で session_replication_rolereplica に設定してください。タスクがリリースされた後、値を origin に戻してください。

パフォーマンスに関する考慮事項

  • 開始前に、ソースおよびターゲットデータベースのパフォーマンスへの影響を評価してください。同期はオフピーク時に実行してください。

  • 初期完全データ同期中、DTS は両方のデータベースの読み取りおよび書き込みリソースを使用するため、サーバーの負荷が増加します。

  • 初期完全データ同期中の同時 INSERT 操作は、宛先テーブルの断片化を引き起こします。完全データ同期が完了すると、宛先テーブルスペースはソースよりも大きくなります。

  • 同期中に他のソースからターゲットデータベースにデータを書き込まないでください。データの不整合や損失の原因となる可能性があります。

同期遅延

DTS は、ターゲットで最後に同期されたレコードのタイムスタンプとソースの現在のタイムスタンプに基づいて同期遅延を計算します。ソースで長期間 DML 操作が実行されない場合、報告される遅延は不正確になる可能性があります。ソースで DML 操作を実行して、遅延の読み取り値を更新してください。

ヒント:データベース全体を同期する場合、毎秒更新を受け取るハートビートテーブルを作成して、遅延を正確に保ちます。

DTS はまた、バイナリログファイルの位置を進めるために、スケジュールに従ってソースデータベースで CREATE DATABASE IF NOT EXISTS 'test' を実行します。

DTS タスクの障害回復

DTS タスクが失敗した場合、DTS のテクニカルサポートが 8 時間以内に復旧を試みます。復旧中、タスクが再起動されたり、タスクパラメーター (データベースパラメーターではない) が変更されたりすることがあります。

データ同期タスクの設定

設定には 9 つのステップがあります:データ同期タスクページを開き、リージョンを選択し、ソースとターゲットのデータベースを設定し、接続をテストし、同期オブジェクトと詳細設定を構成し、事前チェックを実行し、インスタンスを購入し、タスクを開始します。

ステップ 1:データ同期タスクページを開く

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

  2. 上部のナビゲーションバーで、[データ + AI] をクリックします。

  3. 左側のナビゲーションウィンドウで、[DTS (DTS)] > [データ同期] を選択します。

操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」を参照してください。また、「新しい DTS コンソールのデータ同期タスクページ」に直接アクセスすることもできます。

ステップ 2:リージョンの選択

[データ同期タスク] の右側で、データ同期インスタンスが存在するリージョンを選択します。

新しい DTS コンソールでは、上部のナビゲーションバーでリージョンを選択します。

ステップ 3:ソースとターゲットのデータベースの設定

[タスクの作成] をクリックします。[データ同期タスクの作成] ウィザードで、以下のパラメーターを設定します。

ソースデータベース

パラメーター説明
タスク名DTS タスクの名称です。DTS が自動的に名称を生成しますが、タスクを識別しやすいよう、意味のある名称を指定してください。名称は一意である必要はありません。
データベースタイプMySQL を選択します。
アクセス方法Alibaba Cloud インスタンス を選択します。
インスタンスリージョンソース ApsaraDB RDS for MySQL インスタンスが配置されているリージョンです。
Alibaba Cloud アカウント間でのデータ複製同一アカウント内での同期を行う場合は、いいえ を選択します。
RDS インスタンス IDソース ApsaraDB RDS for MySQL インスタンスの ID です。
データベースアカウントソースインスタンスのデータベースアカウントです。
データベースパスワードデータベースアカウントのパスワードです。
暗号化非暗号化 または SSL 暗号化クラウド証明書を用いた SSL 暗号化の有効化 を選択します。SSL 暗号化を利用する場合は、本タスクの設定前に、ソースインスタンスで SSL 暗号化を有効化する必要があります。詳細については、「」をご参照ください。

宛先データベース

パラメーター説明
データベースタイプ[PostgreSQL] を選択します。
アクセス方法[Alibaba Cloud インスタンス] を選択します。
インスタンスリージョン宛先の ApsaraDB RDS for PostgreSQL インスタンスが存在するリージョン。
インスタンス ID宛先の ApsaraDB RDS for PostgreSQL インスタンスの ID。
データベース名ターゲットデータベースの名前。
データベースアカウント宛先インスタンスのデータベースアカウント。アカウントはスキーマに対する所有者権限を持っている必要があります。「アカウントの作成」をご参照ください。
データベースパスワードデータベースアカウントのパスワード。

ステップ 4:接続をテストして次へ

[接続をテストして次へ] をクリックします。

DTS は、ApsaraDB RDS for MySQL などの Alibaba Cloud のデータベースインスタンスのホワイトリストに、自動的に自社サーバーの CIDR ブロックを追加します。Elastic Compute Service (ECS) インスタンス上で実行される自己管理データベースの場合、DTS は CIDR ブロックを ECS セキュリティグループルールに追加します — この際、ECS インスタンスがデータベースにアクセスできることを確認してください。データセンター内またはサードパーティ製クラウドプロバイダーでホストされる自己管理データベースの場合は、DTS サーバーの CIDR ブロックをデータベースのホワイトリストに手動で追加してください。詳しくは、「DTS サーバーの CIDR ブロックをオンプレミスデータベースのセキュリティ設定に追加する」をご参照ください。

警告

DTS サーバーの CIDR ブロックをデータベースのホワイトリストや ECS セキュリティグループに追加すると、セキュリティリスクが生じます。DTS を使用する前に、ユーザー名とパスワードのセキュリティ強化、公開ポートの制限、API 呼び出しの認証、ホワイトリストとセキュリティグループルールの定期的な監査などの予防措置を講じてください。不正な CIDR ブロックは削除してください。または、Express Connect、VPN Gateway、または Smart Access Gateway を介してデータベースを DTS に接続してください。

ステップ 5:同期オブジェクトと詳細設定の構成

基本設定

パラメーター説明
同期タイプ[スキーマ同期][完全データ同期]、および [増分データ同期] を選択します。事前チェック後、DTS はソースから宛先へ既存データを同期します。これは、後続の増分同期の基礎となります。
競合するテーブルの処理モード[事前チェックしてエラーを報告]:DTS は、宛先にソースと同じ名前のテーブルが存在するかどうかをチェックします。同一のテーブル名が存在する場合、事前チェック中にエラーが返され、タスクを開始できません。オブジェクト名マッピング機能を使用して、競合するテーブルの名前を変更してください。「オブジェクト名のマッピング」をご参照ください。[エラーを無視して続行]:同一テーブル名の事前チェックをスキップします。
警告

これにより、データの不整合が発生する可能性があります。完全データ同期中、DTS は同じプライマリキーまたは一意キーを持つ既存のレコードを上書きしません。既存の宛先レコードが保持されます。増分データ同期中、DTS は一致するレコードを上書きします。ソースと宛先のスキーマが異なる場合、一部のカラムが同期されないか、タスクが失敗する可能性があります。

宛先インスタンスでのオブジェクト名の大文字/小文字の区別データベース名、テーブル名、および列名の大文字小文字のポリシー。デフォルト: DTS デフォルトポリシー。詳細については、「宛先インスタンスでのオブジェクト名の大文字小文字の指定」をご参照ください。
ソースオブジェクト[ソース オブジェクト]」からオブジェクトを選択し、矢印アイコンをクリックして「[選択済みオブジェクト]」に移動します。列、テーブル、またはデータベースを選択できます。テーブルまたは列を選択した場合、DTS はビュー、トリガー、およびストアドプロシージャを同期しません。
選択したオブジェクト単一のオブジェクトの名前を変更するには、[選択したオブジェクト] セクションでそのオブジェクトを右クリックします。一度に複数のオブジェクトの名前を変更するには、右上隅の [一括編集] をクリックします。「オブジェクト名のマッピング」をご参照ください。
説明

時間フィールドは TIMESTAMP データ型をサポートします。ソースで時間フィールドの値が 0 の場合、宛先では null に変換されます。

詳細設定

パラメーター説明
モニタリングとアラートタスクの失敗や同期遅延がしきい値を超えた場合にアラートを設定するには、[はい] を選択します。詳細については、「モニタリングとアラートの設定」をご参照ください。
失敗した接続の再試行時間DTS が失敗した接続を再試行する時間範囲。有効値:10~1,440 分。デフォルト:720 分。30 分以上に設定してください。指定した時間範囲内に DTS が再接続すると、タスクは再開されます。それ以外の場合、タスクは失敗します。
説明

複数のタスクが同じソースまたはターゲットデータベースを共有する場合、最も短い再試行時間範囲が優先されます。DTS は再試行中のインスタンスに対して課金します。

ETL の設定ETL 機能を有効にするには、[はい] を選択し、データ処理文を入力します。詳しくは、「データ移行またはデータ同期タスクで ETL を設定する」および「ETL とは?

ステップ 6:設定を保存して事前チェックを実行

  • このタスク設定の API パラメーターを表示するには、[次へ:タスク設定を保存して事前チェック] にカーソルを合わせ、[OpenAPI パラメーターのプレビュー] をクリックします。

  • [次へ:タスク設定を保存して事前チェック] をクリックします。

DTS はタスクを開始する前に事前チェックを実行します。事前チェックが失敗した場合、失敗した各項目の横にある [詳細の表示] をクリックし、チェック結果に基づいて問題を解決してから、[再度事前チェック] をクリックします。事前チェック項目が無視できるアラートをトリガーした場合、[アラート詳細の確認] をクリックし、ダイアログボックスで [無視] をクリックし、[OK] をクリックしてから、[再度事前チェック] をクリックします。アラート項目を無視すると、データの不整合が発生する可能性があります。

ステップ 7:事前チェックが合格するのを待つ

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

ステップ 8:同期インスタンスの購入

購入ページで、以下のパラメーターを設定します。

パラメーター説明
課金方法[サブスクリプション]:固定期間分を前払いします。長期利用に適しており、コスト効率が高いです。[従量課金]:時間単位で課金されます。短期利用に適しています。不要になったらインスタンスをリリースして、継続的な課金を避けてください。
リソースグループ設定同期インスタンスのリソースグループ。デフォルト:[デフォルトリソースグループ]Resource Management とは
インスタンスクラス同期速度はインスタンスクラスによって異なります。詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。
サブスクリプション期間[サブスクリプション] 課金方法でのみ利用可能です。オプション:1~9 か月、1 年、2 年、3 年、または 5 年。

ステップ 9:タスクの開始

[Data Transmission Service (従量課金) 利用規約] を読んで選択し、[購入して開始] をクリックします。ダイアログボックスで、[OK] をクリックします。

タスクがタスクリストに表示されます。そこから進捗状況を追跡してください。