このトピックでは、data Transmission Service (DTS) を使用して、Elastic Compute Service (ECS) でホストされているセルフマネージドMySQLデータベースからAnalyticDB for PostgreSQLインスタンスにデータを同期する方法について説明します。
前提条件
バージョン5.1、5.5、5.6、5.7、または8.0のMySQLデータベースが作成されます。 データベースはECSインスタンスでホストされています。
バイナリログ機能は、ソースデータベースに対して有効になっています。 データ同期タスク用にデータベースアカウントが作成されます。 詳細については、「自己管理型MySQLデータベースのアカウントの作成とバイナリログの設定」をご参照ください。
説明データベースアカウントには、同期するオブジェクトに対するSELECT権限、REPLICATION CLIENT権限、REPLICATION SLAVE権限、およびSHOW VIEW権限が必要です。
ソースデータベースから同期されるテーブルには、主キーが含まれています。
移行先のAnalyticDB for PostgreSQLインスタンスが作成されました。 詳細については、次をご参照ください: AnalyticDB for PostgreSQLインスタンスの作成
注意事項
DTSは、最初の完全データ同期中に、ソースデータベースとターゲットデータベースの読み取りおよび書き込みリソースを使用します。 これは、データベースサーバの負荷を増加させる可能性がある。 データベースのパフォーマンスが悪い場合、仕様が低い場合、またはデータ量が多い場合、データベースサービスが利用できなくなる可能性があります。 たとえば、ソースデータベースで多数の低速SQLクエリが実行されている場合、テーブルにプライマリキーがない場合、またはターゲットデータベースでデッドロックが発生する場合、DTSは大量の読み取りおよび書き込みリソースを占有します。 データを同期する前に、ソースデータベースとターゲットデータベースのパフォーマンスに対するデータ同期の影響を評価します。 オフピーク時にデータを同期することを推奨します。 たとえば、ソースデータベースとターゲットデータベースのCPU使用率が30% 未満の場合にデータを同期できます。
制限事項
同期するオブジェクトとしてテーブルのみを選択できます。
DTSは、BIT、VARBIT、GEOMETRY、ARRAY、UUID、TSQUERY、TSVECTOR、TXID_SNAPSHOT、およびPOINTのタイプのデータを同期しません。
プレフィックスインデックスは同期できません。 ソースデータベースにプレフィックスインデックスが含まれている場合、データの同期に失敗する可能性があります。
データ同期中にオブジェクトに対してDDL操作を実行するために、gh-ostまたはpt-online-schema-changeを使用しないことを推奨します。 そうしないと、データ同期が失敗する可能性があります。
同期可能なSQL操作
DML操作: INSERT、UPDATE、およびDELETE
DDL操作: コラムを追加
説明CREATE TABLE操作はサポートされていません。 新しいテーブルのデータを同期するには、選択したオブジェクトにテーブルを追加する必要があります。 詳細については、「データ同期タスクへのオブジェクトの追加」をご参照ください。
サポートしている同期トポロジ
一方向の 1 対 1 の同期
一方向の 1 対多の同期
一方向の多対 1 の同期
タームマッピング
MySQL | AnalyticDB for PostgreSQL |
データベース | Schema |
テーブル | テーブル |
手順
データ同期インスタンスを購入します。 詳細については、「DTSインスタンスの購入」をご参照ください。
説明購入ページで、ソースインスタンスをMySQLに設定し、ターゲットインスタンスをAnalyticDB for PostgreSQLに設定し、同期トポロジを片道同期に設定します。
にログインします。 DTSコンソール。
左側のナビゲーションウィンドウで、[データ同期] をクリックします。
[同期タスク] ページの上部で、ターゲットインスタンスが存在するリージョンを選択します。
データ同期インスタンスを見つけ、[操作] 列の [同期チャネルの設定] をクリックします。
ソースインスタンスとターゲットインスタンスを設定します。
セクション
パラメーター
説明
非該当
同期タスク名
タスク名は自動生成されます。 簡単に識別できるように、有益な名前を指定することをお勧めします。 一意のタスク名を使用する必要はありません。
ソースインスタンスの詳細
インスタンスタイプ
[ECS インスタンスのユーザー作成データベース] を選択します。
インスタンスリージョン
購入ページで選択したソースリージョン。 このパラメーターの値は変更できません。
インスタンス ID
自己管理型MySQLデータベースをホストするECSインスタンスのIDを選択します。
データベースエンジン
このパラメーターの値はMySQLに設定されており、変更することはできません。
ポート番号
ソースデータベースのサービスポート番号を入力します。 デフォルトのポート番号は、3306 です。
データベースアカウント
自己管理型MySQLデータベースのアカウントを入力します。
説明データベースアカウントには、同期するオブジェクトに対するSELECT権限、REPLICATION CLIENT権限、REPLICATION SLAVE権限、およびSHOW VIEW権限が必要です。
データベースパスワード
ソースデータベースアカウントのパスワードを入力します。
ターゲットインスタンスの詳細
インスタンスタイプ
このパラメーターの値はAnalyticDB for PostgreSQLに設定されており、変更することはできません。
インスタンスリージョン
購入ページで選択したターゲットリージョン。 このパラメーターの値は変更できません。
インスタンス ID
移行先のAnalyticDB for PostgreSQLインスタンスのIDを選択します。
データベース名
ターゲットデータベースの名前を入力します。
データベースアカウント
AnalyticDB for PostgreSQLインスタンスの初期アカウントを入力します。 詳細については、「データベースアカウントの作成」をご参照ください。
説明RDS_SUPERUSER権限を持つアカウントを入力することもできます。 詳細については、「ユーザーと権限の管理」をご参照ください。
データベースパスワード
ターゲットデータベースアカウントのパスワードを入力します。
ページの右下隅にある [ホワイトリストと次への設定] をクリックします。
説明DTSは、DTSサーバーのCIDRブロックをECSインスタンスのインバウンドルールとAnalyticDB for PostgreSQLインスタンスのホワイトリストに追加します。 これにより、DTS サーバーがソースインスタンスおよびターゲットインスタンスに接続できるようになります。
同期ポリシーと同期するオブジェクトを選択します。
設定
パラメーター
説明
同期ポリシーの選択
初期同期
多くの場合、[スキーマ同期初期化] と [完全データ同期初期化 ] 両方を選択する必要があります。 事前チェックの後、DTSは必要なオブジェクトのスキーマとデータをソースインスタンスからターゲットインスタンスに同期します。 スキーマとデータは、後続の増分同期のベースラインとなります。
競合テーブルの処理モード
クリアターゲットテーブル
事前チェック中にスキーマ名の競合項目をスキップします。 最初の完全データ同期の前に、宛先テーブルのデータをクリアします。 データ同期タスクのテスト後にビジネスデータを同期する場合は、このモードを選択できます。
無視する
事前チェック中にスキーマ名の競合項目をスキップします。 最初の完全データ同期中に既存のデータにデータを追加します。 複数のテーブルから1つのテーブルにデータを同期する場合は、このモードを選択できます。
同期タイプ
ビジネス要件に基づいて、同期する操作の種類を選択します。
挿入
更新
削除
AlterTable
同期するオブジェクトの選択
非該当
[使用可能] セクションから1つ以上のテーブルを選択し、アイコンをクリックしてテーブルを [選択済み] セクションに移動します。
説明同期するオブジェクトとしてテーブルのみを選択できます。
オブジェクト名マッピング機能を使用して、ターゲットデータベースに同期される列の名前を変更できます。 詳細については、「同期するオブジェクトの名前変更」をご参照ください。
データベースとテーブルの名前変更
非該当
オブジェクト名マッピング機能を使用して、ターゲットインスタンスに同期されるオブジェクトの名前を変更できます。 詳細は、オブジェクト名のマッピングをご参照ください。
DMSがDDL操作を実行するときの一時テーブルのレプリケート
非該当
DMSを使用してソースデータベースでオンラインDDL操作を実行する場合、オンラインDDL操作によって生成された一時テーブルを同期するかどうかを指定できます。
Yes: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを同期します。
説明オンラインDDL操作が大量のデータを生成する場合、データ同期タスクが遅延する可能性があります。
No: DTSは、オンラインDDL操作によって生成された一時テーブルのデータを同期しません。 ソースデータベースの元のDDLデータのみが同期されます。
説明[いいえ] を選択すると、ターゲットデータベースのテーブルがロックされる可能性があります。
失敗した接続の再試行時間
非該当
既定では、DTSがソースデータベースまたはターゲットデータベースへの接続に失敗した場合、DTSは次の720分 (12時間) 以内に再試行します。 必要に応じて再試行時間を指定できます。 DTSが指定された時間内にソースデータベースとターゲットデータベースに再接続すると、DTSはデータ同期タスクを再開します。 それ以外の場合、データ同期タスクは失敗します。
説明DTSが接続を再試行すると、DTSインスタンスに対して課金されます。 ビジネスニーズに基づいて再試行時間を指定することを推奨します。 ソースインスタンスとターゲットインスタンスがリリースされた後、できるだけ早くDTSインスタンスをリリースすることもできます。
AnalyticDB for PostgreSQLインスタンスに同期するテーブルのプライマリキー列と配布列を指定します。
説明このステップのページは、[初期スキーマ同期] を選択した場合にのみ表示されます。 主キー列と配布列の詳細については、「テーブルの管理」および「テーブルの配布の定義」をご参照ください。
ページの右下隅にあるをクリックします。事前チェック.
説明データ同期タスクを開始する前に、DTSは事前チェックを実行します。 データ同期タスクは、タスクが事前チェックに合格した後にのみ開始できます。
タスクが事前チェックに合格しなかった場合は、失敗した各項目の横にあるアイコンをクリックして詳細を表示できます。
詳細に基づいて問題をトラブルシューティングした後、新しい事前チェックを開始します。
問題をトラブルシューティングする必要がない場合は、失敗した項目を無視して新しい事前チェックを開始してください。
次のメッセージが表示されたら、[事前チェック] ダイアログボックスを閉じます。[事前チェックに合格しました。 次に、データ同期タスクが開始されます。
初期同期が完了し、データ同期タスクが同期状態になるまで待ちます。
データ同期タスクのステータスは、[同期タスク] ページで確認できます。