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

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

最終更新日:Mar 29, 2026

Data Transmission Service (DTS) を使用して、ApsaraDB RDS for MariaDB インスタンスのデータをリアルタイムで ApsaraDB RDS for PostgreSQL インスタンスに同期します。この同期パスでは、スキーマ同期、完全データ同期、および増分同期がサポートされます。

前提条件

開始する前に、以下の条件を確認してください。

  • 宛先の ApsaraDB RDS for PostgreSQL インスタンスが作成済みである必要があります。詳細については、「ApsaraDB RDS for PostgreSQL インスタンスの作成」をご参照ください。

  • 宛先インスタンスの利用可能なストレージ容量は、ソースインスタンス内の合計データサイズよりも大きいです。

課金

同期タイプ料金
スキーマ同期および完全データ同期無料
増分データ同期課金済み。詳細については、「課金概要」をご参照ください。

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

  • 単方向・一対一同期

  • 単方向・一対多同期

  • 単方向・多対一同期

同期可能な SQL 操作

DTS では、DML 操作(INSERT、UPDATE、DELETE)のみの同期がサポートされます。

必要な権限

タスクを作成する前に、DTS で使用するデータベースアカウントに以下の権限を付与してください。

データベース必要な権限
ApsaraDB RDS for MariaDBSELECT
ApsaraDB RDS for PostgreSQL同期対象オブジェクトに対する CREATE 権限および USAGE 権限、およびスキーマに対するオーナー権限

設定手順については、「MariaDB インスタンス上でのアカウント作成」および「アカウント権限の変更またはリセット」(MariaDB 向け)をご参照ください。PostgreSQL 向けについては、「PostgreSQL インスタンス上でのアカウント作成」および「RDS PostgreSQL インスタンスのサービスアカウントへの権限付与」をご参照ください。

制限事項

ソースデータベース

  • 同期対象のテーブルには、すべてのフィールドが一意となる PRIMARY KEY または一意制約(UNIQUE constraint)が必要です。これらの制約がない場合、宛先データベースに重複レコードが発生する可能性があります。

  • データベース全体ではなくテーブル単位で同期対象を選択し、宛先側でテーブル名またはカラム名の変更を行う場合は、1 つのタスクで同期できるテーブル数は最大 1,000 個です。1,000 個を超えるテーブルを同期する場合は、複数のタスクを構成するか、代わりにデータベース全体を同期してください。

  • ApsaraDB RDS for MariaDB ではバイナリログがデフォルトで有効化されています。以下のバイナリログ設定が必須です。

    パラメーター必須値備考
    binlog_row_imagefullタスク開始前に設定する必要があります。full に設定されていない場合、事前チェックが失敗します。詳細については、「パラメーターの変更」をご参照ください。
    バイナリログ保持期間増分同期のみの場合:最低 24 時間、完全同期+増分同期の場合:最低 7 日間完全データ同期が完了した後は、保持期間を 24 時間以上に設定できます。保持期間が不足していると、タスクが失敗したり、データの不整合やデータ損失が発生する可能性があります。上記要件を満たさない保持期間は、DTS のサービスレベルアグリーメント(SLA)の対象外となります。

その他の制限事項

  • 宛先データベースのバージョンは、ソースデータベースのバージョンと同じか、それより新しい必要があります。古いバージョンの宛先データベースでは互換性の問題が発生する可能性があります。

  • タスクは非ピーク時間帯に実行することを推奨します。初期完全同期中は、DTS が両方のデータベースで読み取りおよび書き込みリソースを使用するため、データベース負荷が高まる可能性があります。

  • 完全データ同期完了後、宛先データベースの表領域は、同時 INSERT 操作による断片化の影響で、ソースデータベースの表領域より大きくなります。

  • スキーマ同期中、DTS はソースデータベースの外部キーを宛先データベースに同期します。

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

  • テーブル(データベース全体ではなく)を選択した場合、同期中に pt-online-schema-change などのツールをオンライン DDL 操作に使用しないでください。代わりに、Data Management (DMS) を使用してください。詳細については、「ロックなし DDL 操作の実行」をご参照ください。

  • 同期中は、宛先データベースへの書き込みを DTS 経由でのみ行ってください。他のツールが同期中に宛先データベースへ並行して書き込む場合、DMS を用いたオンライン DDL 操作は実行しないでください。これによりデータ損失が発生する可能性があります。

  • ソースデータベースで TIMESTAMP フィールドの値が 0 の場合、DTS はこれを宛先データベースで null に変換します。

自己管理型 MariaDB ソースの制限事項

これらの制限事項は、ソースが自己管理型 MariaDB データベース(ApsaraDB RDS for MariaDB インスタンスではない)の場合にのみ適用されます。

  • タスク実行中にソースデータベースでプライマリ/セカンダリ スイッチオーバーが発生した場合、タスクは失敗します。

  • DTS は、宛先で最新に同期されたレコードのタイムスタンプとソースの現在時刻に基づいて同期遅延を算出します。ソースで長期間にわたり DML 操作が行われていない場合、報告される遅延が不正確になる可能性があります。遅延を更新するには、ソースで任意の DML 操作を実行してください。データベース全体を同期する場合は、ハートビートテーブルを作成してください。DTS はこのテーブルを 1 秒ごとに更新します。

  • DTS は定期的にソース上で CREATE DATABASE IF NOT EXISTS `test` を実行し、バイナリログファイルの位置を進めます。

データ同期タスクの作成

全体のワークフローは以下のとおりです。

  1. ソースおよび宛先データベースの構成

  2. 接続性のテストおよび DTS による両データベースへのアクセス許可

  3. 同期対象オブジェクトおよび同期タイプの選択

  4. 高度な設定の構成および事前チェックの実行

  5. 同期インスタンスの購入およびタスクの開始

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

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

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

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

説明

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

ステップ 2:ソースおよび宛先データベースの構成

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

    説明

    新規 DTS コンソールを使用する場合は、上部ナビゲーションバーでリージョンを選択してください。

  2. タスクの作成 をクリックします。タスクの作成 ウィザードで、以下のパラメーターを構成します。

ソースデータベース

パラメーター説明
タスク名タスクの名前です。DTS が自動的に名前を生成しますが、識別しやすいように意味のある名前を指定することを推奨します。名前は一意である必要はありません。
データベースタイプMariaDB を選択します。
アクセス方法Alibaba Cloud インスタンス を選択します。
インスタンスリージョンソースの ApsaraDB RDS for MariaDB インスタンスが配置されているリージョンです。
Alibaba Cloud アカウント間のデータ複製同一アカウント内での同期の場合は、いいえ を選択します。
インスタンス IDソースの ApsaraDB RDS for MariaDB インスタンスの ID です。
データベースアカウントソースインスタンスのデータベースアカウントです。
データベースパスワードソースデータベースアカウントのパスワードです。
暗号化暗号化なし を選択します。

宛先データベース

パラメーター説明
データベースタイプPostgreSQL を選択します。
アクセス方法Alibaba Cloud インスタンス を選択します。
インスタンスリージョン宛先の ApsaraDB RDS for PostgreSQL インスタンスが配置されているリージョンです。
インスタンス ID宛先の ApsaraDB RDS for PostgreSQL インスタンスの ID です。
データベース名宛先データベースの名前です。
データベースアカウント宛先インスタンスのデータベースアカウントです。このアカウントは、スキーマに対するオーナー権限を有している必要があります。
データベースパスワード宛先データベースアカウントのパスワードです。

ステップ 3:接続性のテスト

接続性のテストと続行 をクリックします。

ソースまたはターゲットデータベースが Alibaba Cloud データベースインスタンスの場合、DTS は自動的にそのサーバーの CIDR ブロックをインスタンスのホワイトリストに追加します。ソースまたはターゲットデータベースが Elastic Compute Service (ECS) インスタンス上でホストされる自己管理データベースの場合、DTS は自動的に DTS サーバーの CIDR ブロックを ECS インスタンスのセキュリティグループルールに追加します。また、ECS インスタンスがデータベースにアクセスできることを確認する必要があります。データセンター内、またはサードパーティのクラウドプロバイダーによってホストされる自己管理データベースの場合は、DTS サーバーの CIDR ブロックをデータベースのホワイトリストに手動で追加してください。詳細については、「DTS サーバーの CIDR ブロックをオンプレミスデータベースのセキュリティ設定に追加する」をご参照ください。

警告

DTS の CIDR ブロックをデータベースのホワイトリストまたはセキュリティグループルールに追加することは、セキュリティリスクを伴います。実行前に、アカウント認証情報の強化、公開ポートの制限、ホワイトリストエントリの定期的な監査などの予防措置を講じてください。あるいは、Express Connect、VPN Gateway、または Smart Access Gateway を介して DTS とデータベースを接続することも検討してください。

ステップ 4:同期対象および同期タイプの選択

以下のパラメーターを構成します。

パラメーター説明
同期タイプデフォルトでは、増分データ同期 が選択されています。スキーマ同期 および 完全データ同期 も併せて選択してください。DTS はまず既存データを同期し、それを増分同期のベースラインとして使用します。
競合テーブルの処理モード事前チェックおよびエラー報告オブジェクト名のマップ:ソースおよび宛先で同名のテーブルが存在するかどうかをチェックします。同名のテーブルが存在する場合、事前チェックは失敗し、タスクは開始できません。宛先テーブルを削除せずに名前の競合を解決するには、オブジェクト名マッピング機能をご利用ください。詳細については、「」をご参照ください。エラーを無視して続行:同名テーブルの事前チェックをスキップします。スキーマが一致しており、レコードのプライマリキーが宛先の既存レコードと同一の場合、完全データ同期ではそのレコードをスキップ(既存レコードを保持)、増分同期では上書きします。スキーマが異なる場合、一部のカラムが初期化されなかったり、同期が失敗したりする可能性があります。慎重にご使用ください。
ソースオブジェクトソースオブジェクト セクションからオブジェクトを選択し、向右 をクリックして 選択済みオブジェクト に移動します。カラム、テーブル、またはデータベースを選択できます。テーブルまたはカラムを選択した場合、ビュー、トリガー、ストアドプロシージャは同期されません。
選択済みオブジェクト単一のオブジェクトの名前を変更するには、[選択したオブジェクト] セクションでそのオブジェクトを右クリックします。 複数のオブジェクトの名前を一度に変更するには、右上隅にある[一括編集] をクリックします。 詳細については、「オブジェクト名をマップする」をご参照ください。

ステップ 5:高度な設定の構成

次へ:高度な設定 をクリックし、以下のパラメーターを構成します。

パラメーター説明
タスクスケジューリング専用クラスターデフォルトでは、DTS はタスクを共有クラスターにスケジュールします。タスクの安定性を向上させるには、専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。
接続失敗時の再試行時間接続失敗後に DTS が再試行する時間です。有効範囲:10~1,440 分。デフォルト値:720 分。30 分より大きい値を設定してください。指定された時間内に DTS が再接続できた場合、タスクは再開します。それ以外の場合は失敗します。
説明

複数のタスクが同じソースまたは宛先データベースを共有する場合、最も短い再試行時間が優先されます。再試行中も DTS インスタンスの課金は継続されます。

その他の障害発生時の再試行時間DDL または DML 失敗後の DTS の再試行時間です。有効範囲:1~1,440 分。デフォルト値:10 分。10 分より大きい値を設定してください。この値は、接続失敗時の再試行時間 より小さい値にする必要があります。
完全データ同期におけるスロットリングの有効化完全データ同期中、DTS は両方のデータベースで読み取りおよび書き込みリソースを使用します。宛先への負荷を軽減するため、ソースデータベースへのクエリ数(QPS)完全データ同期の RPS完全同期におけるデータ移行速度(MB/s) を構成します。このパラメーターは、完全データ同期 が選択されている場合にのみ利用可能です。
増分データ同期におけるスロットリングの有効化増分同期中の負荷を軽減するため、増分データ同期の RPS および 増分同期におけるデータ同期速度(MB/s) を構成します。
環境タグDTS インスタンスを環境(例:本番またはテスト)で識別するための任意のタグです。
ETL の構成ETL (抽出・変換・書き出し) 機能を有効化するかどうか。データ処理文をコードエディタで入力するには、[はい] を選択します。スキップするには、[いいえ] を選択します。詳細については、「ETL とは」および「データ同期タスクで ETL を設定する」をご参照ください。

ステップ 6:設定の保存および事前チェックの実行

次へ:タスク設定の保存および事前チェック をクリックします。

説明

この構成の OpenAPI パラメーターをプレビューするには、次へ:タスク設定の保存および事前チェック 上にマウスを合わせ、続行前に OpenAPI パラメーターのプレビュー をクリックしてください。

タスクを開始する前に、DTS が事前チェックを実行します。いずれかの項目が失敗した場合:

  • 失敗した項目の横にある 詳細の表示 をクリックし、問題を修正した後、再チェック をクリックします。

  • 安全に無視できるアラートが発生した場合、アラート詳細の確認 をクリックし、詳細表示ダイアログボックスで 無視 をクリックして確認します。その後、再チェック をクリックします。アラートを無視すると、データの不整合が発生する可能性があります。

ステップ 7:インスタンスの購入およびタスクの開始

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

  2. 購入 ページで、以下のパラメーターを構成します。

    パラメーター説明
    課金方法サブスクリプション:固定期間分を前払いします。長期利用の場合、コスト効率に優れています。サブスクリプション期間のオプションは、1~9か月、1年、2年、3年、または5年です。従量課金:1時間単位で課金されます。短期利用に適しています。ご利用のインスタンスが不要になった場合は、すぐにリリースして課金を停止してください。
    リソースグループ設定項目同期インスタンスのリソースグループです。デフォルトではデフォルトリソースグループが使用されます。詳細については、「What is Resource Management?
    インスタンスクラスDTS は、異なる同期速度を持つインスタンスクラスを提供しています。ワークロードに応じて適切なクラスを選択してください。詳細については、「Instance classes of data synchronization instances」をご参照ください。
  3. Data Transmission Service(従量課金)サービス利用規約 を読み、同意してください。

  4. 購入および開始 をクリックします。確認ダイアログボックスで、OK をクリックします。

タスクはタスクリストに表示されます。そこで進行状況を監視できます。