PolarDB-Xは、単一ホストデータベースサービスのボトルネックに対処するためにAlibaba Cloudによって開発されました。 DRDSは、MySQLプロトコルおよび構文と互換性があり、自動シャーディング、オンラインスムーズスケーリング、自動スケーリング、および透過的な読み書き分割をサポートします。 DRDSは、データベースのライフサイクル全体でO&M機能を提供します。 このトピックでは、data Transmission Service (DTS) を使用して、ApsaraDB RDS for MySQLインスタンスからPolarDB-Xインスタンスにデータを同期する方法について説明します。
前提条件
ソースデータベースから同期されるテーブルには、主キーが含まれています。
移行先データベースには十分なストレージ容量があります。
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操作
挿入、更新、および削除
データベースアカウントに必要な権限
データベース | 必要な権限 |
ApsaraDB RDS for MySQL | 同期するオブジェクトに対するSELECT権限、REPLICATION CLIENT権限、REPLICATION SLAVE権限、およびSHOW VIEW権限 |
PolarDB-X | DTSは自動的にデータベースアカウントを作成し、アカウントに権限を付与します。 データベースアカウントを指定する必要はありません。 |
サポートしている同期トポロジ
一方向の 1 対 1 の同期
一方向の多対 1 の同期
始める前に
ApsaraDB RDS for MySQLインスタンスからPolarDB-Xインスタンスにデータを同期する場合、DTSは初期スキーマ同期をサポートしていないことに注意してください。 したがって、ソースApsaraDB RDS for MySQLインスタンスのオブジェクトのスキーマに基づいて、ターゲットインスタンスにデータベースとテーブルを作成する必要があります。 詳細については、次をご参照ください: データベースの作成と テーブルを作成します。
スキーマ同期中、DTSは必要なオブジェクトのスキーマをソースデータベースからターゲットデータベースに同期します。
手順
データ同期インスタンスを購入します。 詳細については、「DTSインスタンスの購入」をご参照ください。
説明購入ページで、ソースインスタンスをMySQLに設定し、宛先インスタンスをDRDSに設定し、同期トポロジを一方向同期に設定します。
DTSコンソールにログインします。
説明データ管理 (DMS) コンソールにリダイレクトされている場合は、にあるアイコンをクリックして、以前のバージョンのDTSコンソールに移動し。
左側のナビゲーションウィンドウで、[データ同期] をクリックします。
[同期タスク] ページの上部で、ターゲットインスタンスが存在するリージョンを選択します。
データ同期インスタンスを見つけ、[操作] 列の [タスクの設定] をクリックします。
ソースインスタンスとターゲットインスタンスを設定します。
セクション
パラメーター
説明
非該当
同期タスク名
タスク名は自動生成されます。 タスクを識別するために、有益な名前を指定することを推奨します。 一意のタスク名を使用する必要はありません。
ソースインスタンスの詳細
インスタンスタイプ
RDS インスタンスを選択します。
インスタンスリージョン
購入ページで選択したソースリージョン。 このパラメーターの値は変更できません。
インスタンス ID
ソースApsaraDB RDS for MySQLインスタンスのIDを選択します。
データベースアカウント
ソース RDS インスタンスのデータベースアカウントを入力します。 アカウントに必要な権限については、「データベースアカウントに必要な権限」をご参照ください。
説明ソースRDSインスタンスのデータベースエンジンがMySQL 5.5またはMySQL 5.6の場合、データベースアカウントまたはデータベースパスワードを設定する必要はありません。
データベースパスワード
データベースアカウントのパスワードを入力します。
暗号化
[暗号化なし] または[SSL 暗号化] を選択します。 SSL暗号化を選択する場合は、データ同期タスクを設定する前に、RDSインスタンスのSSL暗号化を有効にする必要があります。 詳細については、次をご参照ください: クラウド証明書を使用してSSL暗号化を有効にします。
重要Encryptionパラメーターは、中国本土および中国 (香港) リージョン内でのみ使用できます。
ターゲットインスタンスの詳細
インスタンスタイプ
このパラメーターはDRDSインスタンスに設定されており、変更できません。
インスタンスリージョン
購入ページで選択したターゲットリージョン。 このパラメーターの値は変更できません。
DRDSインスタンスID
ターゲットDRDSインスタンスのIDを選択します。
ページの右下隅にあるホワイトリストと次への設定をクリックします。
、ソースまたはターゲットデータベースがAlibaba Cloudデータベースインスタンス (ApsaraDB RDS for MySQL、ApsaraDB for MongoDBインスタンスなど) の場合、DTSは自動的にDTSサーバーのCIDRブロックをインスタンスのIPアドレスホワイトリストに追加します。 ソースデータベースまたはターゲットデータベースがElastic Compute Service (ECS) インスタンスでホストされている自己管理データベースの場合、DTSサーバーのCIDRブロックがECSインスタンスのセキュリティグループルールに自動的に追加されます。ECSインスタンスがデータベースにアクセスできることを確認する必要があります。 自己管理データベースが複数のECSインスタンスでホストされている場合、DTSサーバーのCIDRブロックを各ECSインスタンスのセキュリティグループルールに手動で追加する必要があります。 ソースデータベースまたはターゲットデータベースが、データセンターにデプロイされているか、サードパーティのクラウドサービスプロバイダーによって提供される自己管理データベースである場合、DTSサーバーのCIDRブロックをデータベースのIPアドレスホワイトリストに手動で追加して、DTSがデータベースにアクセスできるようにする必要があります。 詳細については、「DTSサーバーのCIDRブロックの追加」をご参照ください。
警告DTSサーバーのCIDRブロックがデータベースまたはインスタンスのホワイトリスト、またはECSセキュリティグループルールに自動的または手動で追加されると、セキュリティリスクが発生する可能性があります。 したがって、DTSを使用してデータを同期する前に、潜在的なリスクを理解して認識し、次の対策を含む予防策を講じる必要があります。VPNゲートウェイ、またはSmart Access Gateway。
同期ポリシーと同期するオブジェクトを選択します。
設定
説明
同期するオブジェクトの選択
[使用可能] セクションから1つ以上のテーブルを選択し、アイコンをクリックしてテーブルを [選択済み] セクションに移動します。
説明同期するオブジェクトとしてテーブルのみを選択できます。
デフォルトでは、オブジェクトがターゲットインスタンスに同期された後、オブジェクトの名前は変更されません。 オブジェクト名マッピング機能を使用して、ターゲットインスタンスに同期されるオブジェクトの名前を変更できます。 詳細については、「同期するオブジェクトの名前変更」をご参照ください。
データベースとテーブルの名前変更
オブジェクト名マッピング機能を使用して、ターゲットインスタンスに同期されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
失敗した接続の再試行時間
既定では、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の720分 (12時間) 以内に再試行します。 必要に応じて再試行時間を指定できます。 DTSが指定された時間内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。
説明DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 ビジネスニーズに基づいて再試行時間を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
[次へ] をクリックします。
最初のフルデータ同期を実行するかどうかを指定します。
説明最初の完全データ同期中に、DTSは必要なオブジェクトの履歴データをソースデータベースからターゲットデータベースに同期します。 [初期フルデータ同期] を選択しない場合、DTSは履歴データを同期しません。
ページの右下隅にある事前チェックをクリックします。
説明データ同期タスクを開始する前に、DTSは事前チェックを実行します。 データ同期タスクは、タスクが事前チェックに合格した後にのみ開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にあるアイコンをクリックして詳細を表示できます。
詳細に基づいて問題をトラブルシューティングした後、新しい事前チェックを開始します。
問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して新しい事前チェックを開始してください。
次のメッセージが表示されたら、[事前チェック] ダイアログボックスを閉じます。[事前チェックの合格] その後、データ同期タスクが開始されます。
初期同期が完了し、データ同期タスクが同期状態になるまで待ちます。
データ同期タスクのステータスは、[同期タスク] ページで確認できます。