弊社のDBMotoでは異なるデータベース間でのデータレプリケーションが可能です。
レコード全件を片方からもう片方へコピーするリフレッシュ、変更したレコードを検知して反映するミラーリング、変更を互いに反映するシンクロナイゼーションの3種類があります。
これらのレプリケーションジョブには必要に応じ、スクリプトにより対象とするレコードを限定するような条件をつけることができます。
本記事ではミラーリング時にフィルタリングをするスクリプト3つ、シンクロナイゼーション時にフィルタリングをするスクリプト1つを紹介いたします。
- 指定したカラムで特定の範囲の値を取っているレコードのみをリフレッシュ・ミラーリングする。その後ソース側で削除があってもターゲット側で特定の範囲の値を取っているレコードは削除しない。
サンプルスクリプト:filtering_1.txt●スクリプトの内容
ソース側の、id1というint型のカラムの値が3より大きいとき、リフレッシュ及びミラーリングを停止する(=3以下はリフレッシュ・ミラーリングを行う)。
ソース側でレコードの削除があっても、id1の値が3より大きいレコードに関しては、ミラーリングしない。 - 指定したカラムで特定の条件に当てはまるレコードの削除をミラーリングしない
サンプルスクリプト:filtering_2.txt●スクリプトの内容
ソース側でレコードの削除があっても、id1の値が3より大きいレコードに関しては、ミラーリングしない。
(1つ目のスクリプトから削除のミラーリングに関わる部分を抜き出したものです。) - ソース側でのレコードの削除をミラーリングしない
サンプルスクリプト:filtering_3.txt●スクリプトの内容
ソース側でレコードの削除があっても、その変更を一切ミラーリングしない。
(2つ目のスクリプトから条件を問わず削除のミラーリングをしないように編集したものです。) - シンクロナイゼーションで相手方に対し反映するレコードのデータをフィルタリングする
サンプルスクリプト:filtering_4.txt●スクリプトの内容
ソース側のレコードのうち、DataTime型のカラムの値が指定期間の間に収まっているレコードのみをターゲット側に反映。
ターゲット側にあるデータで、同じ指定期間内にあるレコードが挿入・更新・削除された場合はソース側に反映する。
関連したトピックス
- 複数ユーザ管理や統合管理に「リモート接続モード」:DBMoto
- DBMotoのリモート接続モードを使用した負荷分散
- DBMotoとは?リアルタイムレプリケーションツール
- 評価版申請の際の注意点【リアルタイムレプリケーションツールDBMoto】
- HMVジャパン株式会社(DBMoto事例)
- AWSへのDB移行/連携を行うには? DBMotoが選ばれる理由
- AS/400ジャーナルの切り替え【リアルタイムレプリケーションツールDBMoto】
- ・フェラーリ・アメリカ:DBMoto導入事例
- FAQ【リアルタイムレプリケーションツールDBMoto】
- DBMoto5 FAQ: 2006-7【リアルタイムレプリケーションツールDBMoto】