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

Data Transmission Service:RDS MySQL から AnalyticDB for MySQL 3.0 へのデータ同期

最終更新日:Feb 04, 2026

Data Transmission Service (DTS) を使用して、RDS MySQL から AnalyticDB for MySQL 3.0 にデータを同期します。これにより、ビジネスインテリジェンス (BI)、インタラクティブクエリ、リアルタイムレポートのための社内システムを迅速に構築できます。

前提条件

  • ターゲットの AnalyticDB for MySQL 3.0 クラスターを作成します。詳細については、「クラスターの作成」をご参照ください。

  • ターゲットの AnalyticDB for MySQL インスタンスのストレージ領域は、ソースの RDS MySQL インスタンスが使用するストレージ領域よりも大きい必要があります。

注意事項

説明
  • スキーマ同期中、DTS はソースデータベースからターゲットデータベースに外部キーを同期しません。

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

タイプ

説明

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

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

  • テーブルレベルでデータを同期し、テーブル名や列名のマッピングなどのオブジェクトを編集する必要がある場合、1 つのタスクで最大 1,000 テーブルまで同期できます。この制限を超えると、タスクを送信した後にエラーが報告されます。この場合、テーブルを複数の同期タスクに分割するか、データベース全体を同期するタスクを設定してください。

  • バイナリログ:

    • RDS for MySQL インスタンスでは、バイナリログはデフォルトで有効になっています。binlog_row_image パラメーターを full に設定する必要があります。そうでない場合、事前チェック中にエラーが報告され、データ同期タスクを開始できません。インスタンスパラメーターの設定方法の詳細については、「インスタンスパラメーターの設定」をご参照ください。

      重要
      • ソースインスタンスが自己管理 MySQL データベースの場合、バイナリログを有効にし、binlog_formatrow に、binlog_row_imagefull に設定する必要があります。

      • ソースの自己管理 MySQL データベースが、2 つのデータベースが互いにプライマリとセカンダリであるプライマリ/プライマリクラスターである場合、log_slave_updates パラメーターを有効にする必要があります。これにより、DTS がすべてのバイナリログを取得できるようになります。詳細については、「自己管理 MySQL データベースのデータベースアカウントを作成し、バイナリログを設定する」をご参照ください。

    • ApsaraDB RDS for MySQL インスタンスではバイナリログを少なくとも 3 日間 (7 日間を推奨)、自己管理 MySQL データベースでは少なくとも 7 日間保持してください。そうしないと、DTS がバイナリログを取得できず、DTS タスクが失敗する可能性があります。極端な場合、データの不整合やデータ損失が発生する可能性があります。必要な期間よりも短いバイナリログ保持期間に起因する問題は、DTS サービスレベルアグリーメント (SLA) の対象外です。

      説明

      ApsaraDB RDS for MySQL インスタンスのバイナリログの [保持期間] の設定方法の詳細については、「ローカルログの自動削除」をご参照ください。

  • 同期中に、ALTER TABLE table_name COMMENT='table comment'; のような主キーを変更したりコメントを追加したりする DDL 操作を実行しないでください。そうしないと、データ同期中に DDL 操作が失敗します。

  • スキーマ同期および完全データ同期中に、データベースまたはテーブルのスキーマを変更するデータ定義言語 (DDL) 操作を実行しないでください。そうしないと、データ同期タスクが失敗します。

    説明

    完全同期フェーズ中、DTS はソースデータベースをクエリし、メタデータロックを取得します。これにより、ソースデータベースでの DDL 操作がブロックされる可能性があります。

  • 同期中、DTS はバイナリログに記録されないデータ変更 (物理バックアップからのデータ復元やカスケード操作によって生成されたデータなど) を同期しません。

    説明

    これが発生した場合、ビジネスで許可されていれば、データを含むデータベースまたはテーブルを同期オブジェクトから削除し、再度追加することができます。詳細については、「同期オブジェクトの変更」をご参照ください。

  • ソースデータベースがバージョン 8.0.23 以降の MySQL データベースで、同期するデータに非表示列が含まれている場合、これらの列のデータが取得できないため、データ損失が発生する可能性があります。

    説明

    ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE; を実行して、非表示列を表示可能にします。詳細については、「非表示列」をご参照ください。

その他の制限

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

  • ソースデータベースで複数テーブルのマージなど、一時テーブルを使用するオンライン DDL 操作を実行すると、ターゲットデータベースでデータ損失が発生したり、同期タスクが失敗したりする可能性があります。

  • INDEX、PARTITION、VIEW、PROCEDURE、FUNCTION、TRIGGER、および FK オブジェクトの同期はサポートされていません。

  • 同期タスクの実行中に主キーまたは一意キーの競合が発生した場合:

    • テーブルスキーマが同じで、ターゲットデータベースのレコードがソースデータベースのレコードと同じ主キーまたは一意キーの値を持つ場合:

      • 完全同期中、DTS はターゲットクラスターのレコードを保持します。ソースデータベースの対応するレコードは同期されません。

      • 増分同期中、ソースデータベースのレコードがターゲットデータベースのレコードを上書きします。

    • テーブルスキーマが異なる場合、初期データ同期が失敗する可能性があります。これにより、一部の列データのみが同期されるか、同期が完全に失敗する可能性があります。注意して進めてください。

  • ターゲットデータベースにはカスタムの主キーが必要です。または、テーブル・列設定 ステップで、プライマリキー列の追加 を設定します。そうしないと、データ同期が失敗する可能性があります。

  • AnalyticDB for MySQL の制限により、AnalyticDB for MySQL クラスター内のノードのディスク領域使用率が 80% を超えると、DTS タスクが異常になり、遅延が発生します。同期するオブジェクトに基づいて必要な領域を見積もり、ターゲットクラスターに十分なストレージ領域があることを確認してください。

  • DTS タスクの実行中にターゲットの AnalyticDB for MySQL 3.0 クラスターがバックアップされている場合、タスクは失敗します。

  • データを同期する前に、ソースデータベースとターゲットデータベースのパフォーマンスを評価してください。オフピーク時にデータを同期することを推奨します。そうしないと、初期完全データ同期がソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを消費し、データベースの負荷が増加する可能性があります。

  • 初期完全データ同期は同時 INSERT 操作を実行するため、ターゲットテーブルに断片化が発生します。その結果、初期完全データ同期が完了した後、ターゲットインスタンスの表領域はソースインスタンスの表領域よりも大きくなります。

  • データベース全体ではなく 1 つ以上のテーブルを同期する場合、pt-online-schema-change などのツールを使用してソースデータベースの同期オブジェクトに対してオンライン DDL 操作を実行しないでください。そうしないと、同期が失敗します。

    Data Management (DMS) を使用してオンライン DDL 操作を実行できます。詳細については、「テーブルをロックせずにスキーマを変更する」をご参照ください。

  • テーブルレベルのデータ同期の場合、DTS 以外のソースからターゲットの AnalyticDB for MySQL データベースにデータが書き込まれない場合は、DMS を使用してオンライン DDL 操作を実行できます。詳細については、「テーブルをロックせずにスキーマを変更する」をご参照ください。

  • DTS 同期中、DTS 以外のソースからターゲットデータベースへのデータ書き込みを許可しないでください。そうしないと、ソースデータベースとターゲットデータベースの間でデータ不整合が発生します。たとえば、他のソースからターゲットデータベースにデータが書き込まれている間に DMS を使用してオンライン DDL 操作を実行すると、ターゲットデータベースでデータ損失が発生する可能性があります。

  • DDL 文がターゲットデータベースへの書き込みに失敗した場合、DTS タスクは実行を継続します。タスクログで失敗した DDL 文を確認する必要があります。タスクログの表示方法の詳細については、「タスクログの表示」をご参照ください。

  • RDS MySQL インスタンスで常時機密データベース (EncDB) 機能が有効になっている場合、完全データ同期はサポートされていません。

    説明

    TDE (透過的データ暗号化) が有効になっている RDS for MySQL インスタンスでは、スキーマ同期、完全データ同期、および増分データ同期がサポートされています。

  • タスクが失敗した場合、DTS の技術サポートは 8 時間以内に回復を試みます。回復プロセス中に、タスクの再起動やパラメーターの調整などの操作が実行される場合があります。

    説明

    パラメーターが調整される場合、DTS タスクのパラメーターのみが変更され、データベースのパラメーターは変更されません。変更される可能性のあるパラメーターには、「インスタンスパラメーターの変更」で説明されているものが含まれますが、これらに限定されません。

特殊なケース

  • ソースデータベースが自己管理 MySQL データベースの場合:

    • 同期中にソースデータベースでプライマリ/セカンダリの切り替えが発生した場合、同期タスクは失敗します。

    • DTS の遅延は、ターゲットデータベースの最後に同期されたデータレコードのタイムスタンプと現在のタイムスタンプを比較して計算されます。ソースデータベースで長時間 DML 操作が実行されない場合、表示される遅延が不正確になることがあります。表示される遅延が大きすぎる場合は、ソースデータベースで DML 操作を実行して遅延情報を更新できます。

      説明

      データベース全体の同期を選択した場合、ハートビートテーブルを作成することもできます。ハートビートテーブルは毎秒更新または書き込みされます。

    • DTS は、バイナリログのオフセットを進めるために、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` コマンドを実行します。

    • ソースデータベースが Amazon Aurora MySQL インスタンスまたは他のクラスターモードの MySQL インスタンスである場合、タスクに設定されたドメイン名または IP アドレスとその解決結果が常に読み書き (RW) ノードアドレスを指していることを確認してください。そうしないと、同期タスクが期待どおりに実行されない可能性があります。

  • ソースデータベースが RDS for MySQL インスタンスの場合:

    • RDS for MySQL 5.6 の読み取り専用インスタンスなど、トランザクションログを記録しない RDS for MySQL インスタンスは、ソースとしてサポートされていません。

    • DTS は、バイナリログのオフセットを進めるために、ソースデータベースで定期的に CREATE DATABASE IF NOT EXISTS `test` コマンドを実行します。

課金

同期タイプ

料金

スキーマ同期と完全データ同期

無料。

増分データ同期

有料です。詳細については、「課金の概要」をご参照ください。

サポートされる同期アーキテクチャ

  • 1 対 1 の一方向同期。

  • 1 対多の一方向同期。

  • 多対 1 の一方向同期。

同期でサポートされる SQL 操作

操作タイプ

SQL 文

DML

INSERT、UPDATE、DELETE

説明

AnalyticDB for MySQL にデータが書き込まれると、UPDATE 文は自動的に REPLACE INTO 文に変換されます (主キーが更新される場合は、DELETE+INSERT 文に変換されます)。

DDL

CREATE TABLE、DROP TABLE、RENAME TABLE、TRUNCATE TABLE、ADD COLUMN、MODIFY COLUMN、DROP COLUMN

重要

RENAME TABLE 操作は、データの不整合を引き起こす可能性があります。たとえば、同期オブジェクトが単一のテーブルであり、同期中にソースインスタンスでその名前を変更すると、そのテーブルのデータはターゲットデータベースに同期されません。この問題を回避するには、タスクを構成して、テーブルを含むデータベース全体を同期することができます。RENAME TABLE 操作の前後でテーブルが属するデータベースが同期オブジェクトに含まれていることを確認してください。

警告

データ同期中にソーステーブルのフィールドタイプを変更すると、タスクはエラーを報告して停止します。以下の手順に従って手動で問題を修正できます。

  1. ソーステーブル (例: customer) のフィールドタイプが、ターゲットの AnalyticDB for MySQL データベースへの同期中に変更されたため、同期タスクが失敗します。

  2. AnalyticDB for MySQL 3.0 で、customer テーブルと同じスキーマを持つ新しいテーブル customer_new を作成します。

  3. INSERT INTO SELECT コマンドを使用して、customer テーブルからデータをコピーし、新しい customer_new テーブルに挿入します。これにより、両方のテーブルのデータが一致することが保証されます。

  4. 失敗したテーブル customer の名前を変更または削除し、customer_new テーブルの名前を customer に変更します。

  5. DTS コンソールで、データ同期タスクを再起動します。

操作手順

  1. ターゲットリージョンの同期タスクリストページに移動します。次の 2 つの方法のいずれかを使用できます。

    DTS コンソールから

    1. Data Transmission Service (DTS) コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、データ同期 をクリックします。

    3. ページの左上隅で、同期インスタンスが配置されているリージョンを選択します。

    DMS コンソールから

    説明

    実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMS インターフェイスのレイアウトとスタイルをカスタマイズする」をご参照ください。

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

    2. トップメニューバーで、[データ + AI] > [データ伝送 (DTS)] > [データ同期] を選択します。

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

  2. タスクの作成 をクリックして、タスク設定ページを開きます。

  3. ソースデータベースとターゲットデータベースを設定します。

    警告

    ソースインスタンスとターゲットインスタンスを選択した後、ページの上部に表示される制限を注意深くお読みください。制限に従わない場合、タスクが失敗したり、データの不整合が発生したりする可能性があります。

    カテゴリ

    構成

    説明

    なし

    タスク名

    DTS は自動的にタスク名を生成します。簡単に識別できるように、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。

    ソースデータベース

    既存の接続情報の選択

    • システムに追加された (新規作成または保存された) データベースインスタンスを使用するには、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に設定されます。

      説明

      DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 という名前です。

    • データベースインスタンスをシステムに追加していない場合、またはすでに追加されているインスタンスを使用する必要がない場合は、次のデータベース情報を手動で設定します。

    データベースタイプ

    [MySQL] を選択します。

    アクセス方法

    [クラウドインスタンス] を選択します。

    インスタンスリージョン

    ソースの RDS MySQL インスタンスが存在するリージョンを選択します。

    Alibaba Cloudアカウント全体でのデータの複製

    このシナリオは、同じ Alibaba Cloud アカウント内での同期を伴います。[いいえ] を選択します。

    [RDS インスタンス ID]

    ソースの RDS MySQL インスタンスの ID を選択します。

    データベースアカウント

    ソースの RDS MySQL インスタンスのデータベースアカウントを入力します。アカウントには、同期するオブジェクトに対する REPLICATION CLIENT、REPLICATION SLAVE、および SELECT 権限が必要です。

    データベースパスワード

    データベースアカウントに対応するパスワードを入力します。

    暗号化

    必要に応じて 非暗号化 または SSL 暗号化 を選択します。SSL 暗号化 を選択した場合は、事前に RDS for MySQL インスタンスで SSL 暗号化を有効にする必要があります。詳細については、「クラウド証明書を使用して SSL 暗号化を迅速に有効にする」をご参照ください。

    宛先データベース

    既存の接続情報の選択

    • システムに追加された (新規作成または保存された) データベースインスタンスを使用するには、ドロップダウンリストからデータベースインスタンスを選択します。データベース情報は自動的に設定されます。

      説明

      DMS コンソールでは、この設定項目は DMS データベースインスタンスの選択 という名前です。

    • データベースインスタンスをシステムに追加していない場合、またはすでに追加されているインスタンスを使用する必要がない場合は、次のデータベース情報を手動で設定します。

    データベースタイプ

    [AnalyticDB MySQL 3.0] を選択します。

    アクセス方法

    [クラウドインスタンス] を選択します。

    インスタンスリージョン

    ターゲットの AnalyticDB for MySQL 3.0 クラスターが存在するリージョンを選択します。

    [インスタンス ID]

    ターゲットの AnalyticDB for MySQL 3.0 クラスターの ID を選択します。

    データベースアカウント

    ターゲットの AnalyticDB for MySQL 3.0 クラスターのデータベースアカウントを入力します。アカウントには読み取りおよび書き込み権限が必要です。

    データベースパスワード

    データベースアカウントに対応するパスワードを入力します。

  4. 設定が完了したら、ページ下部の 接続をテストして続行 をクリックします。

    説明
    • DTS サーバーからのアクセスを許可するために、DTS サーバーの IP アドレス CIDR ブロックがソースデータベースとターゲットデータベースのセキュリティ設定に追加されていることを確認してください。これは自動または手動で行うことができます。詳細については、「DTS サーバーの IP アドレス CIDR ブロックをホワイトリストに追加する」をご参照ください。

    • ソースまたはターゲットデータベースが自己管理データベース (アクセス方法Alibaba Cloud インスタンス ではない場合) である場合は、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト もクリックする必要があります。

  5. タスクオブジェクトを設定します。

    1. オブジェクト設定 ページで、同期するオブジェクトを設定します。

      構成

      説明

      同期タイプ

      増分データ同期 が選択されています。デフォルトでは、スキーマ同期完全データ同期 も選択する必要があります。事前チェックが完了すると、DTS は選択したオブジェクトの完全データ同期をソースインスタンスからターゲットクラスターに実行します。これは、後続の増分データ同期のベースラインデータとして機能します。

      説明

      [完全同期] を選択すると、CREATE TABLE 文が実行されたテーブル (スキーマとデータの両方) をターゲットデータベースに同期できます。

      競合するテーブルの処理モード

      • エラーの事前チェックと報告:ターゲットデータベースに同じ名前のテーブルが存在するかどうかを確認します。同じ名前のテーブルが存在しない場合、事前チェックは成功します。同じ名前のテーブルが存在する場合、事前チェックは失敗し、データ同期タスクは開始されません。

        説明

        ターゲットデータベースで同じ名前のテーブルを削除または名前変更できない場合は、別のテーブル名にマッピングできます。詳細については、「テーブル名と列名のマッピング」をご参照ください。

      • エラーを無視して続行:ターゲットデータベースでの重複テーブル名のチェックをスキップします。

        警告

        エラーを無視して続行 を選択すると、データの不整合が発生し、ビジネスにリスクをもたらす可能性があります。例:

        • テーブルスキーマが同じで、ターゲットデータベースのレコードがソースデータベースのレコードと同じ主キーまたは一意キーの値を持つ場合:

          • 完全同期中、DTS はターゲットクラスターのレコードを保持します。ソースデータベースの対応するレコードは同期されません。

          • 増分同期中、ソースデータベースのレコードがターゲットデータベースのレコードを上書きします。

        • テーブルスキーマが異なる場合、初期データ同期が失敗する可能性があります。これにより、一部の列データのみが同期されるか、同期が完全に失敗する可能性があります。注意して進めてください。

      同期する DDL および DML 操作

      インスタンスレベルで同期する DDL または DML 操作を選択します。サポートされている操作のリストについては、「サポートされる SQL 操作」をご参照ください。

      説明

      データベースまたはテーブルレベルで同期する SQL 操作を選択するには、[選択されたオブジェクト] リストで同期オブジェクトを右クリックし、表示されるダイアログボックスで目的の SQL 操作を選択します。

      テーブルの結合

      • を選択:OLTP シナリオでは、ビジネス テーブルの応答時間を改善するために、データベースとテーブルのシャーディングがよく使用されます。この例のターゲットデータベースのような OLAP シナリオでは、単一のデータテーブルに大量のデータを格納できるため、単一テーブルのクエリがより便利になります。このようなシナリオでは、DTS の複数テーブルマージ機能を使用して、ソースデータベースから同じスキーマを持つ複数のテーブル (シャーディングされたテーブル) をターゲットデータベースの単一のテーブルに同期できます。具体的な手順については、「複数テーブルマージを有効にする」をご参照ください。

        説明
        • ソースデータベースから複数のテーブルを選択した後、オブジェクト名マッピング機能を使用して、ターゲットデータベースでそれらの名前を同じテーブル名に変更する必要があります。オブジェクト名マッピング機能の詳細については、「テーブル名と列名のマッピング」をご参照ください。

        • DTS は、データソースを格納するために、テキストタイプの __dts_data_source 列をターゲットテーブルに追加します。列の値は、DTS インスタンス ID:データベース名:スキーマ名:テーブル名 形式を使用してテーブルのソースを識別します。例:dts********:dtstestdata:testschema:customer1

        • 複数テーブルマージ機能はタスクレベルであるため、テーブルレベルで複数テーブルマージを実行することはできません。一部のテーブルをマージし、他のテーブルをマージしない場合は、2 つのデータ同期タスクを作成する必要があります。

        警告

        ソースデータベースでデータベースまたはテーブルのスキーマを変更する DDL 操作を実行しないでください。そうしないと、データの不整合や同期タスクの失敗が発生する可能性があります。

      • × を選択します。これはデフォルトのオプションです。

      移行先インスタンスでのオブジェクト名の大文字化

      ターゲットインスタンスに同期されるデータベース、テーブル、および列オブジェクト名の大文字/小文字の区別ポリシーを設定できます。デフォルトでは、DTS のデフォルトポリシー が選択されています。ソースデータベースとターゲットデータベースのデフォルトポリシーを使用することもできます。詳細については、「ターゲットオブジェクト名の大文字/小文字の区別ポリシー」をご参照ください。

      ソースオブジェクト

      ソースオブジェクト ボックスで、同期するオブジェクトをクリックし、向右 をクリックして 選択中のオブジェクト ボックスに移動します。

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

      • データベース全体を同期オブジェクトとして選択した場合、デフォルトの動作は次のとおりです。

        • ソースデータベースの同期対象テーブルに主キー (単一列または複数列) がある場合、その主キー列が分散キーとして使用されます。

        • ソースデータベースの同期対象テーブルに主キーがない場合、自動採番主キー列が自動的に生成されます。これにより、ソースデータベースとターゲットデータベースの間でデータ不整合が発生する可能性があります。

      選択中のオブジェクト

      説明
      • データベースまたはテーブルレベルで同期する SQL 操作を選択するには、選択中のオブジェクト リストで同期オブジェクトを右クリックし、表示されるダイアログボックスで目的の SQL 操作を選択します。

      • WHERE 句を使用してデータをフィルタリングするには、選択中のオブジェクト リストで同期するテーブルを右クリックし、表示されるダイアログボックスでフィルター条件を設定します。フィルター条件の設定方法については、「フィルター条件の設定」をご参照ください。

    2. 詳細設定へ をクリックして、詳細パラメーターを設定します。

      構成

      説明

      タスクのスケジュールに使用する専用クラスターの選択

      デフォルトでは、DTS は共有クラスターでタスクをスケジュールするため、クラスターを選択する必要はありません。より安定したパフォーマンスを得るために、DTS 同期タスクを実行するための専用クラスターを購入できます。詳細については、「DTS 専用クラスターとは」をご参照ください。

      移行元テーブルで生成された Online DDL ツールの一時テーブルを移行先データベースにコピーします。

      Data Management (DMS) または gh-ost を使用してソースデータベースでオンライン DDL 変更を実行する場合、オンライン DDL 変更によって生成された一時テーブルのデータを同期するかどうかを選択できます。

      重要
      • DTS タスクは、pt-online-schema-change などのツールを使用したオンライン DDL 変更をサポートしていません。このようなツールを使用すると、DTS タスクが失敗します。

      • 各ステージの処理方法は次のとおりです。スキーマ同期 および 完全データ同期 ステージでは、データベースまたはテーブルのスキーマを変更する DDL 操作は許可されません。したがって、これらのステージはオンライン DDL ポリシーによって制御されません。

        • スキーマ同期:このステージはオンライン DDL ポリシーによって制御されません。関連する一時テーブルが作成されます。

        • 完全データ同期:このステージはオンライン DDL ポリシーによって制御されません。一時テーブルは完全同期オブジェクトに含まれません。名前が正規表現 (^_(.+)_(?:gho|new)$ または ^_(.+)_(?:ghc|del|old)$) に一致するすべてのテーブルは除外されます。

        • 増分データ同期:このステージはオンライン DDL ポリシーによって制御されます。

          • :オンライン DDL 操作によって生成された一時テーブル (例:_table-name_gho) のデータ変更を同期します。

          • いいえ、DMS オンライン DDL に適応 および いいえ、gh-ost に適応:正規表現ルールに基づいて、gh-ost などのツールによって生成された一時テーブル (例:_table-name_gho) のデータ変更を除外します。

      • :オンライン DDL 変更によって生成された一時テーブルデータを同期します。

        説明

        オンライン DDL 変更によって生成された一時テーブルのデータが大きすぎると、同期遅延が発生する可能性があります。

      • いいえ、DMS オンライン DDL に適応:オンライン DDL 操作によって生成された一時テーブルからのデータを同期しません。ソースデータベースで Data Management (DMS) を使用して実行された元の DDL 文のみを同期します。

        説明

        このオプションは、ターゲットデータベースでテーブルがロックされる原因となります。

      • いいえ、gh-ost に適応:オンライン DDL 変更によって生成された一時テーブルからのデータを同期しません。カスタムフィルタリングルールをサポートしています。DTS は、正規表現ルールに基づいて、gh-ost などのツールによって生成された一時テーブル (例:_table-name_gho) のデータ変更を除外します。必要に応じて、シャドウテーブルと不要なテーブルを照合するために使用されるデフォルトの正規表現を変更できます。

        • シャドウテーブル:^_(.+)_(?:gho|new)$

        • 不要なテーブル:^_(.+)_(?:ghc|del|old)$

        説明

        このオプションは、ターゲットデータベースでテーブルがロックされる原因となります。

      失敗した接続の再試行時間

      同期タスクが開始された後、ソースまたはターゲットデータベースへの接続が失敗した場合、DTS はエラーを報告し、直ちに接続のリトライを開始します。デフォルトのリトライ時間は 720 分です。10 分から 1,440 分の範囲でカスタムのリトライ時間を指定することもできます。30 分以上に設定することを推奨します。指定された時間内に DTS がデータベースに正常に再接続した場合、同期タスクは自動的に再開されます。そうでない場合、タスクは失敗します。

      説明
      • 同じソースまたはターゲットを共有する複数の DTS インスタンス (例:インスタンス A とインスタンス B) があり、インスタンス A のネットワークリトライ時間を 30 分、インスタンス B を 60 分に設定した場合、両方に短い方の 30 分が使用されます。

      • DTS は接続リトライ期間中のタスク実行時間に対して課金するため、ビジネスニーズに基づいてリトライ時間をカスタマイズするか、ソースおよびターゲットデータベースインスタンスがリリースされた後、できるだけ早く DTS インスタンスをリリースすることを推奨します。

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。

      同期タスクが開始された後、ソースまたはターゲットデータベースで他の非接続性の問題 (DDL または DML 実行例外など) が発生した場合、DTS はエラーを報告し、直ちに連続的なリトライ操作を開始します。デフォルトのリトライ時間は 10 分です。1 分から 1,440 分の範囲でリトライ時間をカスタマイズすることもできます。10 分以上に設定することを推奨します。設定されたリトライ時間内に関連する操作が成功した場合、同期タスクは自動的に再開されます。そうでない場合、タスクは失敗します。

      重要

      移行元データベースと移行先データベースで他の問題が発生した場合の、再試行までの待機時間です。 の値は、失敗した接続の再試行時間 の値より小さくする必要があります。

      完全同期レートを制限するかどうか

      完全同期ステージ中、DTS はソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを消費し、データベースの負荷を増加させる可能性があります。ソースデータベースとターゲットデータベースの負荷を軽減するために、1 秒あたりのソースデータベースのクエリ率 QPS1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを設定することで、完全同期タスクのレート制限を設定できます。

      説明
      • この設定項目は、同期タイプ完全データ同期 に設定されている場合にのみ利用可能です。

      • 同期インスタンスの実行後に 完全同期レートを調整することもできます。

      増分同期率を制限するかどうか

      増分同期タスクにもレート制限を設定できます。ターゲットデータベースの圧力を軽減するために、1 秒あたりの増分同期の行数 RPS1 秒あたりの増分同期データ量 (MB) BPS を設定します。

      環境タグ

      必要に応じてインスタンスを識別するために環境タグを選択できます。この例では選択は不要です。

      ETL 機能の設定

      抽出・変換・書き出し (ETL) 機能を有効にするかどうかを選択します。詳細については、「ETL とは」をご参照ください。有効な値:

      監視アラート

      アラートを設定するかどうかを指定します。同期が失敗した場合や遅延が指定されたしきい値を超えた場合に、アラート連絡先アラート通知に通知が送信されます。

      • ×:アラートは設定されません。

      • :アラートしきい値を設定し、アラート通知を指定してアラートを設定します。詳細については、「タスク設定中の監視とアラートの設定」をご参照ください。

    3. [次へ: データ検証] をクリックして、データ検証タスクを設定します。

      データ検証機能を使用する場合は、「データ検証の設定」で設定手順をご参照ください。

    4. オプション: 上記の設定を完了した後、次:データベースおよびテーブルのフィールド設定 をクリックして、ターゲットデータベースで同期するテーブルの タイププライマリキー列の追加配布キー、およびパーティションキー情報 (パーティションキーパーティションルール、および パーティションのライフサイクル) を設定します。

      説明
      • このステップは、タスクオブジェクトを設定する際に 同期タイプスキーマ同期 を選択した場合にのみ利用可能です。その後、定義ステータスすべて に設定して変更を行うことができます。

      • プライマリキー列の追加 は、複数の列で構成される複合主キーにすることができます。プライマリキー列の追加 から 1 つ以上の列を選択して、配布キー および パーティションキー として機能させる必要があります。詳細については、「CREATE TABLE」をご参照ください。

  6. タスクを保存し、事前チェックを実行します。

    • このインスタンスを設定するための API パラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにカーソルを合わせ、バブル内の OpenAPI パラメーターのプレビュー をクリックします。

    • API パラメーターの表示が完了したら、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。

    説明
    • 同期ジョブが開始される前に、DTS は事前チェックを実行します。ジョブは、すべての事前チェック項目が合格した後にのみ開始できます。

    • 事前チェックが失敗した場合は、失敗した項目の 詳細を表示 をクリックします。プロンプトに従って問題を修正し、再度事前チェックを実行します。

    • 事前チェックが警告を返した場合:

      • チェック項目が失敗し、無視できない場合は、項目の横にある 詳細を表示 をクリックします。指示に従って問題を修正し、再度事前チェックを実行します。

      • 無視できるチェック項目については、アラートの詳細を確認無視OK再度事前チェックを実行 を順にクリックして、警告をスキップし、事前チェックを再実行できます。警告項目をシールドすることを選択した場合、データの不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。

  7. インスタンスを購入します。

    1. 成功率 が 100% になったら、次:インスタンスの購入 をクリックします。

    2. 購入 ページで、データ同期インスタンスの課金方法とリンク仕様を選択します。次の表で、これらのパラメーターについて詳しく説明します。

      カテゴリ

      パラメーター

      説明

      新しいインスタンスクラス

      課金方法

      • サブスクリプション:インスタンス作成時にお支払いいただきます。長期的なニーズに適しており、従量課金よりもコスト効率が高いです。サブスクリプション期間が長いほど、割引率が高くなります。

      • 従量課金:時間単位で課金されます。短期的なニーズに適しています。使用後すぐにインスタンスをリリースしてコストを節約できます。

      リソースグループ構成

      インスタンスが属するリソースグループ。デフォルトはデフォルトリソースグループです。詳細については、「Resource Management とは」をご参照ください。

      リンク仕様

      DTS は、異なるパフォーマンスレベルの同期仕様を提供します。同期リンク仕様は同期レートに影響します。ビジネスシナリオに基づいて仕様を選択できます。詳細については、「データ同期リンク仕様」をご参照ください。

      サブスクリプション期間

      サブスクリプションモードでは、サブスクリプションインスタンスの期間と数量を選択します。1 か月から 9 か月までの月次サブスクリプション、または 1、2、3、5 年の年次サブスクリプションを選択できます。

      説明

      このオプションは、課金方法が サブスクリプション の場合にのみ利用可能です。

    3. 設定が完了したら、Data Transmission Service (従量課金) 利用規約 を読んで選択します。

    4. 購入して起動 をクリックします。OK ダイアログボックスで、[OK] をクリックします。

      データ同期ページでタスクの進捗状況を確認できます。

よくある質問

  • スキーマの同期または移行中に、次のエラーが発生します: only 500 dimension table allowed, current dimensionTableCount: 500。これを解決するにはどうすればよいですか?

    • 原因AnalyticDB for MySQL では、テーブルの総数には現在使用中のテーブルとごみ箱内のテーブルの両方が含まれます。この合計が制限を超えると、テーブル数の制限を超えたことを示すエラーが表示されます。詳細については、「制限事項」をご参照ください。

    • 解決策:

      1. DTS タスクで、同期または移行されるテーブルの数がエラーメッセージに表示されている最大値を超えていないか確認します。

      2. テーブルの数が最大値を超えていない場合は、次のコマンドを実行して、ごみ箱に削除されたテーブルが存在するかどうかを確認します。詳細については、「テーブルのごみ箱」をご参照ください。

        -- インスタンスで現在使用中のテーブルの数を照会します。
        SELECT COUNT(*) FROM INFORMATION_SCHEMA.tables;
        -- ごみ箱内のテーブルの数を照会します。
        SELECT COUNT(*) FROM INFORMATION_SCHEMA.KEPLER_META_RECYCLE_BIN;
      3. ごみ箱に削除されたテーブルが存在することを確認した場合は、次のコマンドを実行してそれらをクリーンアップします。

        重要

        ごみ箱からテーブルをパージすると、それらを回復することはできません。これらのテーブルが不要であることを確認してください。

        -- テーブルのごみ箱からすべてのテーブルを削除します。
        PURGE RECYCLE_BIN ALL;
        -- テーブルのごみ箱から特定のテーブルを削除します。
        PURGE RECYCLE_BIN TABLE <ADB_RECYCLE_BIN データベース内のテーブル名>;