3つのレプリケーションモードと対応DB【リアルタイムレプリケーションツールDBMoto】


■3つのレプリケーションモード

DBMotoでは3つのレプリケーションモードをサポートしています。

●リフレッシュ

ソースDBのレコードをすべてターゲットにコピーします。
内部的にはソースDBのレコードをselectで抽出し、ターゲットDB対してにinsertします。(バルクインサートをサポート)

一回きりのレプリケーションですが、基本的には初期レプリケーションとして一番最初にリフレッシュを行い(イニシャルリフレッシュといいます)、
その後にミラーリングやシンクロナイゼーションを行うのが一般的です。

●ミラーリング

ソースDBのトランザクションを確認し、差分のみをターゲットDBに反映します。
内部的にはソースDBのログやトリガーテーブルを確認してトランザクションがあるか確認し、
トランザクションがあればターゲットDBに対してinsert/update/deleteをSQLクエリで発行します。

なお、ソースDBをチェックする間隔はDBMoto側でインターバル値として設定することになります。
推奨値でもあるデフォルト値は60秒となっています。

お分かりかと思いますが、つまり「完全」なリアルタイムではありません。周期的にインターバル毎にチェックする手法です。
ですので、銀行システムのように即時反映が求められるような用途には向いていないかもしれません。

●シンクロナイゼーション

ソースDBとターゲットDBのトランザクションを確認し、双方の差分をそれぞれ反映します。
つまり双方向のミラーリングです。

■対応DB

対応DBは下記の通りです。レプリケーションモードによって対応DBは異なります。
これは、ミラーリングやシンクロナイゼーションではログやトリガーの参照が必要なためです。(非対応のDBもある)

※リフレッシュの場合


ソース、ターゲット共に全DB対応です。
リフレッシュの場合はログやトリガーの参照がないためですね。

また、メジャーDBの対応バージョンは下記の通りです。(ソース・ターゲット共通)
・DB2/AS400 ⇒ V3R2以上
・DB2/UDB ⇒ Ver5以上
・Oracle ⇒ Ver8.1.7以上
・SQL Server ⇒ Ver7、2000以上
・MySQL ⇒ Ver4.1.5以上

※ミラーリングの場合


ソースは、トランザクションログが開放されているかトリガーが使えるDB、ターゲットは全DB対応です。
ソースはログやトリガーの参照が必須ですが、ターゲットはその必要がないためにこうなります。

また、メジャーDBの対応バージョンは下記の通りです。
・DB2/AS400 ⇒ ソースはV4R3以上、ターゲットはV3R2以上
・DB2/UDB ⇒ ソースはVer7.2以上、ターゲットはVer5以上
・Oracle ⇒ ソース・ターゲット共にVer8.1.7以上
・SQL Server ⇒ ソース・ターゲット共にVer7、2000以上
・MySQL ⇒ ソース・ターゲット共にVer4.1.5以上

※シンクロナイゼーショんの場合


ソース、ターゲット共にトランザクションログが開放されているかトリガーが使えるDBです。

また、メジャーDBの対応バージョンは下記の通りです。(ソース・ターゲット共通)
・DB2/AS400 ⇒ V3R2以上
・DB2/UDB ⇒ Ver7.2以上
・Oracle ⇒ Ver8.1.7以上
・SQL Server ⇒ Ver7、2000以上
・MySQL ⇒ Ver4.1.5以上

その他のDBについては、下記のサイトをご確認ください。
http://www.hitsw.com/support/kbase/DBMoto/Providers_DBMoto.htm(開発元ページ)

以上です。

関連したトピックス

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください