タイプ: enum
デフォルト: origin
コンテキスト: superuser
再起動: false
値: [origin, replica, local]

現在のセッションでのレプリケーションに関連したトリガおよびルールの発行を制御します。この変数を設定するにはスーパーユーザ権限が必要で、かつ、これまでにキャッシュされた問い合わせ計画が破棄されることになります。取り得る値は、origin(デフォルト)、replicalocalです。

この設定の使い方の趣旨としては、レプリケーションされた更新を適用する際にロジカルレプリケーションシステムがreplicaに設定するということです。このことによる効果としては、(デフォルトの設定から変更されていない)トリガとルールはレプリカ上では起動されない、ということです。更なる情報は、sql-altertable節のENABLE TRIGGERENABLE RULEをご覧ください。

PostgreSQLはoriginlocalの設定を内部的に同じものとして扱います。サードパーティのレプリケーションシステムは内部的な目的、たとえばlocalを使ってレプリケーションされるべきでないセッションを指定するためにこれら2つの値を使って構いません。

外部キーはトリガとして実装されているため、このパラメータをreplicaとすることによって同時にすべての外部キー検査が無効になります。このことにより、正しく使用しないと、データを不整合状態にしてしまう可能性があります。

推奨事項 [EN]

Only gets changed for databases which are taking part in a replication chain. In that case, "origin" servers fire replication (and other) triggers, and "replica" do not. Part of the generic replication hooks which are used by Slony and Bucardo.

件のコメント