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

Data Transmission Service:PolarDB for MySQLクラスターからPolarDB-Xインスタンスへのデータの同期

最終更新日:Nov 12, 2024

Distributed Relational Database Service (PolarDB-X) は、単一ホストデータベースサービスのボトルネックに対処するためにAlibaba Groupによって開発されました。 DRDSは、MySQLプロトコルおよび構文と互換性があり、自動シャーディング、オンラインスムーズスケーリング、自動スケーリング、および透過的な読み書き分離をサポートします。 DRDSは、データベースのライフサイクル全体でO&M機能を提供します。 このトピックでは、PolarDB for MySQLクラスターからのデータを同期する方法について説明します。 Data Transmission Service (DTS) を使用したPolarDB-Xインスタンス。

前提条件

  • PolarDB for MySQLクラスターでバイナリログ機能が有効になっています。 詳細については、次をご参照ください: バイナリログの有効化

  • ソースデータベースから同期されるテーブルには、主キーが含まれています。

  • 移行先データベースには十分なストレージ容量があります。

  • PolarDB-Xインスタンスが作成されました。 詳細については、次をご参照ください: PolarDB-X 1.0インスタンスの作成データベースの作成

    説明

    インスタンスを作成するときは、ストレージタイプとしてRDS MySQLを選択する必要があります。

注意事項

  • DTSは、最初の完全データ同期中に、ソースRDSインスタンスとターゲットRDSインスタンスの読み取りおよび書き込みリソースを使用します。 これにより、RDSインスタンスの負荷が増加する可能性があります。 インスタンスのパフォーマンスが悪い場合、仕様が低い場合、またはデータ量が多い場合、データベースサービスが利用できなくなる可能性があります。 たとえば、ソースRDSインスタンスで多数の低速SQLクエリが実行されている場合、テーブルにプライマリキーがない場合、またはターゲットRDSインスタンスでデッドロックが発生する場合、DTSは大量の読み取りおよび書き込みリソースを占有します。 データ同期の前に、ソースRDSインスタンスとターゲットRDSインスタンスのパフォーマンスに対するデータ同期の影響を評価します。 オフピーク時にデータを同期することを推奨します。 たとえば、ソースRDSインスタンスとターゲットRDSインスタンスのCPU使用率が30% 未満の場合にデータを同期できます。

  • 最初の完全データ同期中に、同時INSERT操作により、宛先クラスターのテーブルが断片化されます。 最初の完全データ同期後、ターゲットクラスターのテーブルスペースはソースデータベースのテーブルスペースよりも大きくなります。 移行先データベースには十分なストレージ容量があります。

  • DTSは、ApsaraDB RDS for MySQLインスタンスからPolarDB-Xインスタンスにスキーマを同期しません。 データ同期タスクを設定する前に、ターゲットインスタンスにデータベースとテーブルを作成する必要があります。

制限

  • 同期するオブジェクトとしてテーブルのみを選択できます。

  • DTSは、BIT、VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT、およびPOINTのタイプのデータを同期しません。

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

  • データ同期中にオブジェクトに対してDDL操作を実行するために、gh-ostまたはpt-online-schema-changeを使用しないことを推奨します。 そうしないと、データ同期が失敗する可能性があります。

同期可能なSQL操作

挿入、更新、および削除

データベースアカウントに必要な権限

データベース

必要な権限

PolarDB for MySQL

データベースアカウントには、同期するオブジェクトに対するSELECT権限、REPLICATION CLIENT権限、REPLICATION SLAVE権限、およびSHOW VIEW権限が必要です。

PolarDB-X

DTSは自動的にデータベースアカウントを作成し、アカウントに権限を付与します。 データベースアカウントを指定する必要はありません。

サポートしている同期トポロジ

  • 一方向の 1 対 1 の同期

  • 一方向の多対 1 の同期

サポートしている同期トポロジ

  • 一方向の 1 対 1 の同期

  • 一方向の多対 1 の同期

始める前に

PolarDB for MySQLクラスターからのデータを PolarDB-Xインスタンスは、DTSが初期スキーマ同期をサポートしていないことに注意してください。 したがって、ソースPolarDB for MySQLクラスターのオブジェクトのスキーマに基づいて、ターゲットインスタンスにデータベースとテーブルを作成する必要があります。 詳細については、次をご参照ください: データベースの作成テーブルを作成

説明

初期スキーマ同期中に、DTSは必要なオブジェクトのスキーマをソースデータベースからターゲットデータベースに同期します。

手順

  1. データ同期インスタンスを購入します。 詳細については、「DTSインスタンスの購入」をご参照ください。

    説明

    購入ページで、ソースインスタンスをPolarDBに設定し、ターゲットインスタンスをPolarDB-Xに設定し、同期トポロジを一方向同期に設定します。

  2. にログインします。 DTSコンソール

    説明

    データ管理 (DMS) コンソールにリダイレクトされている場合は、imageoldアイコンをクリックして、以前のバージョンのDTSコンソールに移動し。

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

  4. [同期タスク] ページの上部で、ターゲットインスタンスが存在するリージョンを選択します。

  5. データ同期インスタンスを見つけ、[操作] 列の [タスクの設定] をクリックします。

  6. 移行元クラスターと移行先インスタンスを設定します。

    Configure the source and destination instances

    セクション

    パラメーター

    説明

    N/A

    同期タスク名

    タスク名は自動生成されます。 簡単に識別できるように、有益な名前を指定することをお勧めします。 一意のタスク名を使用する必要はありません。

    ソースインスタンスの詳細

    インスタンスタイプ

    [PolarDBインスタンス] を選択します。

    インスタンスリージョン

    購入ページで選択したソースリージョン。 このパラメーターの値は変更できません。

    PolarDBインスタンスID

    ソースPolarDBクラスターのIDを選択します。

    データベースアカウント

    ソースPolarDBクラスターのデータベースアカウントを入力します。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。

    データベースパスワード

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

    ターゲットインスタンスの詳細

    インスタンスタイプ

    このパラメーターはDRDSインスタンスに設定されており、変更できません。

    インスタンスリージョン

    購入ページで選択したターゲットリージョン。 このパラメーターの値は変更できません。

    DRDSインスタンスID

    ターゲットDRDSインスタンスのIDを選択します。

  7. ページの右下隅にある [ホワイトリストと次への設定] をクリックします。

    説明

    DTSは、DTSサーバーのCIDRブロックをソースクラスターとターゲットインスタンスのホワイトリストに追加します。 これにより、DTSサーバーがソースクラスターとターゲットインスタンスに接続できるようになります。

  8. 同期ポリシーと同期するオブジェクトを選択します。

    Select the objects to be synchronized

    設定

    説明

    同期するオブジェクトの選択

    [使用可能] セクションから1つ以上のテーブルを選択し、Rightwards arrowアイコンをクリックしてテーブルを [選択済み] セクションに移動します。

    説明
    • 同期するオブジェクトとしてテーブルのみを選択できます。

    • デフォルトでは、オブジェクトがターゲットインスタンスに同期された後、オブジェクトの名前は変更されません。 オブジェクト名マッピング機能を使用して、ターゲットインスタンスに同期されるオブジェクトの名前を変更できます。 詳細については、「同期するオブジェクトの名前変更」をご参照ください。

    データベースとテーブルの名前変更

    オブジェクト名マッピング機能を使用して、ターゲットインスタンスに同期されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。

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

    既定では、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の720分 (12時間) 以内に再試行します。 必要に応じて再試行時間を指定できます。 DTSが指定された時間内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。

    説明

    DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 ビジネスニーズに基づいて再試行時間を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。

  9. [次へ] をクリックします。

  10. 最初のフルデータ同期を実行するかどうかを指定します。

    説明

    最初の完全データ同期中に、DTSは必要なオブジェクトの履歴データをソースデータベースからターゲットデータベースに同期します。 [初期フルデータ同期] を選択しない場合、DTSは履歴データを同期しません。

  11. ページの右下隅にある事前チェックをクリックします。

    説明
    • データ同期タスクを開始する前に、DTSは事前チェックを実行します。 データ同期タスクは、タスクが事前チェックに合格した後にのみ開始できます。

    • タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にある提示アイコンをクリックして詳細を表示できます。

      • 詳細に基づいて問題をトラブルシューティングした後、新しい事前チェックを開始します。

      • 問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して新しい事前チェックを開始してください。

  12. 次のメッセージが表示されたら、[事前チェック] ダイアログボックスを閉じます。[事前チェックの合格] その後、データ同期タスクが開始されます。

  13. 初期同期が完了し、データ同期タスクが同期状態になるまで待ちます。

    データ同期タスクのステータスは、[同期タスク] ページで確認できます。 View the status of a data synchronization task