このトピックでは、 Data Transmission Service (DTS) を使用して、 PolarDB-X 1.0 インスタンスから ApsaraDB RDS for MySQL インスタンスへ増分データをリアルタイムで同期する方法を説明します。
前提条件
PolarDB-X 1.0 インスタンスが作成されていること。詳細については、「PolarDB-X 1.0 インスタンスの作成」および「データベースの作成」をご参照ください。
説明PolarDB-X 1.0 インスタンスは、ストレージタイプとして ApsaraDB RDS for MySQL を使用している必要があります。これには、プライベートにカスタマイズされた RDS インスタンスと個別に購入した RDS インスタンスの両方が含まれます。PolarDB for MySQL はサポートされていません。
同期するデータの文字セットが utf8mb3 でないことを確認してください。そうでない場合、増分データ同期タスクは失敗します。
ターゲット ApsaraDB RDS for MySQL インスタンスが作成されていること。ターゲットインスタンスのストレージ領域は、ソース PolarDB-X 1.0 インスタンスで使用されているストレージ領域よりも大きい必要があります。詳細については、「(非推奨、リダイレクト先「ステップ 1」) ApsaraDB RDS for MySQL インスタンスの迅速な作成」をご参照ください。
注意事項
スキーマ同期中、DTS はソースデータベースの外部キーを宛先データベースに同期します。
完全データ同期および増分データ同期中、DTS はセッションレベルで制約チェックと外部キーのカスケード操作を一時的に無効にします。タスクの実行中にソースデータベースでカスケード更新または削除操作を実行すると、データの不整合が発生する可能性があります。
カテゴリ | 説明 |
ソースデータベースの制限事項 |
|
その他の制限事項 |
|
課金
同期タイプ | 料金 |
全データ同期 | 無料 |
増分データ同期 | 有料となり、「課金概要」をご参照ください。 |
サポートされている同期トポロジ
1 対 1 の一方向同期
1 対多の一方向同期
カスケード一方向同期
多対 1 の一方向同期
サポートされている同期トポロジと使用上の注意の詳細については、「同期トポロジ」をご参照ください。
サポートされる SQL 操作
操作タイプ | SQL ステートメント |
DML | INSERT、UPDATE、DELETE |
データベースアカウントに必要なアクセス許可
データベース | 必要なアクセス許可 | アカウント設定 |
ソース PolarDB-X 1.0 インスタンス | 同期対象のオブジェクトに対する読み取りアクセス許可。 | |
デスティネーション ApsaraDB RDS for MySQL インスタンス | 同期先のデスティネーションデータベースに対する読み取りおよび書き込みアクセス許可。 | アカウントを作成 および ApsaraDB RDS for MySQL インスタンスの標準アカウントのアクセス許可を変更。 |
手順
宛先リージョンの同期タスクリストページに移動します。次の 2 つの方法のいずれかを使用できます。
DTS コンソールから
Data Transmission Service (DTS) コンソールにログインします。
左側メニューで、データ同期 をクリックします。
ページの左上隅で、同期インスタンスがあるリージョンを選択します。
DMS コンソールから
説明実際の操作は、DMS コンソールのモードとレイアウトによって異なる場合があります。詳細については、「シンプルモード」および「DMSインターフェースのレイアウトとスタイルをカスタマイズする」をご参照ください。
Data Management (DMS) にログインします。
上部メニューで、 を選択します。
データ同期タスク の右側で、同期インスタンスがあるリージョンを選択します。
タスクの作成 をクリックして、タスク設定ページを開きます。
任意:ページの右上隅で、新バージョンの設定ページを試してみる をクリックします。
説明ボタンが 旧バージョンの設定ページに戻る の場合は、この手順をスキップできます。
新しい設定ページと古い設定ページでは、パラメーターが異なります。新しい設定ページを使用することを推奨します。
ソースデータベースと宛先データベースを設定します。
警告ソースインスタンスと宛先インスタンスを選択した後、ページ上部の 制限事項 を確認して、タスクを正常に作成および実行できることを確認します。
カテゴリ
パラメーター
説明
N/A
[タスク名]
DTS はタスク名を自動的に生成します。簡単に識別できるよう、わかりやすい名前を指定することを推奨します。名前は一意である必要はありません。
[ソースデータベース]
[データベースタイプ]
PolarDB-X 1.0 を選択します。
[接続タイプ]
Alibaba Cloud インスタンス を選択します。
[インスタンスリージョン]
ソース PolarDB-X 1.0 インスタンスが存在するリージョンを選択します。
[Alibaba Cloud アカウント間でデータを複製]
この例では、現在の Alibaba Cloud アカウントに属するデータベースインスタンスを使用します。× を選択します。
[インスタンス ID]
ソース PolarDB-X 1.0 インスタンスの ID を選択します。
[データベースアカウント]
ソース PolarDB-X 1.0 インスタンスのデータベースアカウントを入力します。必要なアクセス許可については、「データベースアカウントに必要なアクセス許可」をご参照ください。
[データベースパスワード]
データベースアカウントに対応するパスワードを入力します。
[宛先データベース]
[データベースタイプ]
MySQL を選択します。
[接続タイプ]
Alibaba Cloud インスタンス を選択します。
[インスタンスリージョン]
宛先 ApsaraDB RDS for MySQL インスタンスが存在するリージョンを選択します。
[Alibaba Cloud アカウント間でデータを複製]
この例では、現在の Alibaba Cloud アカウントに属するデータベースインスタンスを使用します。× を選択します。
[RDS インスタンス ID]
宛先 ApsaraDB RDS for MySQL インスタンスの ID を選択します。
[データベースアカウント]
宛先 ApsaraDB RDS for MySQL インスタンスのデータベースアカウントを入力します。必要なアクセス許可については、「データベースアカウントに必要なアクセス許可」をご参照ください。
[データベースパスワード]
データベースアカウントに対応するパスワードを入力します。
[接続方法]
必要に応じて、非暗号化 または SSL 暗号化 を選択します。SSL 暗号化 を選択する場合は、事前に RDS for MySQL インスタンスに対して SSL 暗号化を有効にする必要があります。詳細については、「クラウド証明書を使用して SSL 暗号化を迅速に有効にする」をご参照ください。
設定が完了したら、ページ下部の 接続をテストして続行 をクリックします。
説明DTS サーバーの IP アドレスの CIDR ブロックが、ソースデータベースと宛先データベースのセキュリティ設定に追加され、DTS サーバーからのアクセスが許可されていることを確認します。これは自動または手動で行うことができます。詳細については、「DTS サーバーの IP アドレスの CIDR ブロックをホワイトリストに追加する」をご参照ください。
ソースまたは宛先データベースがセルフマネージドデータベース (アクセス方法 が Alibaba Cloud インスタンス ではない場合) である場合は、DTS サーバーの CIDR ブロック ダイアログボックスで 接続テスト をクリックする必要もあります。
タスクオブジェクトを設定します。
オブジェクト設定 ページで、同期するオブジェクトを設定します。
パラメーター
説明
[同期タイプ]
増分データ同期 が選択されています。デフォルトでは、スキーマ同期 と 完全データ同期 も選択する必要があります。事前チェックが完了すると、DTS は選択したオブジェクトのフルデータ同期をソースインスタンスから宛先クラスターに実行します。これが、後続の増分データ同期のベースラインデータとなります。
[競合するテーブルの処理モード]
[エラーの事前チェックと報告]:DTS は宛先データベースに同じ名前のテーブルがあるかどうかをチェックします。競合がある場合、DTS は事前チェック中にエラーを報告し、タスクを開始しません。
説明競合するテーブルを削除または名前変更することが現実的でない場合は、テーブルを別の名前にマッピングできます。詳細については、「オブジェクト名のマッピング」をご参照ください。
[エラーを無視して続行]:宛先データベース内の同じ名前のテーブルのチェックをスキップします。
警告エラーを無視して続行 を選択すると、データの不整合が発生する可能性があります。例:
テーブルスキーマが一貫している場合、ソースレコードと同じプライマリキーまたは一意キーを持つ宛先レコードは上書きされます。
テーブルスキーマに一貫性がない場合、タスクが失敗したり、データが部分的にしか同期されなかったりする可能性があります。選択は慎重に行ってください。
[移行先インスタンスでのオブジェクト名の大文字化]
宛先インスタンスに同期されるデータベース、テーブル、および列オブジェクト名の大文字と小文字の区別ポリシーを設定できます。デフォルトでは、DTS のデフォルトポリシー が選択されています。ソースデータベースと宛先データベースのデフォルトポリシーを使用することもできます。詳細については、「宛先オブジェクト名の大文字と小文字の区別ポリシー」をご参照ください。
[ソースオブジェクト]
ソースオブジェクト ボックスで、同期するオブジェクトをクリックし、
をクリックして 選択中のオブジェクト ボックスに移動します。説明同期オブジェクトとしてテーブルを選択することを推奨します。データベース全体を選択した場合、そのデータベース内のテーブルの追加または削除の変更は宛先データベースに同期されません。
[選択中のオブジェクト]
宛先インスタンスでオブジェクトの名前を変更するには、選択中のオブジェクト ボックスで同期オブジェクトを右クリックします。設定手順については、「単一のスキーマ、テーブル、または列名のマッピング」をご参照ください。
宛先インスタンスで複数のオブジェクトの名前を一度に変更するには、一括編集 ボックスの右上隅にある 選択中のオブジェクト をクリックします。設定手順については、「スキーマ、テーブル、列名をバッチでマッピングする」をご参照ください。
説明データベースまたはテーブルレベルで同期する SQL 操作を選択するには、選択中のオブジェクト ボックスで同期オブジェクトを右クリックし、表示されるダイアログボックスで目的の SQL 操作を選択します。サポートされている操作のリストについては、「サポートされている SQL 操作」をご参照ください。
データをフィルターするための WHERE 条件を設定するには、選択中のオブジェクト ボックスで同期するテーブルを右クリックし、表示されるダイアログボックスでフィルター条件を設定します。詳細については、「フィルター条件の設定」をご参照ください。
詳細設定へ をクリックして、高度なパラメーターを設定します。
パラメーター
説明
[タスクのスケジュールに使用する専用クラスターの選択]
デフォルトでは、DTS は共有クラスターでタスクをスケジュールするため、クラスターを選択する必要はありません。より安定したパフォーマンスを得るために、専用クラスターを購入して DTS 同期タスクを実行できます。詳細については、「DTS 専用クラスターとは」をご参照ください。
[失敗した接続の再試行時間]
同期タスクが開始された後、ソースまたは宛先データベースへの接続が失敗した場合、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 秒あたりのソースデータベースのクエリ率 QPS、1 秒あたりの完全移行の行数 RPS、および 1 秒あたりの完全移行データ量 (MB) BPS パラメーターを設定することで、フル同期タスクのレート制限を設定できます。
説明この設定項目は、同期タイプ が 完全データ同期 に設定されている場合にのみ使用できます。
同期インスタンスの実行後にフル同期レートを調整することもできます。
[増分同期率を制限するかどうか]
増分同期タスクにレート制限を設定することもできます。宛先データベースへの負荷を軽減するには、1 秒あたりの増分同期の行数 RPS と 1 秒あたりの増分同期データ量 (MB) BPS を設定します。
[環境タグ]
環境タグを選択してインスタンスを識別できます。この例では選択は不要です。
[ETL 機能の設定]
ETL (抽出、変換、ロード) 機能を有効にするかどうかを選択します。詳細については、「ETL とは」をご参照ください。有効な値:
[○]:ETL 機能を有効にします。コードエディターでデータ処理ステートメントを入力します。詳細については、「データ移行またはデータ同期タスクで ETL を設定する」をご参照ください。
[×]:ETL 機能を無効にします。
[監視アラート]
アラートを設定するかどうかを指定します。同期が失敗した場合、またはレイテンシが指定されたしきい値を超えた場合、通知がアラート連絡先に送信されます。
[×]:アラートは設定されません。
[○]:アラートしきい値を設定し、アラート通知を指定します。詳細については、「タスク設定中のモニタリングとアラートの設定」をご参照ください。
タスクを保存して事前チェックを実行します。
このインスタンスを設定するための API パラメーターを表示するには、次:タスク設定の保存と事前チェック ボタンにカーソルを合わせ、吹き出し内の OpenAPI パラメーターのプレビュー をクリックします。
API パラメーターの表示が完了したら、ページ下部の 次:タスク設定の保存と事前チェック をクリックします。
説明同期タスクが開始される前に、DTS は事前チェックを実行します。タスクは、すべての事前チェック項目に合格した後にのみ開始できます。
事前チェックが失敗した場合は、失敗した項目の 詳細を表示 をクリックします。指示に従って問題を修正し、再度事前チェックを実行します。
事前チェックで警告が返された場合:
チェック項目が失敗し、無視できない場合は、項目の横にある 詳細を表示 をクリックします。指示に従って問題を修正し、再度事前チェックを実行します。
無視できるチェック項目については、アラートの詳細を確認、無視、OK、再度事前チェックを実行 を順にクリックして、警告をスキップして事前チェックを再実行できます。警告項目を無視することを選択した場合、データの不整合などの問題が発生し、ビジネスにリスクをもたらす可能性があります。
インスタンスを購入します。
成功率 が 100% になったら、次:インスタンスの購入 をクリックします。
購入 ページで、データ同期インスタンスの課金方法とリンク仕様を選択します。次の表で、これらのパラメーターについて詳しく説明します。
カテゴリ
パラメーター
説明
[新しいインスタンスクラス]
課金方法
サブスクリプション:インスタンスを作成するときに支払います。これは長期的なニーズに適しており、従量課金よりも費用対効果が高くなります。サブスクリプション期間が長いほど、割引率が高くなります。
従量課金:時間単位で課金されます。これは短期的なニーズに適しています。使用後すぐにインスタンスをリリースして、コストを節約できます。
リソースグループ設定
インスタンスが属するリソースグループです。デフォルトでは、デフォルトのリソースグループが選択されます。詳細については、「リソース管理とは」をご参照ください。
リンク仕様
DTS は、さまざまなパフォーマンスレベルの同期仕様を提供します。同期リンクの仕様によって同期速度が変わります。ビジネスシナリオに基づいて仕様を選択できます。詳細については、「データ同期リンクの仕様」をご参照ください。
サブスクリプション期間
サブスクリプションモードでは、サブスクリプションインスタンスの期間と数量を選択します。1~9 か月の月単位のサブスクリプション、または 1、2、3、5 年の年単位のサブスクリプションを選択できます。
説明このオプションは、課金方法が サブスクリプション の場合にのみ使用できます。
設定が完了したら、Data Transmission Service (従量課金) 利用規約 を読み、同意のチェックを入れます。
購入して起動 をクリックします。OK ダイアログボックスで、[OK] をクリックします。
[データ同期] ページでタスクの進捗状況を確認できます。