差分レプリケーションでどのようにデータの整合性がとられているか


DBMotoの差分レプリケーション(ミラーリング)は、ソースDBのトランザクションログをデフォルトで1分間隔で参照し、更新対象があればターゲットDBへ反映する手法を取っています。

DBMotoは常に下記の流れで最新のトランザクションIDを保持しているため、データの整合性をとったレプリケーションが可能となります。

・ソースDBのトランザクションを参照

・更新対象があればターゲットDBへ反映

・DBMoto内でトランザクションIDを最新にする

(以下繰り返し)

※この流れは、言い換えるとターゲットDBへ反映しなければDBMotoのトランザクションIDを更新しないことになります。
つまり、万が一ネットワーク障害等で一時的にDBMotoからDBにアクセスできない状態になった場合でもDBMoto内部のトランザクションIDは保持され続けますので、障害復旧後から正常通りレプリケーションが再開され、データの不整合は発生しません。

DBMoto内で保持されている現在のトランザクションIDはレプリケーションプロパティから確認することができます。

また、諸事情によりトランザクションIDを任意の位置に戻したり、特定の日時の位置に戻してレプリケーションをやり直すことも可能です。

関連したトピックス

コメントを残す

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

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