先日リリースされたGluesync 2.1.1にて、「Allowed Operation」と呼ばれる機能が追加されました。
この新機能は、ソースおよびターゲット間でレプリケーション対象とするデータベース操作を制御することができ、ユーザのニーズに応じたレプリケーションが実現できます。
スナップショット(全件レプリケーション)処理、CDC(差分レプリケーション)処理それぞれ設定箇所や対応が異なるため、それぞれ紹介します。
スナップショットの場合
従来のGluesyncでは、スナップショットモードとしてUpsertモードおよびInsertモードが提供されており、高速に処理できるInsertモードはターゲット側にレコードが存在しないケースで利用する機能となっていました。
このため、予めターゲット側でTruncateを実行するなどしてレコードがクリアされている状態でない場合、重複レコードエラーとなっていましたが、Gluesync 2.1.1では仕様変更があり、Insertモード利用実行時には自動的にターゲット側でTruncateクエリによってレコードをクリアされるようになりました。
これに伴い、Insertモード選択時の文言もアップデートされ、Truncateが実行される記載が追加されています。
ただ複数テーブルを1つのテーブルへ集約する(N対1構成)など、ターゲット側でのTruncateが運用上許可されない特定のケースでは、このTruncateによって必要なレコードが全消去されてしまいます。
この場合は、パイプライン(DB接続設定)の編集画面を開き、ソースおよびターゲットセットアップの詳細設定 > カスタムプロパティ項目にて、”Disable truncate on target before snapshot inserts“というパラメータをドロップダウンリストから選択し有効化することで、スナップショット実行時にもターゲット側へのTruncateを実行しないように制御可能です。
※ソースのみ、ターゲットにのみこのパラメータを追加しても動作しないため、
必ず双方の接続エージェントで指定してください。
CDCの場合
Gluesyncでは、ソーステーブルに対して実行された下記操作がターゲットテーブルへCDC(差分レプリケーション)されます。
・Insert
・Update
・Delete
・Truncate
GluesyncのCDCでは、エンティティ(レプリケーションジョブ)単位で許可する操作を制御可能です。
エンティティの編集画面を開き、設定 > オプション設定と調整 > 許可された操作をクリックすることで、CDCでレプリケーションする操作を指定します。
このように、Gluesyncの「Allowed Operation」機能を利用することで、ニーズに応じたレプリケーションを簡単に構成可能です。
関連したトピックス
- 初期同期(リフレッシュ)がより便利に! ステージングリフレッシュ機能
- DBMotoレプリケーションに必要なPostgreSQLユーザ権限
- Web UI日本語化でもっと簡単にデータ同期[Gluesync 2.0.9]
- AS/400でのレコード全消去時における、DBMotoによるミラーリング動作
- 外部キーが設定された親子テーブルのリフレッシュの注意点と簡単設定方法
- Gluesyncのバージョンアップ方法
- 初期同期(リフレッシュ)をもっと柔軟にリフレッシュフィルタ機能[DBMoto]
- [ DB2 Connectivity ] 開発キット C# Toolkit で出来ること :プログラミング無しで検証可能
- レプリケーションの設定から処理までの流れ【リアルタイムレプリケーションツールDBMoto】
- イニシャル・リフレッシュを行った時のリフレッシュとミラーリングでのトランザクション管理【DBMoto】