※ ERROR: canceling statement due to conflict with recovery※ DETAIL: User was holding shared buffer pin for too long. 안녕하세요. 듀스트림입니다. 오늘 포스팅은 PostgerSQL HA 환경을 운영하다 보면 자주 만나게 되는 복구 충돌 오류(recovery conflict)에 대한 내용입니다.1. 발생 원인 요약Hot Standby 환경에서의 Read 쿼리 충돌슬레이브(standby) 노드에서 SELECT 같은 읽기 쿼리를 실행 중일 때, 동시에 마스터 노드에서는 해당 페이지를 변경하는 WAL 로그를 생성 및 전송합니다.슬레이브는 WAL을 즉시 replay해야 하지만, 해당 페이지가 읽히고 있어서 shared bu..