이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

25.4. 로그의 대체 윈 토토 배송

다음에 설명된 내장 대기 모드의 대안 이전 섹션은 다음을 사용하는 것입니다.restore_command보관 위치를 폴링합니다. 이는 버전 8.4 이하에서 사용할 수 있는 유일한 옵션이었습니다. 에서 이 설정, 설정대기_모드꺼짐, 대기에 필요한 폴링을 구현하고 있기 때문입니다. 스스로 조작하세요. 참조pg_standby참조용 모듈 이를 구현합니다.

이 모드에서 서버는 다음 위치에 WAL 하나의 파일을 적용합니다. 시간이 있으므로 쿼리를 위해 대기 서버를 사용하는 경우(Hot 참조) 대기), 마스터의 동작과 동작 사이에 지연이 있습니다. 해당 작업이 대기 모드에 표시되면 WAL 파일을 채우는 데 걸리는 시간입니다.archive_timeout그 지연을 만드는 데 사용될 수 있습니다 더 짧습니다. 또한 스트리밍 복제를 결합할 수 없습니다. 이 윈 토토으로.

기본 및 대기 서버 모두에서 발생하는 작업 일반적인 연속 보관 및 복구 작업입니다. 유일한 두 데이터베이스 서버 간의 접촉 지점은 아카이브입니다. 둘 다 공유하는 WAL 파일 수: 아카이브에 대한 기본 쓰기, 아카이브에서 읽기를 대기합니다. 보장되도록 주의를 기울여야 합니다. 별도의 기본 서버의 WAL 아카이브는 섞여 있거나 혼란스럽습니다. 아카이브가 클 필요는 없습니다. 대기 작업에만 필요합니다.

느슨하게 연결된 두 서버를 작동시키는 마법 함께는 단순히 arestore_command다음 WAL 파일을 요청하면 대기하는 대기 모드에서 사용됩니다. 기본에서 사용할 수 있게 됩니다.restore_command다음에 지정됨recovery.conf파일을 대기 서버에 저장하세요. 보통 복구 처리는 WAL 아카이브에서 파일을 요청합니다. 파일을 사용할 수 없는 경우 보고 실패. 대기용 처리 중 다음 WAL 파일을 사용할 수 없는 것은 정상입니다. 따라서 대기는 그것이 나타날 때까지 기다려야 합니다. 다음으로 끝나는 파일의 경우:.백업또는.역사기다릴 필요가 없으며 0이 아닙니다. 반환 코드를 반환해야 합니다. 대기restore_command맞춤 스크립트로 작성 가능 다음 WAL 파일이 있는지 폴링한 후 반복됩니다. 장애 조치(failover)를 트리거할 수 있는 방법도 있어야 합니다. 방해하다restore_command, 휴식 루프를 실행하고 파일을 찾을 수 없음 오류를 대기 서버에 반환합니다. 이렇게 하면 복구가 종료되고 대기 모드가 정상적으로 나타납니다. 서버.

적합한 의사 코드restore_command다음과 같습니다:

트리거됨 = false;
while (!NextWALFileReady() && !트리거됨)

    수면(100000L);         /* ~0.1초 동안 기다림 */
    if(CheckForExternalTrigger())
        트리거 = 사실;

기다림의 실제 사례restore_command다음에서 제공됩니다.pg_standby모듈. 그것은로 사용되어야 설명된 논리를 올바르게 구현하는 방법에 대한 참조 위. 특정 지원을 위해 필요에 따라 확장할 수도 있습니다. 구성 및 환경.

장애 조치를 실행하는 방법은 다음의 중요한 부분입니다. 기획과 디자인. 한 가지 잠재적인 옵션은 다음과 같습니다.restore_command명령. 에 대해 한 번 실행됩니다. 각 WAL 파일을 실행하지만 프로세스는restore_command각 파일마다 생성되고 종료됩니다. 따라서 데몬이나 서버 프로세스가 없으며 신호 또는 신호가 없습니다. 핸들러를 사용할 수 없습니다. 그러므로,restore_command트리거에 적합하지 않습니다. 장애 조치. 간단한 타임아웃 기능을 사용하는 것도 가능합니다. 특히 알려진 것과 함께 사용되는 경우archive_timeout기본 설정. 그러나, 네트워크 문제가 있거나 사용량이 많기 때문에 다소 오류가 발생하기 쉽습니다. 기본 서버는 장애 조치를 시작하기에 충분할 수 있습니다. 에이 명시적인 트리거 생성과 같은 알림 메커니즘 파일을 정리할 수 있다면 이상적입니다.

25.4.1. 구현

다음을 사용하여 대기 서버를 구성하는 간단한 절차 이 대체 방법은 다음과 같습니다. 각각의 자세한 내용은 단계, 명시된 대로 이전 섹션을 참조하세요.

  1. 기본 및 대기 시스템을 거의 동일하게 설정 가능한 한 두 개의 동일한 사본을 포함하여포스트그레SQL동일 릴리스에서 수준.

  2. 기본에서 WAL로 지속적인 아카이브 설정 대기 서버의 아카이브 디렉터리입니다. 다음을 확인하세요.archive_mode, archive_command그리고archive_timeout기본 데이터베이스에 적절하게 설정되어 있습니다(참조섹션 24.3.1).

  3. 기본 서버의 기본 백업을 만드세요(참조섹션 24.3.2), 이 데이터를 대기에 로드합니다.

  4. 로컬 WAL에서 대기 서버 복구 시작 아카이브, 사용하여recovery.confa를 지정하는restore_command앞서 설명한 대로 대기합니다(참조섹션 24.3.3).

복구는 WAL 아카이브를 읽기 전용으로 처리하므로 WAL이 한 번 파일이 복사 가능한 대기 시스템에 복사되었습니다. 대기 장치에서 테이프를 읽는 동시에 테이프를 읽는 중입니다. 데이터베이스 서버. 따라서, 높은 대기 서버를 운영 파일 가용성은 동시에 수행될 수 있습니다. 장기적인 재해 복구 목적으로 저장됩니다.

테스트 목적으로 기본 및 동일한 시스템의 대기 서버. 이것은 어떤 것도 제공하지 않습니다 서버 견고성이 향상될 가치가 있으며, 그렇지 않을 수도 있습니다. HA로 설명됩니다.

25.4.2. 기록 기반 윈 토토 배송

기록 기반 로그 전달 구현도 가능합니다. 이 대체 윈 토토을 사용하면 사용자 정의가 필요하지만 개발 및 변경 사항은 여전히 ​​핫한 사용자에게만 표시됩니다. 전체 WAL 파일이 배송된 후 대기 쿼리입니다.

외부 프로그램이 다음을 호출할 수 있습니다.pg_xlogfile_name_offset()함수(참조PostgreSQL : 문서 : 9.1 : 스포츠 토토 베트맨 스포츠 토토 베트맨 스포츠 토토 베트맨) 알아보기 파일 이름과 그 안에 있는 정확한 바이트 오프셋 현재 WAL의 끝입니다. 그런 다음 WAL 파일에 직접 액세스할 수 있습니다. WAL의 마지막으로 알려진 끝에서 데이터를 복사합니다. 현재 끝은 대기 서버로 넘어갑니다. 이 접근 방식을 사용하면 데이터 손실 기간은 폴링 주기 시간입니다. 복사 프로그램은 매우 작을 수 있으며, 부분적으로 사용된 세그먼트 파일을 강제로 사용하여 낭비되는 대역폭 보관됩니다. 대기 서버'restore_command스크립트는 전체만 처리할 수 있습니다. WAL 파일이므로 증분 복사된 데이터는 일반적으로 대기 서버에서 사용할 수 있게 되었습니다. 경우에만 사용됩니다. 기본이 죽으면 마지막 부분 WAL 파일이 그것이 나타나도록 허용하기 전에 대기하십시오. 올바른 이 프로세스를 구현하려면 다음의 협력이 필요합니다.restore_command데이터가 포함된 스크립트 복사 프윈 토토램입니다.

다음으로 시작PostgreSQL버전 9.0에서는 스트리밍 복제를 사용할 수 있습니다(참조섹션 25.2.5) 더 적은 노력으로 동일한 이점을 얻을 수 있습니다.