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

Data Transmission Service:PolarDB for MySQL クラスターから自己管理 Oracle データベースへのデータ同期

最終更新日:Mar 01, 2026

このトピックでは、Data Transmission Service (DTS) を使用して、PolarDB for MySQL クラスターから自己管理 Oracle データベースにデータを同期する方法について説明します。

前提条件

  • 自己管理 Oracle データベースは ARCHIVELOG モードで実行されます。アーカイブされたログファイルにアクセス可能であり、適切な保持期間が設定されている必要があります。詳細については、「Managing Archived Redo Log Files」をご参照ください。

  • 自己管理 Oracle データベースでは、SUPPLEMENTAL_LOG_DATA_PK および SUPPLEMENTAL_LOG_DATA_UI を含む Supplemental Logging が有効になっています。詳細については、「Supplemental Logging」をご参照ください。

  • 自己管理 Oracle データベースが Oracle Real Application Clusters (RAC) データベースである場合、仮想プライベートクラウド (VPC) を介して Alibaba Cloud に接続する必要があります。Oracle RAC データベースの各 Single Client Access Name (SCAN) IP および各ノードの仮想 IP アドレス (VIP) を VPC に接続し、ルーティングルールを設定する必要があります。これにより、DTS タスクが期待どおりに実行されます。詳細については、「オンプレミスデータベースを Alibaba Cloud に接続する」および「VPN Gateway を使用してデータセンターを DTS に接続する」をご参照ください。

注意事項

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

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

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

  • 同期するオブジェクトとしてテーブルを選択し、ターゲットデータベースでテーブルを編集 (テーブル名やカラム名の変更など) する必要がある場合、1 つのデータ同期タスクで最大 1,000 個のテーブルを同期できます。タスクが 1,000 個を超えるテーブルを同期すると、リクエストエラーが発生します。これを回避するには、複数のタスクを構成してテーブルを同期するか、タスクを構成してデータベース全体を同期します。

  • 増分データを同期するには、バイナリログ機能を有効にする必要があります。また、loose_polar_log_bin パラメーターを [有効] に設定する必要があります。そうしないと、事前チェック中にエラーメッセージが返され、データ同期タスクを開始できません。バイナリログの有効化および loose_polar_log_bin パラメーターの設定について詳しくは、「バイナリログの有効化」および「パラメーターの変更」をご参照ください。

    説明 - PolarDB for MySQL クラスターでバイナリロギング機能を有効にすると、バイナリログが占有するストレージスペースに対して課金が発生します。 - 増分同期タスクの場合、ソースデータベースのバイナリログを少なくとも 24 時間保持してください。初期完全同期タスクの場合、バイナリログを少なくとも 7 日間保持してください。そうでない場合、DTS がバイナリログを取得できず、タスクが失敗する可能性があります。例外的な状況では、データ不整合またはデータ損失が発生する可能性があります。初期完全同期が完了した後、保持期間を 24 時間以上に短縮できます。上記の要件に基づいて保持期間を設定していることを確認してください。そうでない場合、DTS の SLA はサービスの信頼性またはパフォーマンスを保証しません。

その他の制限

  • ソース PolarDB for MySQL クラスターのリードオンリーノードは同期できません。

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

  • 初期完全同期中、同時 INSERT 操作により、ターゲットデータベースのテーブルに断片化が発生します。初期完全同期が完了すると、ターゲットデータベースの表領域はソースデータベースの表領域よりも大きくなります。

  • データ同期中に、pt-online-schema-change などのツールを使用してソーステーブルで DDL 操作を実行しないでください。そうしないと、データ同期が失敗する可能性があります。

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

  • データ同期中は、DTS のみを使用してターゲットデータベースにデータを書き込むことを推奨します。これにより、ソースデータベースとターゲットデータベース間のデータ不整合を防ぐことができます。DTS 以外のツールを使用してターゲットデータベースにデータを書き込むと、DMS を使用してオンライン DDL 操作を実行する際にデータ損失が発生する可能性があります。

  • 自己管理 Oracle データベースが Oracle RAC データベースである場合、データ同期タスクを構成する際に、Single Client Access Name (SCAN) IP アドレスではなく、単一の仮想 IP アドレス (VIP) のみを使用できます。VIP を指定した後、Oracle RAC データベースのノードフェールオーバーはサポートされません。

追加の注意事項

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

課金

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

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

  • 一方向一対一同期

  • 一方向一対多同期

  • 一方向カスケード同期

  • 一方向多対一同期

詳細については、「同期トポロジ」をご参照ください。

同期可能な SQL 操作

操作タイプSQL ステートメント
DMLINSERT、UPDATE、DELETE
DDLCREATE TABLE、ALTER TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN、DROP COLUMN、MODIFY COLUMN、RENAME COLUMN、CREATE INDEX、DROP INDEX

操作手順

  1. データ同期タスクページに移動します。

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

    2. トップナビゲーションバーで、[DTS] をクリックします。

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

    説明 ・操作は、DMS コンソールのモードおよびレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「ビジネス要件に応じて DMS コンソールを設定する」をご参照ください。・また、「新しい DTS コンソールのデータ同期タスクページ」へも移動できます。
  2. データ同期タスクの右側にあるドロップダウンリストから、データ同期インスタンスが存在するリージョンを選択します。

    説明 新しい DTS コンソールを使用する場合は、トップナビゲーションバーでリージョンを選択します。
  3. [タスクの作成] をクリックします。表示されるページで、ソースデータベースとターゲットデータベースを構成します。

    一般設定

    パラメーター説明
    タスク名DTS はタスク名を自動的に生成します。タスクを識別するために、わかりやすい名前を指定することを推奨します。一意のタスク名を使用する必要はありません。

    ソースデータベース設定

    パラメーター説明
    インスタンスの選択既存のインスタンスを使用するかどうかを指定します。既存のインスタンスを選択すると、DTS はそのパラメーター設定を自動的に適用し、対応するパラメーターを再度構成する必要はありません。既存のインスタンスを使用しない場合は、ソースデータベースのパラメーターを構成する必要があります。
    データベースタイプソースデータベースのタイプ。[PolarDB for MySQL] を選択します。
    アクセス方法ソースデータベースのアクセス方法。[Alibaba Cloud Instance] を選択します。
    インスタンスリージョンソース PolarDB for MySQL クラスターが存在するリージョン。
    Alibaba Cloud アカウント間でデータをレプリケートAlibaba Cloud アカウント間でデータを同期するかどうかを指定します。この例では、[No] が選択されています。
    PolarDB クラスター IDソース PolarDB for MySQL クラスターの ID。
    データベースアカウントソース PolarDB for MySQL クラスターのデータベースアカウント。このアカウントは、同期するオブジェクトに対する読み取り権限を持っている必要があります。
    データベースパスワードデータベースアカウントのパスワード。

    宛先データベース

    パラメーター説明
    インスタンスの選択既存のインスタンスを使用するかどうかを指定します。既存のインスタンスを選択すると、DTS はそのパラメーター設定を自動的に適用し、対応するパラメーターを再度構成する必要はありません。既存のインスタンスを使用しない場合は、ターゲットデータベースのパラメーターを構成する必要があります。
    データベースタイプターゲットデータベースのタイプ。[Oracle] を選択します。
    アクセス方法ターゲットデータベースのアクセス方法。ターゲットデータベースのデプロイメントに基づいてアクセス方法を選択します。この例では、[ECS 上の自己管理データベース] が選択されています。
    重要

    このパラメーターを別の値に設定した場合、自己管理データベースに必要な環境をセットアップする必要があります。詳細については、「準備の概要」をご参照ください。

    インスタンスリージョンターゲット Oracle データベースが存在するリージョン。
    ECS インスタンス ID自己管理 Oracle データベースをホストする Elastic Compute Service (ECS) インスタンスの ID。
    ポート番号自己管理 Oracle データベースのサービスポート番号。デフォルト値:[1521]。
    Oracle タイプOracle データベースのアーキテクチャ。[非 RAC インスタンス] を選択した場合、[SID] パラメーターを指定する必要があります。[RAC または PDB インスタンス] を選択した場合、[サービス名] パラメーターを指定する必要があります。
    データベースアカウント自己管理 Oracle データベースのアカウント。
    データベースパスワードデータベースアカウントのパスワード。
  4. ページ下部の [接続テストと続行] をクリックします。

    警告

    - ソースまたはターゲットデータベースが ApsaraDB RDS for MySQL または ApsaraDB for MongoDB のような Alibaba Cloud データベースインスタンスである場合、DTS は自動的に DTS サーバーの CIDR ブロックをそのインスタンスのホワイトリストに追加します。詳細については、「オンプレミスデータベースのセキュリティ設定への DTS サーバーの CIDR ブロックの追加」をご参照ください。ソースまたはターゲットデータベースが Elastic Compute Service (ECS) インスタンス上でホストされている自己管理データベースである場合、DTS は自動的に DTS サーバーの CIDR ブロックを ECS インスタンスのセキュリティグループルールに追加します。また、ECS インスタンス上の自己管理データベースのホワイトリストにも、DTS サーバーの CIDR ブロックを手動で追加する必要があります。ソースまたはターゲットデータベースがデータセンターに展開された自己管理データベース、またはサードパーティのクラウド サービス プロバイダーが提供する自己管理データベースである場合、データベースのホワイトリストに DTS サーバーの CIDR ブロックを手動で追加する必要があります。 - ホワイトリストまたは ECS セキュリティグループルールへの DTS サーバーの CIDR ブロックの追加(自動または手動)は、セキュリティリスクを引き起こす可能性があります。DTS を使用してデータを同期する前に、これらの潜在的なリスクを理解し、認識したうえで予防措置を講じる必要があります。これらの措置には、以下に例を示します:ユーザー名およびパスワードのセキュリティ強化、公開ポートの制限、API 呼び出しの認証、ホワイトリストまたは ECS セキュリティグループルールの定期的な確認と不正な CIDR ブロックの削除、または Express Connect、VPN Gateway、Smart Access Gateway を介したデータベースと DTS の接続などがあります。 - DTS タスクが完了またはリリースされた後は、ホワイトリストまたは ECS セキュリティグループルールから DTS サーバーの CIDR ブロックを手動で削除することを推奨します。Alibaba Cloud データベースインスタンスのホワイトリスト、または ECS インスタンスのセキュリティグループルールから、名前に dts を含む IP アドレスホワイトリストグループを削除してください。データセンター内またはサードパーティのクラウド サービス上でホストされる自己管理データベースのホワイトリストから削除する CIDR ブロックについて詳しくは、「オンプレミスデータベースのセキュリティ設定への DTS サーバーの CIDR ブロックの追加」をご参照ください。

  5. タスクのオブジェクトを選択し、詳細設定を構成します。

    パラメータ説明
    タスクステージデフォルトでは、増分同期が選択されています。スキーマ同期と全データ同期も選択する必要があります。事前チェックが完了すると、Data Transmission Service (DTS) は、選択されたオブジェクトの既存データをソースデータベースからターゲットデータベースに同期します。この既存データは、後続の増分同期の基礎となります。
    競合するテーブルの処理モード[エラーを事前チェックして報告]:ターゲットデータベースにソースデータベース内のテーブルと同じ名前のテーブルが含まれているかどうかをチェックします。同じテーブル名が存在しない場合、事前チェックは合格します。それ以外の場合、事前チェック中にエラーが返され、データ同期タスクを開始できません。
    説明

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

    警告

    [エラーを無視して続行] を選択した場合、データ不整合が発生し、ご利用のビジネスが潜在的なリスクにさらされる可能性があります。ソースデータベースとターゲットデータベースが同じスキーマを持ち、データレコードがターゲットデータベース内の既存のデータレコードと同じプライマリキー値を持つ場合:全データ同期中、DTS はデータレコードをターゲットデータベースに同期せず、ターゲットデータベース内の既存のデータレコードは保持されます。増分同期中、DTS はデータレコードをターゲットデータベースに同期し、ターゲットデータベース内の既存のデータレコードは上書きされます。ソースデータベースとターゲットデータベースが異なるスキーマを持つ場合、初期データ同期が失敗する可能性があります。この場合、一部の列のみが同期されるか、データ同期タスクが失敗します。

    宛先インスタンスのオブジェクト名の大文字/小文字宛先インスタンスにおけるデータベース名、テーブル名、および列名の大文字/小文字。デフォルトでは、DTS のデフォルトポリシーが選択されています。オブジェクト名の大文字/小文字がソースデータベースまたはターゲットデータベースと一致するように、他のオプションを選択できます。詳細については、「宛先インスタンスのオブジェクト名の大文字/小文字を指定する」をご参照ください。
    ソースオブジェクト[ソースオブジェクト] セクションから1つ以上のオブジェクトを選択し、Rightwards arrow アイコンをクリックして [選択されたオブジェクト] セクションに追加します。
    説明

    同期するオブジェクトとして、列、テーブル、またはデータベースを選択できます。テーブルまたは列を選択した場合、DTS はビュー、トリガー、ストアドプロシージャなどの他のオブジェクトをターゲットデータベースに同期しません。

    選択されたオブジェクト宛先インスタンスに同期するオブジェクトの名前を変更するには、[選択されたオブジェクト] セクションでオブジェクトを右クリックします。詳細については、「単一オブジェクトの名前をマッピングする」をご参照ください。一度に複数のオブジェクトの名前を変更するには、[選択されたオブジェクト] セクションの右上隅にある [一括編集] をクリックします。詳細については、「一度に複数のオブジェクト名をマッピングする」をご参照ください。
  6. [次へ: 詳細設定] をクリックして詳細設定を構成します。

    パラメーター説明
    アラートの設定データ同期タスクに対してアラートを設定するかどうかを指定します。タスクが失敗した場合や、同期遅延が指定されたしきい値を超えた場合、アラート連絡先に通知が送信されます。有効な値は、No(アラートを設定しない)およびYes(アラートを設定する)です。[Yes] を選択した場合は、アラートのしきい値とアラート連絡先も指定する必要があります。詳細については、「DTS タスク作成時のモニタリングとアラートの設定」をご参照ください。
    接続失敗時のリトライ時間接続失敗時のリトライ時間範囲を指定します。データ同期タスク開始後にソースまたはターゲットデータベースへの接続が失敗した場合、DTS は指定された時間範囲内で直ちに再接続を試行します。有効な値:10 ~ 1440。単位:分。デフォルト値:720。このパラメーターは 30 より大きい値に設定することを推奨します。DTS が指定された時間範囲内にソースおよびターゲットデータベースに再接続できた場合、データ同期タスクは再開されます。それ以外の場合、データ同期タスクは失敗します。
    説明

    同一のソースまたはターゲットデータベースを共有する複数の DTS タスクに対して異なるリトライ時間範囲を設定した場合、最も短いリトライ時間範囲が優先されます。DTS はリトライ中も DTS インスタンスに対して課金されます。ビジネス要件に基づいてリトライ時間範囲を設定してください。また、ソースおよびターゲットインスタンスをリリースした後は、できるだけ早く DTS インスタンスをリリースすることを推奨します。

    ETL の設定抽出・変換・書き出し(ETL)機能を設定するかどうかを指定します。詳細については、「ETL とは」をご参照ください。有効な値は、Yes(ETL 機能を設定する。コードエディタでデータ処理文を入力できます。詳細については、「データ移行またはデータ同期タスクでの ETL 設定」をご参照ください)およびNo(ETL 機能を設定しない)です。
    双方向タスクのハートビートテーブルに対する SQL 操作の削除DTS インスタンス実行中に、ハートビートテーブルに対する SQL 操作をソースデータベースに書き込むかどうかを指定します。Yes:ハートビートテーブルに対する SQL 操作を書き込みません。この場合、DTS インスタンスに遅延が表示される可能性があります。No:ハートビートテーブルに対する SQL 操作を書き込みます。この場合、ソースデータベースの物理バックアップやクローンなどの特定の機能に影響を与える可能性があります。
  7. ページ下部の [次へ: タスク設定の保存と事前チェック] をクリックします。

    説明 - データ同期タスクを開始する前に、DTS は事前チェックを実行します。タスクが事前チェックに合格した場合にのみ、データ同期タスクを開始できます。 - タスクが事前チェックに失敗した場合、各失敗項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析し、問題をトラブルシューティングしてから、再度事前チェックを実行します。 - 事前チェック中に項目に対してアラートが生成された場合、シナリオに基づいて次のいずれかのアクションを実行します。 - アラート項目を無視できない場合、失敗項目の横にある [詳細の表示] をクリックします。チェック結果に基づいて原因を分析し、問題をトラブルシューティングしてから、再度事前チェックを実行します。 - アラート項目を無視できる場合、失敗項目の横にある [アラート詳細の確認] をクリックします。[詳細の表示] ダイアログボックスで、[無視] をクリックします。表示されるメッセージで、[OK] をクリックします。次に、[再度事前チェック] をクリックして、再度事前チェックを実行します。アラート項目を無視すると、データ不整合が発生し、ビジネスが潜在的なリスクにさらされる可能性があります。
  8. 成功率が 100% に達するまで待ちます。次に、[次へ: インスタンスの購入] をクリックします。

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

    セクションパラメーター説明
    新しいインスタンスクラス課金方法[サブスクリプション]:インスタンス作成時に料金を支払います。サブスクリプション課金方法は、従量課金よりも長期利用において費用対効果が高くなります。[従量課金]:インスタンスは時間単位で課金されます。この課金方法は短期利用に適しています。従量課金インスタンスが不要になった場合は、リリースしてコストを削減できます。
    インスタンスクラスデータ同期インスタンスの仕様DTS は、さまざまな同期速度を持つ複数のインスタンスクラスを提供しています。ご利用のビジネスシナリオに基づいてインスタンスクラスを選択してください。詳細については、「」をご参照ください。
    サブスクリプション期間サブスクリプション課金方法を選択した場合、サブスクリプション期間と作成するインスタンス数を設定します。サブスクリプション期間は、1〜9ヶ月または1〜3年です。
    説明

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

  10. [Data Transmission Service (従量課金) サービス規約] のチェックボックスを読み、選択します。

  11. [購入して開始] をクリックしてデータ同期タスクを開始します。タスクリストでタスクの進捗を表示できます。