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