【製品情報】LiveCompare 3.0.4

音声ガイド

概要

1. EDB LiveCompareとは?
EDB LiveCompareは、任意の数のデータベースを比較し、それらが同一であることを検証するために設計されたコマンドラインツールです。行レベルで論理的なデータの整合性を検証します。差異が見つかった場合、比較レポートや具体的な差異のリストを作成するだけでなく、不整合を修正してデータベースを同期させるためのDMLスクリプト(データ操作言語)を生成します。

PostgreSQL、EDB Postgres Extended、EDB Postgres Advanced Server、およびOracle(Postgresとの比較対象データソースとして)を含む、様々なデータベース技術をサポートしています。

2. LiveCompareのメリット
LiveCompareを使用する主なメリットは以下の通りです。

  • データの整合性検証: データベース移行(例:OracleからPostgres)、サーバーのアップグレード、物理または論理レプリケーションの検証など、様々なシナリオで論理的なデータの整合性を保証します。
  • 修正の自動化: 不整合を解決するためのSQLスクリプト(INSERT、UPDATE、DELETE)を自動的に生成し、手動作業の手間を省きます。
  • 本番環境での安全性: 本番システム上で読み取り専用(Read-only)のワークロードとして実行されるよう設計されており、システム負荷を管理するためのチューニングパラメータも備わっています。
  • 災害復旧のサポート: フェイルオーバーや「スプリットブレイン」といったインシデント発生後に、旧プライマリと新プライマリの間にどのようなデータの差異があるかを正確に特定するのに役立ちます。
  • 誤検知(False Positives)の処理: 実際のデータの欠損や不整合と、レプリケーションラグ(遅延)による一時的な差異を区別するメカニズムを備えています。

3. 上記のメリットを実現する仕組み
LiveCompareは、以下のメカニズムによってこれらのメリットを実現しています。

  • 並列処理: 複数のワーカープロセス(max_parallel_workersで設定可能)を使用し、複数のテーブルや大規模テーブルの分割チャンクを並行して比較します。
  • 比較アルゴリズム: パフォーマンスを最適化するために、高度なハッシュアルゴリズム(block_hash および row_hash)を使用します。生データを最初から比較するのではなく、データブロックや行のハッシュ値を比較し、ハッシュが一致しない場合にのみ完全な行データを取得して比較します(full_rowモードが強制されている場合を除く)。
  • コンセンサス(合意)ロジック: 複数のノードを比較する際、多数決(コンセンサス)または定義された「信頼できる情報源(source of truth)」に基づいて正しいデータの状態を判断し、どのデータベースを更新すべきかを決定します。
  • 再チェック(Recheck)モード: 特定の「再チェック」モードを備えています。差異が見つかった場合、ユーザーは後で再チェックを実行できます。レプリケーションが追いついてデータが同期されていれば、その差異はレポートから削除され、恒久的な不整合のみが報告されるようになります。
  • 効率的なデータ取得: 負荷シナリオやテーブルサイズに合わせて最適化するため、prepared_statements(最も安全でサーバー負荷が少ない)やサーバーサイドカーソルなど、異なるデータ取得モードをサポートしています。

4. バージョン 3.0.4の新機能
ドキュメントの 13ページ にあるリリースノートによると、LiveCompare 3.0.4(2025年9月2日リリース)には以下の更新が含まれています。

  • バグ修正: recheck(再チェック)コマンドが機能していなかった問題が修正されました(Address 51624)。

(注:ARM64のサポートやPython 3.10のサポートといった大きな変更はバージョン3.0.1で導入されており、バージョン3.0.4は上記の修正に焦点を当てたメンテナンスリリースです。)

日本語マニュアルを見る
※ 日本語マニュアルの閲覧には ユーザー登録(パスワード)が必要です。