스포츠 토토 베트맨창조를 지원합니다 A"따뜻한 대기"데이터베이스 서버. 생산 준비 프로그램으로 설계되었으며 구체적으로 필요한 경우 사용자 정의 가능한 템플릿 수정.
스포츠 토토 베트맨대기Restore_command표준 아카이브 복구를 따뜻한 대기로 바꾸는 데 필요했습니다. 작업. 다른 구성이 필요합니다 기본 서버 매뉴얼에 설명되어 있습니다 (참조섹션 25.2).
스포츠 토토 베트맨기능 포함하다:
C로 작성된 것이 너무 휴대하기 쉽고 설치가 쉽습니다
수정하기 쉬운 소스 코드 (특별히 지정된) 자신의 필요에 맞는 섹션
이미 Linux 및 Windows에서 테스트되었습니다
사용할 대기 서버를 구성하려면스포츠 토토 베트맨, 이것을 그것에 넣습니다복구 .conf구성 파일 :
Restore_command = 'PG_STANDBYArchivedir%f %p %r '
여기서Archivediris WAL 세그먼트 파일을 복원 해야하는 디렉토리.
전체 구문스포츠 토토 베트맨의 명령 줄은
스포츠 토토 베트맨 [ 옵션 ... ]Archivelocation Nextwalfile xlogfilepath[ RestartWalfile ]
내에서 사용될 때Restore_command, 그만큼%f및%p매크로가 지정되어야합니다Nextwalfileandxlogfilepath각각을 제공합니다 복원에 필요한 실제 파일 및 경로.
ifRestartWalfileis 정상적으로를 사용하여 지정%r매크로, 그러면이 파일의 논리적으로 모든 웨일 파일이 다음과 같습니다. 에서 제거Archivelocation. 이렇게하면 유지해야 할 파일 수를 최소화합니다. 충돌 범위 기능을 보존하는 동안. 이것의 사용 매개 변수는이면 적절합니다.Archivelocation는 일시적인 준비입니다 이 특정 대기 서버의 영역이지만아님언제Archivelocationa 장기 WAL 아카이브 영역.
스포츠 토토 베트맨가정Archivelocation는 디렉토리입니다 서버 소유 사용자가 읽을 수 있습니다. 만약에RETARTWALFILE(또는-K) 지정되어 있습니다.Archivelocation디렉토리가 있어야합니다 쓰기도 가능합니다.
a에 실패하는 두 가지 방법이 있습니다."따뜻한 대기"마스터 일 때 데이터베이스 서버 서버 실패 :
스마트 장애 조치에서 서버는 이후에 나타납니다 아카이브에 사용 가능한 모든 웨이스 파일을 적용합니다. 이것 대기 서버가 뒤쳐져 있었지만 적용되지 않은 Wal이 많으면 it 대기 서버가되기까지 오랜 시간이 걸릴 수 있습니다. 준비가 된. 스마트 장애 조치를 트리거하려면 트리거 파일을 만듭니다 단어 포함스마트, 또는 그냥 만들고 비워 두십시오.
빠른 장애 조치에서 서버가 나타납니다 즉시. 아카이브의 모든 웨이스 파일 아직 적용되지 않았으며 모든 거래는 해당 파일이 손실되었습니다. 빠른 장애 조치를 트리거하려면 생성하십시오 트리거 파일과 단어 쓰기빠른안으로.스포츠 토토 베트맨도 구성 할 수도 있습니다 새 월 파일이 없으면 빠른 장애 조치를 자동으로 실행하십시오. 정의 된 간격 내에 나타납니다.
스포츠 토토 베트맨다음 명령 줄 인수 :
useCP또는COPYWAL 파일을 복원하는 명령 보관소. 이것은 유일한 지원 행동입니다 옵션은 쓸모가 없습니다.
디버그 로깅 출력을 많이 인쇄Stderr.
파일 제거아치형더 이상 현재 버전을 유지하기 전에이 많은 책치 파일보다 아카이브에서. 0 (기본값)은 제거하지 않는 것을 의미합니다 의 모든 파일보관. 이 매개 변수 이면 조용히 무시됩니다.RestartWalfile이후 지정되었습니다 이 사양 방법은 결정에 더 정확합니다 올바른 아카이브 컷오프 지점. 이 매개 변수 사용 이다감가 상각postgresql8.3; 그것 A를 지정하는 데 더 안전하고 효율적입니다RestartWalfile매개 변수. 너무 작은 설정은 파일을 제거 할 수 있습니다. 대기 서버를 다시 시작하는 데 여전히 필요하지만 너무 큰 설정은 아카이브 공간을 낭비합니다.
사본을 재 시도하기 위해 최대 횟수를 설정 실패한 경우 명령 (기본값 3). 각각의 실패 후, 우리 대기Sleeptime * num_retries대기 시간이 점차 증가합니다. 기본적으로 우리는 할 것입니다 5 초, 10 초, 그 다음 15 초를 기다리기 전에 대기 서버로 다시 실패. 이것은 될 것입니다 회복의 끝으로 해석되면 대기가 올 것입니다. 결과적으로 완전히 업.
초 수 (최대 60, 기본 5)로 설정 WAL 파일이 복원 될지 확인하기 위해 테스트 사이의 수면 아카이브에서 아직 사용할 수 있습니다. 기본 설정은입니다 반드시 권장되는 것은 아닙니다. 찾다섹션 25.2토론을 위해.
존재로 인한 트리거 파일을 지정하십시오 장애 조치. 구조화 된 것을 사용하는 것이 좋습니다 어떤 서버가 있는지에 대한 혼란을 피하기 위해 파일 이름 동일한 시스템에 여러 서버가 존재할 때 트리거됩니다. 예를 들어/tmp/pgsql.trigger.5432.
다음을 기다릴 최대 초 수를 설정 WAL 파일, 그 후 빠른 장애 조치가 수행됩니다. 0의 설정 (기본값)은 영원히 기다리는 것을 의미합니다. 그만큼 기본 설정이 반드시 권장되는 것은 아닙니다. 찾다PostgreSQL : 문서 : 9.1 : 로그 선집 토토 결과 서버논의.
Linux 또는 UNIX 시스템에서 사용할 수 있습니다.
archive_command = 'cp %p .../archive/ %f' Restore_command = 'PG_STANDBY -D -S 2 -T /TMP/PGSQL.TRIGGER.5442 .../ARCHIVE %F %P %R 2 standby.log' recover_end_command = 'rm -f /tmp/pgsql.trigger.5442'
아카이브 디렉토리가 물리적으로 위치한 곳 대기 서버,archive_commandNFS에 걸쳐 액세스하고 있지만 파일은 대기에 로컬입니다 (사용 가능ln). 이것은 :
생산 디버깅 출력에서standby.log
다음 WAL 파일에 대한 수표 사이에 2 초 동안 수면 유효성
트리거 파일이 전화 할 때만 대기 중지/tmp/pgsql.trigger.5442나타나고 내용에 따라 장애 조치를 수행
복구가 종료 될 때 트리거 파일 제거
아카이브에서 필요하지 않은 파일을 제거합니다 예배 규칙서
Windows에서 사용할 수 있습니다 :
archive_command = 'copy %p ... \\ archive \\ %f' Restore_command = 'PG_STANDBY -D -S 5 -T C : \ PGSQL.TRIGGER.5442 ... \ Archive %F %P %R 2 standby.log' recover_end_command = 'del c : \ pgsql.trigger.5442'
백 슬래시를 두 배로 늘려야한다는 점에 유의하십시오archive_command그러나notinRestore_command또는복구 _end_command. 이것은 :
사용COPY복원 명령 Archive의 WAL 파일
생산 디버깅 출력에서standby.log
다음 WAL 파일에 대한 수표 사이에 5 초 동안 수면 유효성
트리거 파일이 전화 할 때만 대기 중지C : \ pgsql.trigger.5442나타나서 수행하십시오 내용에 따른 장애 조치
복구가 종료 될 때 트리거 파일 제거
아카이브에서 필요하지 않은 파일을 제거합니다 예배 규칙서
thecopyWindows 세트의 명령 파일 이전의 최종 파일 크기는 완전히 복사되었으며 일반적으로 혼동 될 것입니다스포츠 토토 베트맨. 그러므로스포츠 토토 베트맨WAITSSleeptime일단 올바른 파일이 나타나면 초 크기. gnuwin32 'sCP파일 크기를 설정합니다 파일 사본이 완료된 후에 만.
Windows 예제가 사용하기 때문에Copy양쪽 끝에서, 둘 중 하나 또는 두 서버 모두에 액세스 할 수 있습니다. 네트워크를 통한 아카이브 디렉토리.
스포츠 토토 베트맨와 함께 일PostgreSQL8.2 및 나중에.
PostgreSQL8.3 제공%r매크로.스포츠 토토 베트맨마지막 파일을 알고 있습니다 유지해야합니다. 와 함께PostgreSQL8.2,-K아카이브 정리가 있으면 옵션을 사용해야합니다 필수의. 이 옵션은 8.3으로 사용할 수 있지만 사용은 다음과 같습니다. 감가 상승.
PostgreSQL8.4 제공복구 _end_command옵션. 없이 이 옵션 남은 트리거 파일은 위험 할 수 있습니다.
Simon Riggs<simon@2ndquadrant.com