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 つのサブスクライバーは、複数のオリジンからの変更をマージし、自動および構成可能な競合解決 (マルチマスターに必要なすべての側面ではなく一部の側面) を使用して、変更間の競合を検出できます。

  • カスケード レプリケーションは、変更セット転送の形式で実装されます。