■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(開発元ページ)
以上です。
関連したトピックス
- MySQLがターゲットのDBの時の注意【リアルタイムレプリケーションツールDBMoto】
- Create Table Wizardを使用してのMySQLへのレプリケーション【リアルタイムレプリケーションツールDBMoto】
- metadataを格納可能なデータベース【リアルタイムレプリケーションツールDBMoto】
- DBMotoレプリケーションに必要なMySQLユーザ権限
- データ・ソース設定時のトラブル時には(Ver4.1)【リアルタイムレプリケーションツールDBMoto】
- レプリケーションの設定から処理までの流れ【リアルタイムレプリケーションツールDBMoto】
- 初期同期(リフレッシュ)がより便利に! ステージングリフレッシュ機能
- [ DB2 Connectivity ] 開発キット C# Toolkit で出来ること :プログラミング無しで検証可能
- AS/400ジャーナルの切り替え【リアルタイムレプリケーションツールDBMoto】
- DBMotoのレプリケーションパフォーマンスを向上させる方法