タイプ: | enum |
デフォルト: | origin |
コンテキスト: | superuser |
再起動: | false |
値: | [origin, replica, local] |
現在のセッションでのレプリケーションに関連したトリガおよびルールの発行を制御します。この変数を設定するにはスーパーユーザ権限が必要で、かつ、これまでにキャッシュされた問い合わせ計画が破棄されることになります。取り得る値は、origin
(デフォルト)、replica
、local
です。
この設定の使い方の趣旨としては、レプリケーションされた更新を適用する際にロジカルレプリケーションシステムがreplica
に設定するということです。このことによる効果としては、(デフォルトの設定から変更されていない)トリガとルールはレプリカ上では起動されない、ということです。更なる情報は、sql-altertable節のENABLE TRIGGER
とENABLE RULE
をご覧ください。
PostgreSQLはorigin
とlocal
の設定を内部的に同じものとして扱います。サードパーティのレプリケーションシステムは内部的な目的、たとえば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.