본문으로 건너뛰기
session_replication_role

session_replication_role

버전기본값context타입
14userenum
15superuserenum
16superuserenum
17superuserenum
18superuserenum
19superuserenum

현재 세션에서 replication 관련 trigger와 rule의 발동 여부를 제어한다.

가능한 값은 origin(기본값), replica, local이다. logical replication 시스템이 변경 사항을 적용(apply)할 때 replica로 설정하는 것이 의도된 사용 방식이다. replica로 설정된 세션에서는 기본 구성 상태의 trigger와 rule이 발동하지 않는다. 개별 trigger·rule의 발동 조건은 ALTER TABLEENABLE TRIGGER·ENABLE RULE 절로 조정할 수 있다.

PostgreSQL 내부적으로 originlocal은 동일하게 취급하며, 서드파티 replication 시스템이 두 값을 자체 용도로 구분해 쓸 수 있다 — 예를 들어 local을 replication 대상에서 제외할 세션 표시로 쓰는 식이다. 이 파라미터를 바꾸면 이전에 캐시된 query plan은 모두 버려진다. superuser와 적절한 SET 권한을 가진 사용자만 변경할 수 있다.

운영 노트: foreign key 제약은 내부적으로 trigger로 구현돼 있어, 이 값을 replica로 바꾸면 foreign key 검사까지 전부 꺼진다. 대량 적재나 마이그레이션에서 trigger를 잠시 끄는 용도로 쓰기도 하는데, 그동안 참조 무결성이 깨진 데이터가 그대로 들어올 수 있다는 점을 감수해야 한다.

출처: PostgreSQL 18 문서