이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 18.5. 서버 토토 커뮤니티버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

18.5. 서버 롤 토토

데이터베이스 서버를 롤 토토하는 방법에는 여러 가지가 있습니다. 마스터에 다양한 신호를 보내 롤 토토 유형을 제어합니다.포스트그레프로세스.

SIGTERM

이것은스마트 롤 토토모드. 받은 후SIGTERM, 서버는 새로운 연결을 허용하지 않지만 기존 세션이 정상적으로 작업을 종료하도록 허용합니다. 모든 세션이 종료된 후에만 종료됩니다. 서버가 온라인 백업 모드인 경우 온라인 백업 모드가 더 이상 활성화되지 않을 때까지 추가로 기다립니다. 백업 모드가 활성화되어 있는 동안 새 연결은 여전히 ​​허용되지만 슈퍼유저에게만 허용됩니다(이 예외는 슈퍼유저가 온라인 백업 모드를 종료하기 위해 연결하는 것을 허용합니다). 스마트 롤 토토가 요청되었을 때 서버가 복구 중인 경우 모든 일반 세션이 종료된 후에만 복구 및 스트리밍 복제가 중지됩니다.

SIGINT

이것은빠른 롤 토토모드. 서버는 새로운 연결을 허용하지 않고 기존의 모든 서버 프로세스를 보냅니다.SIGTERM, 이로 인해 현재 트랜잭션이 중단되고 즉시 롤 토토됩니다. 그런 다음 모든 서버 프로세스가 종료될 때까지 기다렸다가 최종적으로 종료됩니다. 서버가 온라인 백업 모드인 경우 백업 모드가 종료되어 백업이 쓸모 없게 됩니다.

SIGQUIT

이것은즉시 롤 토토모드. 서버가 전송합니다SIGQUIT모든 하위 프로세스에 적용하고 롤 토토될 때까지 기다립니다. 5초 이내에 롤 토토되지 않는 경우 전송됩니다.SIGKILL. 마스터 서버 프로세스는 일반적인 데이터베이스 종료 처리를 수행하지 않고 모든 하위 프로세스가 종료되는 즉시 롤 토토됩니다. 이렇게 하면 다음 시작 시 복구(WAL 로그 재생을 통해)됩니다. 이는 긴급 상황에만 권장됩니다.

pg_ctl프로그램은 서버를 종료하기 위해 이러한 신호를 보내는 편리한 인터페이스를 제공합니다. 또는 다음을 사용하여 직접 신호를 보낼 수 있습니다.죽여Windows 이외의 시스템에서. 그만큼PID포스트그레스프로세스는 다음을 사용하여 찾을 수 있습니다.ps프로그램 또는 파일에서postmaster.pid데이터 디렉토리에 있습니다. 예를 들어 빠른 롤 토토를 수행하려면:

$ kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`

중요

사용하지 않는 것이 가장 좋습니다SIGKILL서버를 롤 토토합니다. 이렇게 하면 서버가 공유 메모리 및 세마포어를 해제하는 것을 방지할 수 있으며, 새 서버를 시작하기 전에 수동으로 해제해야 할 수도 있습니다. 게다가SIGKILL죽인다포스트그레신호를 하위 프로세스에 전달하지 않고 처리하므로 개별 하위 프로세스도 직접 롤 토토해야 합니다.

다른 세션이 계속되도록 허용하면서 개별 세션을 종료하려면 다음을 사용하십시오.pg_terminate_backend()(참조표 9.78) 또는 다음을 보내세요.SIGTERM세션과 관련된 하위 프로세스에 신호를 보냅니다.