web-dev-qa-db-ja.com

PostgresQLクラスターは、同じデータベースに対して同期および非同期のスタンバイを同時に持つことができますか?

この質問では、 PostgreSQLでの書き込みの懸念Laurenz Albe は、データがPostgresSQLにコミットされるときにスタンバイサーバーのセットを制御する方法を説明し、それが別の質問を生みました。 N個のスタンバイが必要で、N個のMサブセットに対して同期レプリケーションを有効にしたい場合はどうすればよいですか?ユースケースとしては、コールドバックアップが考えられます。 N-Mサブセットのデータの不整合は気にしません。NスタンバイのMサブセットでそれを必要とするだけです。

1
Edik Mkoyan

はい、

synchronous_standby_names と呼ばれるこの設定があります。

ANY 3 (r1, r2, r3, r4)のような「少なくとも3つのスタンバイが応答するとすぐにコミットを進める」という式を指定できます

正確なレプリケーション名を指定する場合は、r1,r4のように名前を付けます。

以下は使用例です。

ALTER SYSTEM SET synchronous_standby_names TO 'ANY 3 (r1, r2, r3, r4)';
SELECT pg_reload_conf();

:スタンバイ名(r1、r2 ..)は、スタンバイの application_name オプションによって定義されます primary_conninfo 設定値。

1
Sahap Asci