Data Transmission Service (DTS) を使用して、2 つの PolarDB-X 1.0 インスタンス間で継続的かつ一方向のデータ同期を設定します。DTS は PolarDB-X 1.0 の分散アーキテクチャを理解しており、基盤となる各 ApsaraDB RDS for MySQL インスタンスに対して自動的にサブタスクを作成し、PolarDB-X 1.0PolarDB-X 1.0PolarDB-X 1.0PolarDB-X 1.0PolarDB-X 1.0PolarDB-X 1.0PolarDB-X 1.0PolarDB-X 1.0PolarDB-X 1.0タスクトポロジ で個別の進行状況を追跡します。
PolarDB-X 1.0 インスタンス間の双方向同期はサポートされていません。PolarDB-X 1.0PolarDB-X 1.0PolarDB-X 1.0
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
ソースおよび宛先の PolarDB-X 1.0 インスタンスの両方を作成済みであること
宛先インスタンスにターゲットデータベースおよびテーブルを作成済みであること。スキーマは同期対象オブジェクトと一致している必要があります — 詳細については、「PolarDB-X 1.0 インスタンスの作成」および「データベースの作成」をご参照ください。
両インスタンスのストレージタイプが ApsaraDB RDS for MySQL であること — PolarDB for MySQL はサポートされていません
宛先インスタンスに、ソースから転送されるすべてのデータを格納できる十分なストレージ容量があること(完全同期中に同時 INSERT が発生することにより断片化が生じるため、宛先の表領域はソースよりも大きくなります)
PolarDB-X 1.0 にアタッチされた ApsaraDB RDS for MySQL インスタンスのバイナリログ要件:PolarDB-X 1.0
| 要件 | 完全データ同期のみ | 完全+増分同期 |
|---|---|---|
バイナリログの有効化、binlog_row_image = full | 必須 — それ以外の場合、DTS は事前チェックに失敗します | 必須 |
| 最小バイナリログ保持期間 | 不要 | 初期完全同期の全期間にわたって 7 日間 |
| 完全同期完了後の最小保持期間 | 不要 | 24 時間 |
増分のみの同期では、バイナリログを少なくとも 24 時間保持してください。
制限事項
ソースデータベースの制約:
テーブルには主キー制約または一意制約が必要であり、すべてのフィールドが一意である必要があります。そうでない場合、宛先に重複レコードが含まれる可能性があります
一意制約のみを持つテーブルではスキーマ同期はサポートされません。代わりに主キー制約を持つテーブルを使用してください
セカンダリインデックスを持つテーブルは同期できません
個別のテーブルを選択して同期対象とする場合、1 つの同期タスクで最大 5,000 テーブルまでサポートされます。5,000 テーブルを超える場合は、複数のタスクを設定するか、データベース全体を同期してください
同期中の運用制約:
ソースインスタンス(およびそのアタッチされた ApsaraDB RDS for MySQL インスタンスを含む)のスケールアップ、構成済みの論理データベースまたはテーブルの物理データベースディストリビューションの変更、ホットテーブルの移行、シャードキーの変更、オンラインデータ定義言語(DDL)操作の実行は行わないでください。これらのいずれかを行うと、タスクが失敗したり、データの不整合が発生したりする可能性があります
ソースの PolarDB-X 1.0 インスタンスのネットワークタイプを変更した場合、その後で同期タスクのネットワーク接続設定を更新してくださいPolarDB-X 1.0
同期対象オブジェクトに対する DDL 操作で gh-ost や pt-online-schema-change を使用しないでください
宛先データベースへの書き込みは DTS を通じてのみ行ってください。Data Management (DMS) のオンライン DDL を含む他のツールを使用すると、宛先でデータ損失が発生する可能性があります
アーキテクチャの制約:
PolarDB-X 1.0 コンピュート層の読み取り専用インスタンスはサポートされていませんPolarDB-X 1.0
水平分割(データベースまたはテーブル単位)のみがサポートされています。垂直分割はサポートされていませんPolarDB-X 1.0
課金
| 同期タイプ | 料金 |
|---|---|
| スキーマ同期および完全データ同期 | 無料 |
| 増分データ同期 | 課金対象 — 「課金概要 |
サポートされる同期トポロジ
一方向の 1 対 1 同期
一方向の 1 対多 同期
一方向のカスケード同期
一方向の多対 1 同期
DTS がサポートするトポロジの完全な一覧については、「同期トポロジ」をご参照ください。
サポートされる SQL 操作
| 操作タイプ | ステートメント |
|---|---|
| DML | INSERT、UPDATE、DELETE |
必要な権限
| データベース | 必要な権限 |
|---|---|
| ソースの PolarDB-X 1.0 インスタンス | 同期対象のオブジェクトについて確認してください — アカウントの管理 |
| 宛先の PolarDB-X 1.0 インスタンス | 宛先オブジェクトに対する読み取りおよび書き込み権限 |
同期タスクの作成
本番ワークロードへの影響を最小限に抑えるため、非ピーク時間帯に同期を実行してください。初期完全データ同期フェーズでは、DTS がソースおよび宛先データベースの読み取りおよび書き込みリソースを使用します。
手順 1:データ同期タスクページを開く
Data Management (DMS) コンソール にログインします。
上部のナビゲーションバーで、[データ + AI] をクリックします。
左側のナビゲーションウィンドウで、[DTS (DTS)] > [データ同期] を選択します。
メニュー構造は、使用中の DMS コンソールモードによって異なります。「シンプルモード」および「DMS コンソールのレイアウトとスタイルのカスタマイズ」をご参照ください。また、直接「データ同期タスクページ」にアクセスすることもできます。
手順 2:リージョンの選択
[データ同期タスク] ページで、同期インスタンスが配置されているリージョンを選択します。
新しい DTS コンソールでは、代わりに上部のナビゲーションバーからリージョンを選択します。
手順 3:ソースおよび宛先データベースの構成
[タスクの作成] をクリックします。データ同期タスクの作成ウィザードで、以下のパラメーターを構成します。
続行する前に、ページに表示される[制限事項] セクションを必ずお読みください。誤った構成はタスクの失敗やデータの不整合を引き起こす可能性があります。
ソースデータベース
| パラメーター | 値 |
|---|---|
| タスク名 | このタスクを識別するための説明的な名前です。DTS がデフォルト名を生成しますが、名前の重複は許可されます。 |
| データベースタイプ | PolarDB-X 1.0 |
| アクセス方法 | Alibaba Cloud インスタンス |
| インスタンスリージョン | ソースの PolarDB-X 1.0 インスタンスのリージョン |
| インスタンス ID | ソースの PolarDB-X 1.0 インスタンスの ID |
| データベースアカウント | ソースに対する読み取り権限を持つアカウント — 「必要な権限 |
| データベースパスワード | データベースアカウントのパスワード |
宛先データベース
| パラメーター | 値 |
|---|---|
| データベースタイプ | PolarDB-X 1.0 |
| アクセス方法 | Alibaba Cloud インスタンス |
| インスタンスリージョン | 宛先の PolarDB-X 1.0 インスタンスのリージョン |
| インスタンス ID | 宛先の PolarDB-X 1.0 インスタンスの ID |
| データベースアカウント | 宛先に対する読み取りおよび書き込み権限を持つアカウント — 「必要な権限 |
| データベースパスワード | データベースアカウントのパスワード |
手順 4:接続性のテスト
[接続性のテストと続行] をクリックします。
DTS は、Alibaba Cloud データベースインスタンスのホワイトリストに自動的に DTS サーバーの CIDR ブロックを追加します。Elastic Compute Service (ECS) 上でホストされる自己管理データベースの場合、DTS は ECS セキュリティグループルールに CIDR ブロックを追加します — データベースが複数の ECS インスタンスにまたがっている場合は、各インスタンスに CIDR ブロックを手動で追加してください。オンプレミスまたはサードパーティのデータベースの場合は、CIDR ブロックをデータベースのホワイトリストに手動で追加してください。DTS サーバーの CIDR ブロックの完全な一覧については、「DTS サーバーの CIDR ブロックの追加」をご参照ください。
DTS の CIDR ブロックをホワイトリストまたはセキュリティグループルールに追加することは、セキュリティリスクを伴います。続行する前に、強力な認証情報の使用、公開ポートの制限、API 呼び出しの認証、ホワイトリストルールの定期的なレビュー、不正な CIDR ブロックの削除などの対策を講じてください。より安全な接続を実現するには、Express Connect、VPN Gateway、または Smart Access Gateway をご使用ください。
手順 5:オブジェクトおよび同期設定の構成
| 設定項目 | 説明 |
|---|---|
| 同期タイプ | 増分データ同期 がデフォルトで選択されています。既存データも同期したい場合は、完全データ同期 を選択してください。スキーマ同期 は単独では選択できません。 |
| 競合テーブルの処理モード | 事前チェックとエラー報告(デフォルト):宛先にソースと同じ名前のテーブルが存在する場合、事前チェックが失敗します。競合テーブルを削除または名前変更できない場合は、「オブジェクト名マッピング」をご利用ください。エラーを無視して続行:名前競合の事前チェックをスキップします。完全同期中は、競合するレコードが宛先に変更されずに保持されます。増分同期中は、競合するレコードが上書きされます。注意して続行してください — スキーマの不一致により、部分的な同期失敗が発生する可能性があります。 |
| 宛先インスタンスにおけるオブジェクト名の大文字小文字 | 宛先におけるデータベース、テーブル、カラム名の大文字小文字を制御します。デフォルトは DTS デフォルトポリシー です。「宛先インスタンスにおけるオブジェクト名の大文字小文字の指定」をご参照ください。 |
| ソースオブジェクト | ソースのリストからテーブルまたはデータベースを選択し、矢印アイコンをクリックして [選択済みオブジェクト] に移動します。同期対象としてデータベース全体を選択した場合、DTS はソースデータベースでのテーブル作成または削除による変更を宛先データベースに同期しません。 |
| 選択済みオブジェクト | 個別のオブジェクトを右クリックすると、名前の変更や WHERE 句による行のフィルターが可能です。右上隅の [一括編集] をクリックすると、複数のオブジェクトを一度に名前変更できます。「オブジェクト名マッピング」および「フィルター条件の指定」をご参照ください。 |
手順 6:高度な設定の構成
[次へ:高度な設定] をクリックし、以下のパラメーターを構成します。
| パラメーター | 説明 |
|---|---|
| モニタリングとアラート | タスクの失敗時または同期遅延がしきい値を超えた際に通知を受信するには、[はい] を選択します。アラートのしきい値および通知連絡先を構成します。[いいえ] を選択すると、アラート機能をスキップします。「モニタリングとアラートの設定」をご参照ください。 |
| 失敗した接続の再試行時間 | タスクを失敗としてマークするまでの DTS の再試行時間です。範囲:10~1440 分。デフォルト:720 分。30 分以上を推奨します。複数のタスクが同じソースまたは宛先データベースを共有する場合、最も短い再試行時間が適用されます。再試行中も DTS インスタンスの課金は継続されます。 |
| ETL の構成 | 抽出・変換・書き出し(ETL)ルールを使用して、転送中のデータを変換するには、[はい] を選択します。「ETL の設定」および「ETL とは? |
手順 7:事前チェックの実行
[次へ:タスク設定の保存と事前チェック] をクリックします。DTS はタスク開始前に構成内容を検証します。この構成に対応する OpenAPI パラメーターを確認するには、ボタンにカーソルを合わせて [OpenAPI パラメーターのプレビュー] をクリックし、その後で進めてください。
事前チェック項目のいずれかが失敗した場合、失敗した項目の横にある [詳細の表示] をクリックし、問題を解決した後、[再チェック] をクリックします。
項目が明確な失敗ではなく警告として表示される場合:
警告を無視できない場合は、問題を修正して再チェックを実行してください。
警告を無視できる場合は、[警告の詳細の確認] をクリックし、次に [無視]、[OK]、そして [再チェック] をクリックします。警告を無視すると、データの不整合が発生する可能性があります。
手順 8:同期インスタンスの購入
成功率 が 100 % に達するまで待ち、その後 [次へ:インスタンスの購入] をクリックします。インスタンスを以下のように構成します。
| パラメーター | 説明 |
|---|---|
| 課金方法 | サブスクリプション:前払い方式。1~9 か月または 1、2、3、5 年間の契約が可能です。長期利用にはコスト効率が優れています。従量課金:時間単位で課金されます。不要になった時点でインスタンスをリリースすることで、課金を停止できます。 |
| リソースグループ設定 | このインスタンスのリソースグループです。デフォルト: デフォルトリソースグループ。「Resource Management とは? |
| インスタンスクラス | 同期スループットのクラスです。「データ同期インスタンスのインスタンスクラス」をご参照ください。 |
| サブスクリプション期間 | サブスクリプション課金方法でのみ利用可能です。 |
Data Transmission Service (従量課金) サービス利用規約 をお読みになり、同意した上で、[購入して開始] をクリックします。確認ダイアログで [OK] をクリックします。
タスクがタスクリストに表示されます。DTS は、ソースの PolarDB-X 1.0 インスタンスにアタッチされた各 ApsaraDB RDS for MySQL インスタンスに対して個別のサブタスクを実行します。[タスクトポロジ] でサブタスクのステータスを監視できます。
次のステップ
同期トポロジ — より複雑な構成向けにサポートされるトポロジパターンについて確認できます
オブジェクト名マッピング — ソースを変更せずに宛先のオブジェクト名を変更できます
モニタリングとアラートの設定 — タスクの同期遅延および失敗に関するアラートを設定できます
課金概要 — 増分同期の課金方法について確認できます