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

PolarDB:PolarDB for MySQL クラスター間の片方向同期

最終更新日:Mar 29, 2026

リージョンやアカウントをまたいで PolarDB for MySQL クラスターを実行する場合、クラスター間のデータ整合性を維持するには、信頼性の高いレプリケーションメカニズムが必要です。Data Transmission Service (DTS) は、PolarDB for MySQL クラスター間の片方向および双方向のデータ同期を提供するため、以下のことが可能になります。

  • ディザスタリカバリ:スタンバイクラスターをプライマリクラスターと同期させ、必要なときに迅速にフェイルオーバーします。

  • マルチリージョンデプロイメント:異なるリージョンのクラスター間でデータをレプリケーションし、地理的に分散したユーザーの読み取りレイテンシを削減します。

  • 無停止移行:アプリケーションの実行中にクラスター間でデータを同期し、ダウンタイムなしでトラフィックを切り替えます。

前提条件

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

  • ソースとターゲットの両方の PolarDB for MySQL クラスターが作成されていること。詳細については、「カスタム購入」および「サブスクリプションクラスターの購入」をご参照ください。

  • ターゲットクラスターの利用可能なストレージ容量が、ソースクラスターの総データサイズよりも大きいこと。

制限事項

ソースデータベース

  • テーブルにはプライマリキーまたは一意制約が必要で、すべてのフィールドが一意である必要があります。これらの制約がないテーブルでは、送信先でレコードが重複する可能性があります。双方向同期の場合、プライマリキーまたは一意制約のないテーブルを処理するには、[Exactly-Once 書き込み] 機能を有効にします。詳細については、「プライマリキーまたは一意制約のないテーブルを同期する」をご参照ください。

  • (データベース全体ではなく) テーブルを同期し、ターゲットでテーブルまたは列の名前を変更する必要がある場合、1 つのタスクでサポートされるテーブルは最大 1,000 個です。1,000 個を超えるテーブルを同期する場合は、作業を複数のタスクに分割するか、データベース全体を同期してください。

  • バイナリロギングの要件:

    • バイナリロギングを有効化するには、loose_polar_log_bin パラメーターを ON に設定します。このパラメーターが設定されていない場合、事前チェックは失敗し、DTS タスクを開始できません。「バイナリロギングの有効化」および「パラメーターの変更」をご参照ください。> 注意: バイナリロギングを有効化すると、ストレージ料金が発生します。

    • バイナリログは少なくとも3 日間保持してください。7 日間の保持期間を推奨します。保持期間が短いと、データの不整合や損失が発生する可能性があり、DTS サービスの信頼性に影響を与えることがあります。保持期間を設定するには、「バイナリロギングを有効化する」の保持期間を変更するセクションをご参照ください。

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

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

その他の制限事項

制限事項詳細
読み取り専用ノードDTS はソースクラスターの読み取り専用ノードを同期しません。
OSS 外部テーブルDTS は Object Storage Service (OSS) の外部テーブルを同期しません。
コメントで定義されたパーサDTS はコメントで定義されたパーサを使用するデータを同期しません。
4 バイト文字希少文字または 4 バイトの UTF-8 文字を含むデータの場合、ターゲットデータベースとテーブルで UTF8mb4 文字セットを使用する必要があります。スキーマ同期が有効な場合は、ターゲットデータベースの character_set_server パラメーターを UTF8mb4 に設定してください。
DDL ツール同期中にソーステーブルで DDL 操作を実行するために、pt-online-schema-change などのツールの使用は推奨されません。その場合、DTS タスクが失敗します。オンライン DDL 操作を実行するには、Data Management (DMS) を使用してください。ただし、同期中に他のデータソースが送信先に書き込んでいない場合に限ります。同期中に複数のデータソースから送信先に書き込むと、データ損失が発生する可能性があります。
ターゲットでの DDL 失敗送信先で DDL 文が失敗した場合、同期タスクは続行されます。失敗した DDL 文は、タスクログで確認できます。詳細については、「タスクログの表示」をご参照ください。
アカウントの同期データベースアカウントの同期には独自の前提条件があります。詳細については、「データベースアカウントの移行」をご参照ください。
タスクの回復DTS タスクが失敗した場合、DTS サポートは 8 時間以内に復旧を試みます。タスクが再起動されたり、タスクパラメーター (データベースパラメーターではなく) が調整されたりする場合があります。変更される可能性のあるパラメーターについては、「インスタンスパラメーターの変更」をご参照ください。

パフォーマンスへの影響

完全データ同期中、DTS は両方のクラスターに同時に読み書きを行うため、負荷が増加します。影響を軽減するには、以下の対策を講じてください。

  • オフピーク時間帯に同期を実行します。

  • 詳細設定で速度制限を有効にします (完全同期の QPS および RPS 制限を設定)。

  • 完全データ同期が完了した後、ターゲットの表領域はソースよりも大きくなることが予想されます。これは、同時 INSERT 操作によってテーブルの断片化が発生するためです。

双方向同期

  • 双方向同期は、2 つの PolarDB for MySQL クラスター間でのみサポートされます。3 つ以上のクラスターはサポートされていません。

  • DDL 操作は順方向でのみ同期できます。これにより、データ整合性が維持されます。

  • DTS は、循環同期を防ぐために、ターゲットに dts データベースを作成します。タスクの実行中は、このデータベースを変更しないでください。

  • 双方向同期インスタンスには、順方向タスクと逆方向タスクが含まれます。オブジェクトが両方のタスクに存在する場合:

    • そのオブジェクトの完全データと増分データの両方を同期できるのは、一方のタスクのみです。もう一方のタスクは増分データのみを同期します。

    • 一方のタスクによって同期されたデータは、もう一方のタスクのソースデータとしてフィードバックされません。

  • DTS は、バイナリログの位置を進めるために、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS \test\`` を実行します。

課金

同期タイプコスト
スキーマ同期と完全データ同期無料
増分データ同期課金されます。詳細については、「課金概要」をご参照ください。

同期可能な SQL 操作

タイプ操作
DMLINSERT, UPDATE, DELETE
DDLALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE
重要

RENAME TABLE はデータの不整合を引き起こす可能性があります。たとえば、テーブルを名前で同期してから名前を変更すると、DTS はそのテーブルの同期を停止します。これを避けるには、個々のテーブルではなくデータベース全体を同期し、名前変更前後のテーブルが属するデータベースが同期範囲に含まれていることを確認してください。

データ同期の設定

設定は、タスクリストへの移動、リージョンの選択、ソースとターゲットデータベースの設定、接続テスト、オブジェクトの選択と同期設定、詳細設定、事前チェックの実行、インスタンスの購入の 8 つのステップで構成されます。

ステップ 1:データ同期タスクページに移動

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

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

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

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

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

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

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

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

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

警告

ソースとターゲットを設定した後、ページに表示される [制限事項] をよくお読みください。このステップをスキップすると、タスクの失敗やデータの不整合が発生する可能性があります。

タスク設定

パラメーター説明
タスク名DTS タスクの名前。DTS はデフォルトの名前を生成します。タスクを識別しやすくするために、わかりやすい名前を指定してください。名前は一意である必要はありません。

ソースデータベース

パラメーター説明
DMS データベースインスタンスの選択既存の DMS データベースインスタンスを選択して接続パラメーターを自動入力するか、空白のまま手動でパラメーターを入力します。
データベースタイプ [PolarDB for MySQL] を選択します。
アクセス方法 [Alibaba Cloud インスタンス] を選択します。
インスタンスリージョンソースクラスターが存在するリージョン。
Alibaba Cloud アカウント間でのデータレプリケーションAlibaba Cloud アカウント間で同期するかどうか。同一アカウントでの同期の場合は [いいえ] を選択します。
PolarDB クラスター IDソースクラスターの ID。ソースとターゲットは同じクラスター (クラスター内での同期) でも、異なるクラスターでもかまいません。
データベースアカウント同期対象のオブジェクトに対する読み取り権限を持つデータベースアカウント。
データベースパスワードデータベースアカウントのパスワード。
暗号化接続を暗号化するかどうか。詳細については、「SSL 暗号化の設定」をご参照ください。

ターゲットデータベース

パラメーター説明
DMS データベースインスタンスの選択既存の DMS データベースインスタンスを選択して接続パラメーターを自動入力するか、空白のまま手動でパラメーターを入力します。
データベースタイプ [PolarDB for MySQL] を選択します。
アクセス方法 [Alibaba Cloud インスタンス] を選択します。
インスタンスリージョンターゲットクラスターが存在するリージョン。
PolarDB クラスター IDターゲットクラスターの ID。
データベースアカウントターゲットデータベースに対する読み取り権限を持つデータベースアカウント。特権アカウントを推奨します。
データベースパスワードデータベースアカウントのパスワード。
暗号化接続を暗号化するかどうか。詳細については、「SSL 暗号化の設定」をご参照ください。

ステップ 4:接続テスト

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

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

警告

DTS の CIDR ブロックをホワイトリストやセキュリティグループルールに追加すると、潜在的なセキュリティリスクが生じます。続行する前に、強力な認証情報の設定、公開ポートの制限、API 呼び出しの検証、ホワイトリストの定期的な監査などの予防措置を講じてください。セキュリティを強化するために、Express Connect、VPN Gateway、または Smart Access Gateway を介して DTS をデータベースに接続してください。

ステップ 5:オブジェクトの選択と同期設定

パラメーター説明
同期タイプデフォルトでは、増分データ同期 が選択されています。また、スキーマ同期 および 全量データ同期 も必ず選択してください。DTS は、既存のデータをベースラインとして同期した後、変更を増分的に適用します。
ソースデータベース内のトリガーの移行方法同期中のトリガーの処理方法です。スキーマ同期 を選択し、かつトリガーの同期を行う場合にのみ設定してください。詳細については、「ソースデータベースからトリガーを同期または移行する」をご参照ください。
同期トポロジー本例では、単方向同期 を選択しています。その他の選択肢として、双方向同期 も利用可能です。
競合テーブルの処理モード送信先に、ソーステーブルと同名のテーブルが存在する場合の DTS の動作です。「事前チェックとエラー報告」を選択すると、同名のテーブルが検出された時点でタスクが停止します。「エラーを無視して続行」を選択すると、チェックがスキップされ、データの不整合を引き起こす可能性があります。使用には十分ご注意ください。
ソースオブジェクトソースオブジェクト セクションからオブジェクトを選択し、矢印アイコンをクリックして、選択済みオブジェクト セクションへ移動します。列、テーブル、またはデータベースを選択できます。テーブルまたは列のみを選択した場合、ビュー、トリガー、ストアドプロシージャは同期対象から除外されます。
選択済みオブジェクトオブジェクトを右クリックすると、送信先でのオブジェクト名マッピング(名称変更)や、同期対象とする特定の SQL 操作の選択が可能です。一括編集オブジェクト名のマップ をクリックすると、複数のオブジェクトを一度に名称変更できます。テーブルを右クリックすると、行レベルのフィルタリング用の WHERE 条件を追加できます。詳細については、「」および「フィルター条件の指定」をご参照ください。

オブジェクト選択のガイドライン

テーブルを参照するビューや外部キー関係を持つテーブルなど、依存関係の欠落による失敗を避けるために、関連するすべてのオブジェクトを一緒に選択してください。同期中にソースデータベースのテーブル名が (RENAME TABLE を介して) 変更される場合は、個々のテーブルではなくデータベース全体を選択して、名前変更前後の両方のデータベース名が同期範囲に含まれるようにしてください。

ステップ 6:詳細設定

[次へ:詳細設定] をクリックします。

データ検証

データ検証タスクを設定して、同期後のソースと送信先間の不整合を検出します。詳細については、「データ検証タスクの設定」をご参照ください。

詳細設定

パラメーター説明
タスクスケジューリング用の専用クラスターデフォルトでは、DTS は共有クラスターを使用します。安定性を向上させるには、専用クラスターをご購入ください。詳細については、「DTS 専用クラスターとは」をご参照ください。
アラートの設定タスクの失敗や遅延がしきい値を超えた場合にアラートを送信するよう設定します。[はい] を選択して、アラートのしきい値と通知先連絡先を設定してください。詳細については、「モニタリングとアラート機能の設定」をご参照ください。
ターゲットデータベースのエンジンタイプの選択ターゲットクラスターのストレージエンジン:InnoDB(デフォルト)またはX-Engine(オンライントランザクション処理 (OLTP) 向けストレージエンジン)。
ソーステーブルでオンライン DDL ツールが生成した一時テーブルをターゲットデータベースにコピーするDTS がオンライン DDL ツール(DMS または gh-ost)によって生成された一時テーブルを処理する方法:[はい] — 一時テーブルのデータを同期します(大規模な変更の場合、タスクの持続時間が長くなる可能性があります)。[いいえ、DMS オンライン DDL に適応] — 一時テーブルをスキップし、元の DDL のみを同期します(ターゲットテーブルがロックされる可能性があります)。[いいえ、gh-ost に適応] — 一時テーブルをスキップし、元の gh-ost DDL のみを同期します(ターゲットテーブルがロックされる可能性があります。シャドウテーブルをフィルターするためのカスタム正規表現もサポートされます)。
接続失敗時のリトライ時間DTS が接続失敗後にリトライを継続する時間です。有効値:10~1,440 分。デフォルト:720 分。30 分以上に設定してください。この時間内に DTS が再接続できた場合、タスクは再開されます。複数のタスクが同じソースまたはターゲットデータベースを共有している場合、最も短いリトライ時間の設定が優先されます。
その他の問題発生時のリトライ時間DDL または DML の失敗後に DTS がリトライを継続する時間です。有効値:1~1,440 分。デフォルト:10 分。10 分以上に設定してください。接続失敗時のリトライ時間より短く設定する必要があります。
完全データ同期時のスロットリングの有効化完全同期中の読み取り/書き込み負荷を制限します。ソースデータベースへの秒間クエリ数 (QPS)完全データ移行の RPS、および完全移行時のデータ移行速度 (MB/s) を設定します。完全データ同期 を選択した場合のみ利用可能です。
増分データ同期時のスロットリングの有効化増分同期中の負荷を制限します。増分データ同期の RPS および増分同期時のデータ同期速度 (MB/s) を設定します。
環境タグDTS インスタンスを識別するためのタグです。任意で設定できます。
ETL の設定抽出・変換・書き出し (ETL) 変換を適用するかどうかを指定します。[はい] を選択すると、コードエディタにデータ処理文を記述できます。詳細については、「ETL の設定」および「ETL とは」をご参照ください。
転送および逆再生タスクのハートビートテーブルに対する SQL 操作の削除DTS がソースデータベースにハートビート SQL 操作を書き込むかどうかを指定します:[はい] — 書き込みを無効にします(DTS インスタンス上に同期遅延インジケーターが表示される可能性があります)。[いいえ] — 書き込みを有効にします(ソースデータベースの物理バックアップおよびクローン作成に影響を与える可能性があります)。

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

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

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

DTS はタスクを開始する前に事前チェックを実行します。各事前チェック項目には、3 つの結果のいずれかがあります。

結果意味操作
合格項目はすべての要件を満たしています。操作は不要です。
失敗項目は要件を満たしておらず、タスクをブロックします。失敗した項目の横にある [詳細の表示] をクリックし、問題を修正してから [再度事前チェック] をクリックします。
アラート項目は要件を完全には満たしていませんが、潜在的な影響を受けつつもタスクは続行できます。無視する場合: [アラート詳細の確認] > [無視] > [OK] をクリックし、 [再度事前チェック] をクリックします。アラートを無視すると、データの不整合が発生する可能性があります。

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

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

[buy] ページで、以下を設定します。

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

[Data Transmission Service (従量課金) 利用規約] を読み、同意してから、 [購入して開始] をクリックします。確認ダイアログで、 [OK] をクリックします。

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