異種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も対応しております。
関連したトピックス
- SQL Server のデータベースパフォーマンス監視の重要性 [DPA]
- PostgreSQLとMySQLのデータベースとしての機能の違い
- 時代はマルチ・データベース管理へ
- マルチデータベース管理の旅へ
- RDBからTeradata/Hadoopへのレプリケーション対応、Oracle/MySQLパフォーマンス向上等・・・DBMoto 9 最新機能
- PostgreSQLからの差分連携(LSA)セットアップ手順【Syniti DR】
- ユーザ・データベースの最適化とOracle支出の削減
- RDS PostgreSQLからの差分セットアップ【Syniti DR 9.6】
- Log Server Agent for Oracleの設定手順【DBMoto9.x】
- 進化するクエリと PostgreSQLの台頭:そのデータベー スパフォーマンス重要性