Data Transmission Service (DTS) を使用すると、自主管理 Db2 for LUW データベースから PolarDB-X 2.0 インスタンスへデータを継続的に同期できます。この同期は、初期完全同期と、Db2 for LUW に組み込まれた変更データキャプチャ(CDC)レプリケーション機構によって検出された増分変更の継続的な同期を含みます。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
ソースとして使用する自主管理 Db2 for LUW データベースおよび宛先として使用する PolarDB-X 2.0 インスタンス。PolarDB-X インスタンスは MySQL 5.7 と互換である必要があります。対応する同期シナリオについては、「データ同期シナリオの概要」をご参照ください。
ソースデータベースの全データを格納できる十分な空きストレージ容量が、宛先インスタンスに確保されていること
Db2 for LUW データベースでデータロギングが有効化されていること。データロギングが無効の場合、事前チェックが失敗し、タスクを開始できません。
同期タイプ ログ保持要件 増分データ同期のみ 24 時間以上 完全データ同期+増分データ同期 最低 7 日間。完全データ同期フェーズが完了した後は、保持期間を 24 時間以上に設定できます。これを満たさない場合、DTS がデータログを取得できず、タスクが失敗する可能性があります。例外的な状況では、データの不整合やデータ損失が発生する場合があります。 同期対象とするすべてのテーブルで CDC が有効化されていること
Db2 for LUW データベースでログアーカイブが構成されていること。詳細については、「logarchmeth1」および「logarchmeth2」をご参照ください。
必要なデータベースアカウント権限が付与されていること:
データベース 必要な権限 参考情報 Db2 for LUW DBADM 権限 グループおよびユーザー ID の作成、権限の概要 PolarDB-X 2.0 宛先データベースに対する読み取りおよび書き込み権限 アカウントの管理
課金
| 同期タイプ | 費用 |
|---|---|
| スキーマ同期および完全データ同期 | 無料 |
| 増分データ同期 | 課金済み。「課金概要 |
対応する同期トポロジ
単方向・一対一同期
単方向・一対多同期
単方向・カスケード同期
単方向・多対一同期
詳細については、「同期トポロジ」をご参照ください。
対応する DML 操作
DTS は INSERT、UPDATE、DELETE 文を同期します。ただし、このソース/宛先の組み合わせでは DDL 同期はサポートされていません。
制限事項
すべての同期タイプに適用される制限事項
| カテゴリ | 制限事項 |
|---|---|
| ソース帯域幅 | ソースデータベースをホストするサーバーには、十分なアウトバウンド帯域幅が必要です。帯域幅が不足していると、同期速度が低下します。 |
| テーブル制約 | 同期対象のテーブルには、すべてのフィールドが一意である PRIMARY KEY または一意制約が必要です。この制約がない場合、ターゲットデータベースに重複レコードが含まれる可能性があります。 |
| テーブル数 | 同期オブジェクトとしてテーブルを選択し、ターゲットデータベースでテーブル名または列名を変更する場合、1 つのタスクでサポートされるテーブル数は最大 5,000 です。テーブル数が 5,000 を超える場合は、複数のタスクを設定するか、データベース全体を同期してください。 |
| 外部キーの動作 | DTS は、ソースデータベースからターゲットデータベースに外部キーを同期します。完全データ同期および増分データ同期中、DTS はセッションレベルで外部キーに対する制約チェックとカスケード操作を一時的に無効にします。同期中にソースデータベースでカスケード UPDATE または DELETE 操作を実行すると、データの不整合が発生する可能性があります。 |
| 書き込み動作 | ロックフリーデータ定義言語 (DDL) 操作の実行同期期間中、ターゲットデータベースへのデータ書き込みは DTS 経由でのみ行ってください。同期が完了したら、Data Management (DMS) を使用してオンラインで DDL 文を実行してください。詳細については、「」をご参照ください。 |
| 表領域サイズ | 初期完全データ同期の後、同時 INSERT 操作によってターゲット側でテーブルの断片化が発生します。その結果、ターゲット表領域がソースの表領域よりも大きくなる可能性があります。 |
| パフォーマンスへの影響 | 初期完全データ同期のフェーズでは、ソースとターゲット両方のデータベースサーバーで読み取りおよび書き込みリソースが消費されます。開始前に影響を評価し、可能な場合はオフピーク時に同期を実行してください。 |
増分データ同期にのみ適用される制限事項
DTS は、Db2 for LUW に組み込まれた CDC レプリケーション技術を使用して増分データをキャプチャします。CDC はトランザクションログを監視し、変更内容を宛先に適用します。
| カテゴリ | 制限事項 |
|---|---|
| 同期遅延の精度 | DTS は、宛先で最新に同期されたレコードのタイムスタンプと現在のソースタイムスタンプを比較することで同期遅延を算出します。ソースで長期間 DML 操作が行われていない場合、報告される遅延値が不正確になる可能性があります。遅延値を更新するには、ソースで任意の DML 操作を実行してください。データベース全体を同期する場合は、1 秒ごとに書き込みが行われるハートビートテーブルを作成することを推奨します。 |
| プライマリ/セカンダリ スイッチオーバー | タスク実行中にソース側でプライマリ/セカンダリ スイッチオーバーが発生した場合、タスクは失敗します。 |
| CDC 固有の制限事項 | CDC の全制限事項については、「SQL Replication の一般データ制限事項」をご参照ください。 |
同期タスクの作成
タスクの構成は、以下の 5 つのステップで行います:ソースおよび宛先データベースの構成、接続性のテスト、同期対象の選択、事前チェックの実行、インスタンスの購入。
ステップ 1:ソースおよび宛先データベースの構成
DTS コンソールの [データ同期] ページ に移動します。
または、DMS コンソール にログインし、上部ナビゲーションバーの データ + AI 上にポインターを合わせて、DTS (DTS) > データ同期 を選択します。
左上隅で、同期インスタンスを配置するリージョンを選択します。
[タスクの作成] をクリックします。[データ同期タスクの作成] ウィザードで、ソースおよび宛先データベースのパラメーターを構成します。
ソースデータベース
パラメーター 説明 タスク名 タスクの名前です。DTS によりデフォルト名が自動生成されますが、識別しやすいように意味のある名前を指定することを推奨します。名前は一意である必要はありません。 データベースタイプ DB2 LUW を選択します。 アクセス方法 ソースデータベースのデプロイ場所に基づいてアクセス方法を選択します。本例では、ECS 上の自己管理データベース を使用します。ソースが自己管理データベースの場合、事前にネットワーク環境を構築してください。「事前準備の概要」をご参照ください。 インスタンスリージョン Db2 for LUW データベースが配置されているリージョンです。 ECS インスタンス ID Db2 for LUW データベースをホストする Elastic Compute Service (ECS) インスタンスの ID です。 ポート番号 Db2 for LUW データベースのサービスポートです。デフォルト値:50000。 データベース名 同期対象のオブジェクトを含むソース Db2 for LUW データベースの名前です。 データベースアカウント Db2 for LUW データベースのアカウントです。必要な権限については、「前提条件」をご参照ください。 データベースパスワード データベースアカウントのパスワードです。 宛先データベース
パラメーター 説明 データベースタイプ PolarDB-X 2.0 を選択します。 アクセス方法 Alibaba Cloud インスタンス を選択します。 インスタンスリージョン 宛先 PolarDB-X インスタンスが配置されているリージョンです。 インスタンス ID 宛先 PolarDB-X クラスターの ID です。 データベースアカウント PolarDB-X データベースのアカウントです。必要な権限については、「前提条件」をご参照ください。 データベースパスワード データベースアカウントのパスワードです。
ステップ 2:接続性のテスト
[接続性のテストと続行] をクリックします。
DTS は、自動的にそのサーバーの CIDR ブロックを Alibaba Cloud データベースインスタンスのホワイトリストまたはセキュリティグループに追加します。ECS 上の自己管理データベースの場合、DTS はその CIDR ブロックを ECS セキュリティグループに追加します。ECS インスタンスがデータベースにアクセスできることを確認してください。データベースが複数の ECS インスタンスで実行されている場合、各インスタンスのセキュリティグループルールに DTS の CIDR ブロックを手動で追加します。データセンター内またはサードパーティクラウドプロバイダーによってホストされる自己管理データベースの場合、データベースのホワイトリストに DTS の CIDR ブロックを手動で追加します。詳細については、「DTS サーバーの CIDR ブロック」をご参照ください。
DTS の CIDR ブロックをホワイトリストまたはセキュリティグループに追加すると、セキュリティリスクが高まります。続行する前に、認証情報の強化、公開ポートの制限、API 呼び出しの認証、ホワイトリストルールの定期的な見直し、不正な CIDR ブロックの削除などの予防措置を講じてください。Express Connect、VPN Gateway、または Smart Access Gateway を介した接続を、より安全な代替手段としてご検討ください。
ステップ 3:同期対象の選択および設定の構成
基本設定
| パラメーター | 説明 |
|---|---|
| 同期タイプ | 増分データ同期 がデフォルトで選択されています。また、完全データ同期 も選択可能です。スキーマ同期 は、このソース/宛先の組み合わせでは利用できません。 |
| 競合テーブルの処理モード | 事前チェックとエラー報告オブジェクト名のマッピング:宛先にソースと同じ名前のテーブルが存在するかどうかをチェックします。同一の名前が存在する場合、事前チェックは失敗し、タスクを開始できません。名前衝突を解決するには、オブジェクト名マッピング機能をご利用ください。「」をご参照ください。エラーを無視して続行:同一テーブル名のチェックをスキップします。完全データ同期中は、主キーまたは一意キーの値が一致するレコードが宛先に保持され、上書きされません。増分データ同期中は、宛先の一致レコードが上書きされます。ソースと宛先のスキーマが異なる場合、一部のカラムが同期されないか、タスクが失敗する可能性があります。 |
| オブジェクトの選択 | [ソースオブジェクト] パネルで同期対象のオブジェクトを選択し、矢印アイコンをクリックして [選択済みオブジェクト] パネルに移動します。カラム、テーブル、またはデータベースを選択できます。テーブルまたはカラムを選択した場合、ビュー、トリガー、ストアドプロシージャは同期されません。 |
| データベースおよびテーブル名の変更 | 単一のオブジェクトの名前を変更するには、[選択されたオブジェクト] パネルでそのオブジェクトを右クリックします。詳細については、「単一のオブジェクトの名前をマッピングする」をご参照ください。複数のオブジェクトの名前を一度に変更するには、[選択されたオブジェクト] パネルの右上隅にある [バッチ編集] をクリックします。詳細については、「複数のオブジェクト名を一度にマッピングする」をご参照ください。 |
| データのフィルター | WHERE 条件を指定して行をフィルターします。「フィルター条件の指定」をご参照ください。 |
| 同期対象の SQL 操作の選択 | [選択済みオブジェクト] パネルでオブジェクトを右クリックし、同期対象の SQL 操作を選択します。 |
詳細設定
| パラメーター | 説明 |
|---|---|
| モニタリングとアラート | タスクの失敗または高い同期遅延に対するアラートを設定するには、はい を選択します。アラートのしきい値と通知の連絡先を指定します。「モニタリングとアラートの設定」をご参照ください。アラートをスキップするには、いいえ を選択します。 |
| 接続失敗時のリトライ時間 | タスク開始後に接続失敗時に DTS が再試行を行う時間枠(分単位)です。有効範囲:10~1440 分。デフォルト値:720 分(12 時間)。少なくとも 30 分以上に設定することを推奨します。時間枠内に DTS が再接続できた場合、タスクは自動的に再開されます。時間枠が経過しても接続が成功しなかった場合、タスクは失敗します。複数のタスクが同じソースまたは宛先データベースを共有している場合、最も短いリトライ時間枠が適用されます。リトライ期間中も DTS インスタンスの課金は継続されます。 |
ステップ 4:事前チェックの実行
[次へ:タスク設定の保存と事前チェック] をクリックします。
保存前にこの構成の OpenAPI パラメーターを確認するには、ボタン上にポインターを合わせ、[OpenAPI パラメーターのプレビュー] をクリックします。
DTS はタスク開始前に事前チェックを実行します。事前チェックが失敗した場合:
失敗項目については、[詳細の表示] をクリックして問題を修正し、再度事前チェックを実行してください。
無視可能な警告項目については、[警告の詳細の確認] をクリックし、ダイアログボックスで [無視] をクリックして [OK] をクリックします。その後、[再チェック] をクリックします。警告を無視すると、データの不整合が発生する可能性があります。
無視できない警告項目については、[詳細の表示] をクリックして問題を修正し、再度事前チェックを実行してください。
ステップ 5:インスタンスの購入
「成功率」が「100%」に達するまで待ってから、「次へ: インスタンスの購入」をクリックします。
購入ページで、課金およびインスタンス設定を構成します。
パラメーター 説明 課金方法 サブスクリプション:固定期間の前払い方式です。長期利用にコスト効率的です。従量課金:時間単位で課金されます。短期利用に適しています。不要になった時点でインスタンスを解放すれば、課金を停止できます。 リソースグループ設定 同期インスタンスのリソースグループです。デフォルト値:デフォルトリソースグループResource Management とは インスタンスクラス DTS インスタンスクラスは、同期速度が異なります。「データ同期インスタンスのインスタンスクラス」をご参照ください。 サブスクリプション期間 サブスクリプション 課金方法でのみ利用可能です。選択肢:1~9 か月、1 年、2 年、3 年、5 年。 [Data Transmission Service (従量課金) 利用規約] を読み、同意してください。
[購入して開始] をクリックし、確認ダイアログで [OK] をクリックします。
タスクはタスクリストに表示されます。そこから進捗状況を監視できます。
次のステップ
オブジェクト名のマッピング — ソースを変更せずに、送信先のオブジェクト名を変更します
同期トポロジ — 複数ソースおよび複数宛先のトポロジについて確認
モニタリングとアラートの設定 — タスクの失敗やレイテンシーしきい値に対するアラートを設定する