web-dev-qa-db-ja.com

Postgres 9.6の物理的および論理的レプリケーション

ストリーミングレプリケーション(物理)を使用したマスター/スレーブクラスターレプリケーションでPostgres9.6を使用しています。

新しいスレーブサーバーデータベースを追加したいのですが、このデータベースには論理レプリケーションがあります。

私はいくつかの設定で試しましたが、それは不可能でした:( https://github.com/guedim/postgres-streaming-replication

これが私の心の中にあるイメージです:

Added picture inline

WALがcreatedの場合に取得する情報の量を定義するため、すべてのサーバーで同じwal_levelを使用することをお勧めします(プライマリでは、これらのファイルはスタンバイにストリーミングされます) )。

利用可能なwal_level設定(各設定が各WALに下位レベルのすべての情報だけでなく、より多くの情報を書き込む)は、次のとおりです。

  • minimal
  • replica(古い値archiveおよびhot_standbyはこれにマップされます)
  • logical

この場合、すべてにwal_level = logicalを設定します。 WALは1か所でしか作成されないため、問題はありません。また、スタンバイをマスターに昇格させても機能し続けるという追加の利点があります。

図でhot_standbyについて言及しましたが、これはreplicaに名前が変更されました(ただし、どちらも引き続き機能します)。

このトポロジーは問題ないはずですが、次のようなものを使用します。スタンバイからの論理複製はありますが、これをマスターからのものに移動する必要があります。これをPostgreSQL 10のスタンバイから取得できるようにするための拒否されたパッチがありました。うまくいけば、これはPostgreSQL 11でも発生します。

1
J. Sewell