이전 섹션에 설명 된 내장 스포츠 토토 사이트 모드의 대안은 a를 사용하는 것입니다.Restore_command
아카이브 위치를 폴링합니다. 이것은 8.4 이하 버전에서 사용할 수있는 유일한 옵션이었습니다. 참조PostgreSQL이것의 참조 구현 모듈.
이 모드에서 서버는 한 번에 한 번에 WAL 파일을 적용하므로 스포츠 토토 사이트 서버를 쿼리에 사용하면 마스터의 조치와 스포츠 토토 사이트에서 조치가 보이는 시간에 따라 WAL 파일을 채우는 데 걸리는 시간에 해당합니다..archive_timeout
지연을 더 짧게하는 데 사용될 수 있습니다. 또한 스트리밍 복제를이 방법과 결합 할 수 없습니다.
기본 서버 및 스포츠 토토 사이트 서버에서 발생하는 작업은 일반적인 연속 보관 및 복구 작업입니다. 두 데이터베이스 서버 간의 유일한 접촉 지점은 공유 : 아카이브에 대한 기본 쓰기, 아카이브에서 스포츠 토토 사이트 읽기를 공유하는 WAL 파일의 아카이브입니다. 별도의 기본 서버의 WAL 아카이브가 함께 혼합되거나 혼란스러워지지 않도록주의해야합니다. 스포츠 토토 사이트 작동에만 필요한 경우 아카이브가 크지 않아도됩니다.
두 개의 느슨하게 결합 된 서버를 함께 작동하게 만드는 마법은 단순히 A입니다.Restore_Command
다음 WAL 파일을 요청할 때 기본에서 사용할 수 있기를 기다리는 스포츠 토토 사이트에서 사용됩니다. 정상 복구 처리는 WAL 아카이브에서 파일을 요청하여 파일을 사용할 수없는 경우 실패를보고합니다. 스포츠 토토 사이트 처리의 경우 다음 WAL 파일을 사용할 수없는 것이 정상이므로 스포츠 토토 사이트는 나타날 때까지 기다려야합니다. 끝나는 파일의 경우.History
스포츠 토토 사이트 할 필요가 없으며 0이 아닌 리턴 코드를 반환해야합니다. 스포츠 토토 사이트Restore_command
다음 WAL 파일의 존재를 위해 폴링 후 루프가있는 사용자 정의 스크립트로 작성할 수 있습니다. 장애 조치를 트리거하는 방법도 있어야하며, 이는를 방해해야합니다.Restore_command
, 루프를 나누고 파일이없는 오류를 스포츠 토토 사이트 서버에 반환합니다. 이로 인해 복구가 끝나고 스포츠 토토 사이트는 일반 서버로 나타납니다.
적절한 경우 PseudocodeRestore_Command
IS :
트리거 = 거짓; while (! nextwalfileready () &&! 트리거) 수면 (100000L); / * ~ 0.1 초 동안 기다리십시오 */ if (checkforexternaltrigger ()) 트리거 = 참으로;
스포츠 토토 사이트중인 작업 예Restore_command
제공PostgreSQL모듈. 위에서 설명한 논리를 올바르게 구현하는 방법에 대한 참조로 사용해야합니다. 특정 구성 및 환경을 지원하기 위해 필요에 따라 확장 할 수도 있습니다.
장애 조치를 트리거하는 방법은 계획 및 설계의 중요한 부분입니다. 잠재적 옵션 중 하나는입니다.Restore_Command
명령. 각 WAL 파일에 대해 한 번 실행되지만을 실행하는 프로세스Restore_Command
각 파일마다 생성되어 사망하므로 데몬 또는 서버 프로세스가 없으며 신호 또는 신호 핸들러를 사용할 수 없습니다. 따라서Restore_command
장애 조치를 트리거하는 데 적합하지 않습니다. 간단한 타임 아웃 시설을 사용할 수 있습니다. 특히 알려진 사람과 함께 사용하는 경우archive_timeout
기본 설정. 그러나 네트워크 문제 나 바쁜 기본 서버가 장애 조치를 시작하기에 충분할 수 있으므로 이는 오류가 다소 오류가 발생합니다. 트리거 파일의 명시 적 생성과 같은 알림 메커니즘이 이상적입니다.
이 대체 방법을 사용하여 스포츠 토토 사이트 서버를 구성하기위한 짧은 절차는 다음과 같습니다. 각 단계에 대한 자세한 내용은 언급 된대로 이전 섹션을 참조하십시오.
두 개의 동일한 사본을 포함하여 가능한 한 거의 동일하게 기본 및 스포츠 토토 사이트 시스템을 설정하십시오.postgresql같은 릴리스 레벨에서.
스포츠 토토 사이트 서버의 기본에서 WAL 아카이브 디렉토리로 연속 아카이브를 설정합니다. 확인archive_mode, archive_commandandarchive_timeout기본에서 적절하게 설정됩니다 (참조섹션 25.3.1).
기본 서버의 기본 백업을 만듭니다 (참조섹션 25.3.2),이 데이터를 스포츠 토토 사이트에로드하십시오.
로컬 WAL 아카이브에서 스포츠 토토 사이트 서버에서 복구 시작Restore_command
앞에서 설명한대로 기다리는 (참조섹션 25.3.4).
복구는 WAL 아카이브를 읽기 전용으로 취급하므로 WAL 파일이 스포츠 토토 사이트 시스템에 복사되면 스포츠 토토 사이트 데이터베이스 서버에서 읽는 것과 동시에 테이프에 복사 할 수 있습니다. 따라서 고 가용성을 위해 스포츠 토토 사이트 서버를 실행하는 것은 파일이 장기 재해 복구 목적으로 저장되는 것과 동시에 수행 할 수 있습니다.
테스트 목적으로 동일한 시스템에서 기본 서버 및 대기 서버를 실행할 수 있습니다. 이것은 서버 견고성에 대한 가치있는 개선을 제공하지 않으며 HA로 묘사되지도 않습니다..
이 대체 방법을 사용하여 레코드 기반 로그 배송을 구현할 수도 있지만 사용자 지정 개발이 필요하며 전체 WAL 파일이 배송 된 후에도 핫 스탠드 쿼리로만 변경 될 것입니다..
외부 프로그램은 호출 할 수 있습니다.pg_walfile_name_offset ()
함수 (참조PostgreSQL : 문서 : 13 : 9.27. 시스템 관리 토토 핫) WAL의 현재 끝에서 파일 이름과 정확한 바이트 오프셋을 찾으려면. 그런 다음 WAL 파일에 직접 액세스하고 스포츠 토토 사이트 서버로의 현재 끝을 통해 WAL의 마지막 끝에서 데이터를 복사 할 수 있습니다. 이 접근법을 사용하면 데이터 손실의 창은 복사 프로그램의 폴링주기 시간이며, 이는 매우 작을 수 있으며 부분적으로 사용 된 세그먼트 파일을 보관할 수 있도록 대역폭이 낭비되지 않습니다. 스포츠 토토 사이트 서버 'Restore_command
스크립트는 전체 WAL 파일 만 처리 할 수 있으므로 점진적으로 복사 된 데이터는 일반적으로 스포츠 토토 사이트 서버에서 사용할 수 없습니다. 1 차가 다가올 때만 사용됩니다. 마지막 부분 월 파일은 스포츠 토토 사이트에 공급되기 전에 스포츠 토토 사이트에 공급됩니다. 이 프로세스의 올바른 구현에는의 협력이 필요합니다.Restore_command
데이터 복사 프로그램이있는 스크립트.
시작PostgreSQL버전 9.0, 스트리밍 복제를 사용할 수 있습니다 (참조섹션 26.2.5) 노력으로 동일한 혜택을 달성하려면
17729_17955이 양식문서 문제를보고하려면