토토 캔 — a 생성을 지원합니다.PostgreSQL웜 대기 서버
토토 캔 [옵션...] 보관위치 다음파일 walfilepath [restartwalfile]
토토 캔a 생성을 지원합니다.“따뜻한 대기”데이터베이스 서버. 이는 즉시 제작 가능한 프로그램일 뿐만 아니라 특정 수정이 필요한 경우 맞춤설정할 수 있는 템플릿으로 설계되었습니다.
토토 캔기다리는 역할을 하도록 설계되었습니다.restore_command, 이는 표준 아카이브 복구를 웜 대기 작업으로 전환하는 데 필요합니다. 다른 구성도 필요하며, 이에 대한 모든 내용은 기본 서버 매뉴얼에 설명되어 있습니다(참조)PostgreSQL : 문서 : 12 : 26.2. 로그쉽 롤 토토 서버).
사용할 대기 서버를 구성하려면토토 캔, 이것을 그 안에 넣어postgresql.conf구성 파일:
restore_command = '토토 캔archiveDir%f %p %r'
어디에서archiveDir은 WAL 세그먼트 파일을 복원해야 하는 디렉터리입니다.
만약restartwalfile는 일반적으로를 사용하여 지정됩니다.%r매크로를 사용하면 이 파일보다 논리적으로 앞선 모든 WAL 파일이 다음에서 제거됩니다.보관위치. 이렇게 하면 충돌-다시 시작 기능을 유지하면서 유지해야 하는 파일 수를 최소화할 수 있습니다. 이 매개변수의 사용은 다음과 같은 경우에 적합합니다.보관위치은 이 특정 대기 서버의 임시 준비 영역이지만아님때보관위치장기 WAL 아카이브 영역으로 사용됩니다.
토토 캔그렇다고 가정보관위치은 서버 소유 사용자가 읽을 수 있는 디렉토리입니다. 만일restartwalfile(또는-k)가 지정되면,보관위치디렉토리도 쓰기 가능해야 합니다.
장애 조치를 수행하는 방법에는 두 가지가 있습니다.“따뜻한 대기”마스터 서버가 실패할 때 데이터베이스 서버:
스마트 장애 조치에서는 아카이브에서 사용 가능한 모든 WAL 파일을 적용한 후 서버가 가동됩니다. 이렇게 하면 대기 서버가 뒤처져도 데이터 손실이 전혀 발생하지 않지만, 적용되지 않은 WAL이 많으면 대기 서버가 준비되기까지 오랜 시간이 걸릴 수 있습니다. 스마트 장애 조치를 트리거하려면 다음 단어가 포함된 트리거 파일을 만듭니다.똑똑한, 아니면 그냥 만들고 비워두세요.
빠른 장애 조치에서는 서버가 즉시 가동됩니다. 아직 적용되지 않은 아카이브의 모든 WAL 파일은 무시되며 해당 파일의 모든 트랜잭션은 손실됩니다. 빠른 장애 조치를 트리거하려면 트리거 파일을 만들고 다음 단어를 씁니다.빠르게그 안으로.토토 캔정의된 간격 내에 새 WAL 파일이 나타나지 않으면 자동으로 빠른 장애 조치를 실행하도록 구성할 수도 있습니다.
토토 캔다음 명령줄 인수를 허용합니다:
-c사용cp또는복사아카이브에서 WAL 파일을 복원하는 명령입니다. 이는 지원되는 유일한 동작이므로 이 옵션은 쓸모가 없습니다.
-d많은 디버그 로깅 출력을 인쇄합니다.stderr.
-k다음에서 파일 제거보관위치그래서 현재 파일 이전의 이 WAL 파일 수 이상이 아카이브에 보관되지 않도록 합니다. 0(기본값)은 파일을 제거하지 않음을 의미합니다.보관위치. 다음과 같은 경우 이 매개변수는 자동으로 무시됩니다.restartwalfile이 지정됩니다. 왜냐하면 해당 지정 방법이 올바른 아카이브 컷오프 지점을 결정하는 데 더 정확하기 때문입니다. 이 매개변수의 사용은 다음과 같습니다.지원 중단됨현재PostgreSQL8.3; a를 지정하는 것이 더 안전하고 효율적입니다.restartwalfile매개변수. 설정이 너무 작으면 대기 서버를 다시 시작하는 데 필요한 파일이 제거될 수 있으며, 설정이 너무 크면 아카이브 공간이 낭비됩니다.
-r 최대 재시도복사 명령이 실패할 경우 재시도할 최대 횟수를 설정합니다(기본값 3). 실패할 때마다 우리는 기다립니다.수면 시간 * num_retries대기 시간이 점차 증가합니다. 따라서 기본적으로 대기 서버에 실패를 보고하기 전에 5초, 10초, 15초를 기다립니다. 이는 복구가 종료된 것으로 해석되며 결과적으로 대기 모드가 완전히 시작됩니다.
-s 수면 시간복원될 WAL 파일이 아직 아카이브에서 사용 가능한지 확인하기 위해 테스트 사이에 대기 시간(최대 60초, 기본값 5)을 설정합니다. 기본 설정이 반드시 권장되는 것은 아닙니다. 상담하세요PostgreSQL : 문서 : 12 : 26.2. 로그쉽 롤 토토 서버토론용.
-t 트리거파일장애 조치를 유발해야 하는 트리거 파일을 지정하십시오. 동일한 시스템에 여러 서버가 존재할 때 어떤 서버가 트리거되는지 혼동하지 않으려면 구조화된 파일 이름을 사용하는 것이 좋습니다. 예를 들어/tmp/pgsql.trigger.5432.
-V--버전인쇄토토 캔버전 및 종료.
-w 최대 대기 시간다음 WAL 파일을 기다리는 최대 시간(초)을 설정하세요. 그 후 빠른 장애 조치가 수행됩니다. 0(기본값)으로 설정하면 영원히 대기한다는 의미입니다. 기본 설정이 반드시 권장되는 것은 아닙니다. 상담하세요PostgreSQL : 문서 : 12 : 26.2. 로그쉽 롤 토토 서버토론용.
-?--도움말다음에 관한 도움말 보기토토 캔명령줄 인수 및 종료.
토토 캔다음과 함께 작동하도록 설계되었습니다.PostgreSQL8.2 이상.
PostgreSQL8.3은 다음을 제공합니다%r다음을 수행하도록 설계된 매크로토토 캔보관해야 할 마지막 파일을 알아보세요. 와 함께PostgreSQL8.2, 그-k17111_17230
PostgreSQL8.4는 다음을 제공합니다recovery_end_command옵션. 이 옵션이 없으면 남은 트리거 파일이 위험할 수 있습니다.
토토 캔C로 작성되었으며 수정하기 쉬운 소스 코드가 있으며 필요에 따라 수정할 수 있도록 특별히 지정된 섹션이 있습니다.
Linux 또는 Unix 시스템에서는 다음을 사용할 수 있습니다.
archive_command = 'cp %p .../archive/%f' Restore_command = '토토 캔 -d -s 2 -t /tmp/pgsql.trigger.5442 .../archive %f %p %r 2standby.log' Recovery_end_command = 'rm -f /tmp/pgsql.trigger.5442'
여기서 아카이브 디렉토리는 대기 서버에 물리적으로 위치하므로archive_commandNFS를 통해 액세스하고 있지만 파일은 대기 서버에 로컬입니다(사용 가능ln). 이는 다음을 수행합니다.
디버깅 출력 생성대기.로그
다음 WAL 파일 가용성 확인 사이에 2초 동안 대기
트리거 파일이 호출될 때만 대기 중지/tmp/pgsql.trigger.5442표시되고 내용에 따라 장애 조치를 수행합니다.
복구가 끝나면 트리거 파일을 제거
아카이브 디렉터리에서 더 이상 필요하지 않은 파일을 제거
Windows에서는 다음을 사용할 수 있습니다.
archive_command = '%p 복사...\\archive\\%f' Restore_command = '토토 캔 -d -s 5 -t C:\pgsql.trigger.5442 ...\archive %f %p %r 2standby.log' Recovery_end_command = 'del C:\pgsql.trigger.5442'
백슬래시를 두 배로 늘려야 한다는 점에 유의하세요.archive_command하지만아님에서restore_command또는recovery_end_command. 이는 다음을 수행합니다.
다음을 사용하세요복사아카이브에서 WAL 파일을 복원하는 명령
디버깅 출력 생성standby.log
다음 WAL 파일 가용성 확인 사이에 5초 동안 대기
트리거 파일이 호출될 때만 대기 중지C:\pgsql.trigger.5442표시되고 내용에 따라 장애 조치를 수행합니다.
복구 종료 시 트리거 파일 제거
아카이브 디렉토리에서 더 이상 필요하지 않은 파일을 제거
그복사Windows의 명령은 파일이 완전히 복사되기 전에 최종 파일 크기를 설정하므로 일반적으로 혼동될 수 있습니다.토토 캔. 그러므로토토 캔대기수면 시간초 후에 적절한 파일 크기가 확인됩니다. GNUWin32의cp파일 복사가 완료된 후에만 파일 크기를 설정합니다.
Windows 예제에서는 다음을 사용하므로복사양쪽 끝에서 서버 중 하나 또는 둘 다 네트워크를 통해 아카이브 디렉토리에 액세스할 수 있습니다.
사이먼 리그스<simon@2ndquadrant.com