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

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

最終更新日:Mar 29, 2026

Data Transmission Service (DTS) を使用すると、AnalyticDB for PostgreSQL インスタンスを ApsaraDB RDS for MySQL ソースとリアルタイムで同期させることができ、ライブビジネスデータに対するリアルタイム分析が可能になります。本トピックでは、このパイプライン向けのデータ同期タスクの設定方法について説明します。

サポートされるソースデータベース

本トピックの手順では、ApsaraDB RDS for MySQL インスタンスをソースとして使用します。以下のいずれかの MySQL データベースタイプをソースとして使用する場合も、同じ手順が適用されます。

  • ApsaraDB RDS for MySQL インスタンス

  • Elastic Compute Service (ECS) 上でホストされる自己管理 MySQL データベース

  • Express Connect、VPN Gateway、または Smart Access Gateway 経由で接続された自己管理 MySQL データベース

  • Database Gateway 経由で接続された自己管理 MySQL データベース

  • Cloud Enterprise Network (CEN) 経由で接続された自己管理 MySQL データベース

前提条件

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

  • ApsaraDB RDS for MySQL のソースインスタンス

  • 宛先となる AnalyticDB for PostgreSQL インスタンス(詳細については、「インスタンスの作成」をご参照ください)

  • ソースインスタンス上のデータベースアカウント(REPLICATION CLIENT、REPLICATION SLAVE、SHOW VIEW、SELECT 権限を付与済み)

  • 宛先インスタンス上のデータベースアカウント(初期アカウントロールまたは RDS_SUPERUSER 権限を付与済み)。詳細については、「ユーザーおよび権限の管理」をご参照ください

バイナリログの要件

DTS の設定を行う前に、以下のバイナリログ設定を確認してください。

ApsaraDB RDS for MySQL の場合(バイナリロギングはデフォルトで有効):

自己管理 MySQL の場合:

警告

DTS が読み取る前にバイナリログがパージされると、同期タスクは失敗し、データの不整合や損失が発生する可能性があります。保持期間が上記の最小値を下回る場合、DTS はサービスレベル合意(SLA)パフォーマンスを保証しません。

課金

同期タイプ料金
スキーマ同期および完全データ同期無料
増分データ同期課金概要

制限事項

ソースデータベース

  • テーブルには PRIMARY KEY または一意制約(すべてのフィールドが一意)が必要です。これらの制約がないテーブルを使用すると、宛先に重複レコードが生成される可能性があります。

  • データベース全体ではなく個別のテーブルを同期対象とする場合、テーブル名やカラム名の変更などの編集を行う際、1 つのタスクで最大 1,000 個のテーブルをサポートします。タスク内のテーブル数が 1,000 を超えると、リクエストエラーが発生します。より大規模なセットの同期には、複数のタスクを設定するか、データベース単位での同期を行ってください。

  • DTS では、以下のデータ型は同期されません:BIT、VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT、POINT。

  • プレフィックスインデックスはサポートされておらず、タスクが失敗する原因となる可能性があります。

  • 同期対象として選択できるのはテーブルのみです。インデックス、パーティション、ビュー、ストアドプロシージャ、関数、トリガー、外部キーは除外されます。

  • 同期中に、プライマリキーを変更する DDL 文やコメントを追加する文(例:ALTER TABLE table_name COMMENT='...')を実行しないでください。これらの操作は無効です。

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

  • ソースが MySQL 8.0.23 以降であり、テーブルに不可視カラムが含まれている場合、DTS はそれらのカラムを読み取れず、データ損失が発生します。タスク開始前に、ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; を実行してカラムを可視化してください。明示的なプライマリキーを持たないテーブルには自動的に不可視プライマリキーが生成されるため、それらも可視化してください。「Invisible Columns」および「Generated Invisible Primary Keys」をご参照ください。

  • EncDB が有効化された ApsaraDB RDS for MySQL インスタンスをソースとして使用する場合、完全データ同期はサポートされません。透過的データ暗号化(TDE)が有効化されたインスタンスは、3 つの同期タイプすべてをサポートします。

  • 0000-00-00 00:00:00 の DATETIME 値は、宛先で null に変換されます。これを回避するには、ソースで値を 0001-01-01 00:00:00 に変更するか、タスク開始前に宛先フィールドを空欄のままにしてください。

  • 同期インスタンスの実行中は、物理バックアップから復元されたデータやカスケード操作によるデータなど、バイナリログの変更操作によって生成されたデータは、送信先に記録または同期されません。このような問題が発生した場合、ビジネスに影響がない場合に限り、影響を受けるデータベースまたはテーブルを同期オブジェクトから削除し、再度追加することができます。詳細については、「同期するオブジェクトを変更する」をご参照ください。

宛先データベース

  • 宛先テーブルは、追加最適化(AO)テーブルであってはなりません。

  • 宛先テーブルの一意キー(プライマリキーを含む)には、分散キーのすべてのカラムが含まれている必要があります。

  • ソーステーブルにプライマリキーがある場合、宛先のプライマリキー列はソースと一致します。ソーステーブルにプライマリキーがない場合、宛先のプライマリキー列は分散キーと一致します。

その他の制限事項

  • 同期中に他のソースから宛先に書き込まれたデータは、不整合を引き起こす可能性があります。DTS 実行中は、宛先テーブルへの同時書き込みを避けてください。

  • 個別のテーブルがオブジェクトとして選択された場合、pt-online-schema-change などのオンライン DDL ツールはサポートされていません。代わりに、ロックなし DDL 操作を実行するには Data Management (DMS) を使用してください。詳細については、「ロックなし DDL 操作の実行」をご参照ください。

  • カラムマッピングを使用する場合、またはソースと宛先のスキーマが異なる場合、ソースに存在し宛先に存在しないカラムは同期されません。

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

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

  • 初期完全データ同期中、同時 INSERT 操作により、宛先でテーブルの断片化が発生します。完全同期完了後、宛先の表領域はソースよりも大きくなります。負荷低減のため、初期同期は非ピーク時間帯に実行することを推奨します。

  • DTS タスクが失敗した場合、DTS テクニカルサポートが 8 時間以内に復旧を試みます。復旧中、タスクは再起動され、パラメーターが調整される場合があります。

自己管理 MySQL ソース

  • タスク実行中にプライマリ/セカンダリ スイッチオーバーが発生すると、タスクが失敗します。

  • DTS は、最新の同期タイムスタンプと現在のソースタイムスタンプを比較することで同期遅延を算出します。ソースで長期間 DML 操作が実行されない場合、報告される遅延は不正確になる可能性があります。遅延メトリックを更新するには、ソースで DML 操作を実行してください。同期対象としてデータベース全体を選択した場合、遅延メトリックを正確に保つために、1 秒ごとに更新されるハートビートテーブルを作成できます。

  • DTS は定期的にソースに対して CREATE DATABASE IF NOT EXISTS 'test' を実行し、バイナリログ位置を進めます。

ApsaraDB RDS for MySQL ソース

  • トランザクションログを記録しない ApsaraDB RDS for MySQL インスタンス(例:読み取り専用の ApsaraDB RDS for MySQL 5.6 インスタンス)は、ソースとして使用できません。

  • DTS は定期的にソースに対して CREATE DATABASE IF NOT EXISTS 'test' を実行し、バイナリログ位置を進めます。

同期可能な SQL 操作

DML: INSERT、UPDATE、DELETE

AnalyticDB for PostgreSQL への書き込み時に、DTS は UPDATE を REPLACE INTO に変換します。UPDATE がプライマリキー列を対象とする場合、DTS は DELETE の後に INSERT を実行します。

DDL: CREATE TABLE、ALTER TABLE、TRUNCATE TABLE、DROP TABLE

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

  • 一方通行・一対一

  • 一方通行・一対多

  • 一方通行・多対一

用語マッピング

MySQLAnalyticDB for PostgreSQL
データベーススキーマ
テーブルテーブル

データ同期タスクの設定

本手順は 9 ステップで構成されています:タスクページの開く、リージョンの選択、ソースおよび宛先データベースの設定、接続性のテスト、同期対象および設定の構成、高度な設定の構成、主キーおよび分散キー列の設定、事前チェックの実行、インスタンスの購入および開始です。

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

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

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

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

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

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

データ同期タスク の右側で、データ同期インスタンスが配置されているリージョンを選択します。

新しい DTS コンソールでは、トップナビゲーションバーからリージョンを選択します。

ステップ 3:ソースおよび宛先データベースの設定

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

ソースデータベース

パラメーター説明
タスク名DTS タスクの名前です。DTS によって自動的に生成されます。識別しやすいように、説明的な名前を使用してください。一意である必要はありません。
データベースタイプ[MySQL] を選択します。
アクセス方法[Alibaba Cloud インスタンス] を選択します。
インスタンスリージョンソース ApsaraDB RDS for MySQL インスタンスのリージョンです。
Alibaba Cloud アカウント間でのデータレプリケーション同一アカウント内で同期する場合は、[いいえ] を選択します。
RDS インスタンス IDソースインスタンスの ID です。ソースと送信先は、同じインスタンス (インスタンス内同期の場合) または異なるインスタンスにすることができます。
データベースアカウント`REPLICATION CLIENT`、`REPLICATION SLAVE`、`SHOW VIEW`、`SELECT` 権限を持つアカウントです。
データベースパスワードデータベースアカウントのパスワードです。
暗号化[非暗号化] または [SSL 暗号化] を選択します。SSL 暗号化を使用するには、まず RDS インスタンスで SSL 暗号化を有効にする必要があります。詳細については、「クラウド証明書を使用して SSL 暗号化を有効にする」をご参照ください。

宛先データベース

パラメーター説明
データベースタイプAnalyticDB for PostgreSQL を選択します。
アクセス方法Alibaba Cloud インスタンス を選択します。
インスタンスリージョン宛先の AnalyticDB for PostgreSQL インスタンスのリージョンです。
インスタンス ID宛先インスタンスの ID です。
データベース名宛先インスタンス内のターゲットデータベースの名前です。
データベースアカウント初期アカウント、または RDS_SUPERUSER 権限を付与済みのアカウントです。
データベースパスワードデータベースアカウントのパスワードです。

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

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

DTS は、自動的にそのサーバーの CIDR ブロックを Alibaba Cloud データベースインスタンスのホワイトリストおよび ECS でホストされるデータベースのセキュリティグループルールに追加します。データベースが ECS 上でホストされている場合、ECS インスタンスがデータベースにアクセスできるようにすることも必要です。データベースが複数の ECS インスタンスにまたがって展開されている場合、各 ECS インスタンスのセキュリティグループルールに DTS の CIDR ブロックを手動で追加する必要があります。データセンターまたはサードパーティクラウド内の自己管理データベースの場合、DTS の CIDR ブロックをデータベースのホワイトリストに手動で追加してください。詳細については、「DTS サーバーの CIDR ブロック」をご参照ください。

警告

DTS の CIDR ブロックをホワイトリストまたはセキュリティグループに追加すると、セキュリティリスクが高まります。続行する前に、強力な認証情報の使用、公開ポートの制限、ホワイトリストルールの定期監査、不正な CIDR ブロックの削除などの予防措置を講じてください。セキュリティリスクを軽減するには、Express Connect、VPN Gateway、または Smart Access Gateway を介した接続をご検討ください。

ステップ 5:同期対象および設定の構成

パラメーター説明
同期タイプスキーマ同期フルデータ同期、および増分データ同期を選択します。デフォルトでは増分データ同期が選択されていますが、他の 2 つも必ず選択する必要があります。スキーマ同期とフル同期によりベースラインが確立され、その後の増分同期によって送信先が最新の状態に保たれます。
競合テーブルの処理モード事前チェックしてエラーを報告(デフォルト):送信先に同名のテーブルが存在する場合、事前チェックが失敗します。必要に応じて、オブジェクト名マッピングを使用して競合するテーブルの名前を変更してください。「オブジェクト名のマッピング」をご参照ください。エラーを無視して続行:名前の競合に関する事前チェックをスキップします。フル同期中は、主キーまたは一意キーの値が一致する送信先の既存レコードが保持されます。増分同期中は、それらのレコードが上書きされます。スキーマが異なる場合、初期化が失敗したり、一部のカラムのみが同期されたり、データ同期インスタンスが失敗する可能性があるため、注意して続行してください。
同期対象の DDL および DML 操作同期する SQL 操作です。「同期可能な SQL 操作」をご参照ください。オブジェクトごとに SQL フィルターを設定するには、選択済みオブジェクト内のオブジェクトを右クリックし、操作を選択します。
ソースオブジェクトオブジェクトを選択し、矢印アイコンをクリックして選択済みオブジェクトに追加します。サポートされるのはテーブルのみです。
選択済みオブジェクト単一のオブジェクトの名前を変更するには、そのオブジェクトを右クリックします。一括で名前を変更するには、一括編集をクリックします。「オブジェクト名のマッピング」をご参照ください。行をフィルターするには、テーブルを右クリックして WHERE 条件を指定します。「フィルター条件の指定」をご参照ください。オブジェクトの名前を変更すると、依存オブジェクトの同期が中断される可能性があります。

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

次へ:高度な設定 をクリックします。

データ検証

詳細については、「データ検証の設定」をご参照ください。

高度な設定

パラメーター説明
タスクスケジューリング用の専用クラスターデフォルトでは、DTS は共有クラスターにスケジュールされます。安定性の向上のために、専用クラスターを購入してください。詳細については、「DTS 専用クラスターとは」をご参照ください。
アラートの設定[いいえ]: アラート機能が無効化されています。はい: アラートのしきい値と連絡先を設定します。詳しくは、「モニタリングとアラートの設定」をご参照ください。
接続失敗時のリトライ時間接続失敗時に DTS がリトライする時間です。範囲:10~1440 分。デフォルト:720 分。30 分以上を設定してください。複数のタスクが同一のソースまたは宛先を共有する場合、最も短いリトライ期間が優先されます。リトライ中は DTS インスタンスの課金が発生します。ソースおよび宛先が廃止された場合は、インスタンスを速やかにリリースしてください。
その他の問題発生時のリトライ時間DDL/DML 失敗時に DTS がリトライする時間です。範囲:1~1440 分。デフォルト:10 分。必ず 接続失敗時のリトライ時間 より短く設定してください。
完全データ同期のスロットリング有効化初期完全データ同期中の負荷低減のため、ソースへの QPS、完全同期の RPS、およびデータスループット(MB/秒)を制限します。完全データ同期 が選択されている場合にのみ利用可能です。
増分データ同期のスロットリング有効化増分同期中の負荷低減のため、RPS およびスループット(MB/秒)を制限します。
環境タグDTS インスタンスを環境別にタグ付けします(任意)。
オブジェクト名を引用符で囲むはい:DTS は、スキーマ同期および増分同期中に、名前に大文字と小文字が混在している場合、英字以外の文字で始まる場合、標準外の文字を含む場合、または宛先の予約語と衝突する場合に、スキーマ、テーブル、カラム名をシングルクォートまたはダブルクォートで囲みます。いいえ:名前は引用符で囲まれません。
ETL の設定はいETL の設定:コードエディタでデータ変換文を入力します。「」をご参照ください。いいえ:変換は行いません。
フォワードおよびリバースタスクのハートビートテーブルに対する SQL 操作の削除有無はい:DTS はハートビートテーブル操作をソースに書き込みません。タスクに遅延メトリックが表示される場合があります。いいえ:DTS はハートビート操作をソースに書き込みますが、これによりソースデータベースの物理バックアップおよびクローン作成に影響が出る可能性があります。

ステップ 7:プライマリキーおよび分散キー列の設定

次へ:データベースおよびテーブルフィールドの設定 をクリックします。宛先の AnalyticDB for PostgreSQL インスタンスに同期する各テーブルについて、プライマリキーおよび分散キー列を設定します。

ステップ 8:事前チェックの実行

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

保存前に同等の OpenAPI パラメーターをプレビューするには、ボタンにカーソルを合わせて OpenAPI パラメーターのプレビュー をクリックします。

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

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

  • 警告項目を安全に無視できる場合は、警告の詳細の確認 をクリックし、ダイアログで 無視 をクリックして OK をクリックし、その後 再事前チェック をクリックします。警告を無視すると、データの不整合が発生する可能性があります。

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

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

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

パラメーター説明
課金方法従量課金:1 時間単位で課金されます。不要になった時点でインスタンスをリリースし、継続的な課金を回避してください。
リソースグループ設定インスタンスのリソースグループです。デフォルト: デフォルトリソースグループResource Management の概要
インスタンスクラス同期スループットクラスです。詳細については、「データ同期インスタンスのインスタンスクラス」をご参照ください。

Data Transmission Service(従量課金)サービス利用規約 を読み、チェックボックスをオンにした後、購入および開始 をクリックします。確認ダイアログで OK をクリックします。

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