DBMotoでは初回のレプリケーション時や任意のタイミングで全件転送を行うリフレッシュを実施可能です。この全件転送の主な流れとしては、まず、ターゲットテーブルをきれいにするため、ターゲットのテーブルデータを全て削除(TruncateやDeleteなど)し、その後ソーステーブルのデータを全て選択(Select)、ターゲットテーブルに全件挿入(Bulk InsertまたはシングルInsert)するというものです。
https://www.climb.co.jp/soft/dbmoto/outline/mode.html#mode01
これにより、完全にソース/ターゲットテーブルのデータを一致させることができますが、テーブルのデータ量によって長時間かかるケースがあります。
これを避けるために、本当に同期が必要なデータのみをリフレッシュしたい、また、障害等により、データの不一致が発生し、その不一致のデータ範囲が特定できている場合などに全データをリフレッシュで同期させるのではなく、特定範囲のみのデータをリフレッシュで同期させたいという要望をいただくケースがございます。
このような要望を解決する機能がリフレッシュフィルタ機能です。設定としては下記のようにソースリフレッシュフィルタとターゲットリフレッシュフィルタが存在します。
- ソースリフレッシュフィルタ:②で取得するデータをWhere句での条件指定と同様に制限できます。
- ターゲットリフレッシュフィルタ:①で削除するデータをWhere句での条件指定と同様に制限できます。
初期リフレッシュで一部データのみを同期させたいような場合には、ソースリフレッシュフィルタのみで問題ありません(ターゲットテーブルにデータが存在しない状態)。既にレプリケーション済みで改めてリフレッシュを行う場合には③の挿入で重複しないようにソース/ターゲット両方で同様の条件を指定する必要があります。このようにリフレッシュフィルタを用いることでより柔軟にDBMotoをご利用いただけます。
関連したトピックス
- 初期同期(リフレッシュ)がより便利に! ステージングリフレッシュ機能
- DBMotoレプリケーションに必要なPostgreSQLユーザ権限
- IDENTITYカラム設定のエラーについて【リアルタイムレプリケーションツールDBMoto】
- Webセミナー録画とプレゼンテーション『 Oracle コンサルいらずのチューニングことはじめ』:2020/2/6 開催
- DBMotoレプリケーションに必要なOracleユーザ権限
- DBMotoレプリケーションに必要なSQL Serverユーザ権限
- Oracle/DB2 UDB/SQL Serverの各無償版もサポートしてます【リアルタイムレプリケーションツールDBMoto】
- Insert、Bulk Insertモードについて【リアルタイムレプリケーションツールDBMoto】
- DBMotoとは?リアルタイムレプリケーションツール
- レコード登録・更新処理に対するコミット・タイミング処理【リアルタイムレプリケーションツールDBMoto】