pglogical 2¶
pglogical 2 拡張機能は、パブリッシュ/サブスクライブ モデルを使用して、PostgreSQL の論理ストリーミングレプリケーションを提供します。 EDB Postgres Distributed の一部として開発された技術に基づいています。
以下の用語を使用して、ノード間のデータ ストリームを説明します。以前の Slony テクノロジーから意図的に再利用されています。
ノード - PostgreSQL データベース インスタンス
プロバイダーとサブスクライバー - ノードが担う役割
レプリケーション セット - テーブルのコレクション
pglogical は最新のインコア機能を利用しているため、次のバージョン制限があります。
プロバイダーおよびサブスクライバー ノードは PostgreSQL 9.4+ を実行する必要があります
レプリケーション元のフィルタリングと競合検出には、PostgreSQL 9.5 以降が必要です。
さらに、サブスクライバーは Postgres-XL 9.5+ にすることができます
サポートされているユースケースは次のとおりです。
メジャー バージョン間のアップグレード (上記の制限がある場合)
データベースの完全複製
レプリケーション セットを使用したテーブル セットの選択的レプリケーション
パブリッシャー側またはサブスクライバー側でのテーブル行の選択的複製 (row_filter)
パブリッシャー側でのテーブル列の選択的レプリケーション
複数の上流サーバーからのデータ収集/マージ
アーキテクチャの詳細:
pglogical は、物理ストリーミングレプリケーションのようにサーバー全体のレベルではなく、データベースごとのレベルで動作します
追加のディスク書き込みオーバーヘッドを発生させることなく、1 つのプロバイダーが複数のサブスクライバーにフィードできます
1 つのサブスクライバーは、複数のオリジンからの変更をマージし、自動および構成可能な競合解決 (マルチマスターに必要なすべての側面ではなく一部の側面) を使用して、変更間の競合を検出できます。
カスケード レプリケーションは、変更セット転送の形式で実装されます。