DBMoto差分レプリケーション方式 x 3について


異種DB間を双方向にレプリケーションできるDBMoto。これを実現するための差分レプリケーション方式として、トランザクションログ方式もしくはトリガー方式を提供しています。またDBは限定されますが、トランザクションログを独自の形式で保管し、差分レプリケーションを実施するログサーバエージェント(Log Server Agent:LSA)方式もあります。

まとめた表が下記です。

レプリケーション方式 トランザクションログ方式 トリガー方式 ログサーバエージェント方式
メリット 古くからありシンプルで安定した方式 トランザクションログの制限にかからずレプリケーション可能 DBへの接続数最適化によるパフォーマンス向上
デメリット トランザクションログ側の制限に該当する場合がある ログテーブルによるDBへの追加の負荷や、容量が生じる トランザクションログ(バイナリログ)を保管する容量が必要
DBへの負荷

極小~小

バイナリデータ(Lob型)の対応

不可

それぞれの方式の特徴についてご紹介いたします。

トランザクションログ方式

DBのトランザクションログを直接参照し更新情報を取得する方式です。Lob型等のバイナリデータのレプリケーションはできませんが、DB側のログを利用する非常にシンプルな構成のため、DB側への負荷をかけずに差分レプリケーションを実施することが可能です。

Oracle: REDOログ・アーカイブログ、 SQL Server:ログ(ディストリビュータ経由) MySQL :バイナリログ等

・トリガー方式

レプリケーション対象テーブルに対してトリガーを作成、ログテーブルを参照し更新情報を取得する方式です。これによりトランザクション方式では実施できないLob型のレプリケーションを実施することが可能ですが、トリガーによるログテーブルの書き込み処理により、トランザクションログを使用する方式と比較するとDBに追加の負荷や容量が生じます。

 

・ログサーバエージェント(LSA)方式

ログサーバエージェント機能により、トランザクションログデータをDBMoto独自のバイナリログ形式として保管し、このバイナリログから更新情報を取得する方式です。バイナリログを保管する領域が必要となりますが、DBMotoから変更点を感知するためのDBへの接続数が最適化されます。現在の対応DBはOracle 、MySQL、IBM Informixです。

※v9.5からはPostgreSQL、AS/400、MS SQLServerも対応しております。

関連したトピックス

コメントを残す

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

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