26.4.로그 배송을위한 대체 방법

이전 섹션에 설명 된 내장 대기 모드에 대한 대안은 a를 사용하는 것입니다.Restore_command아카이브 위치를 폴링합니다. 이것은 8.4 이하 버전에서 사용할 수있는 유일한 옵션이었습니다.pg_standby이것의 참조 구현 모듈.

이 모드에서 서버는 한 번에 한 번에 WAL 파일을 적용하므로 스포츠 토토 사이트 서버를 쿼리에 사용하면 마스터의 조치와 ​​스포츠 토토 사이트에서 동작이 표시되는 시점 사이에 지연이 있습니다.archive_timeout지연을 더 짧게하는 데 사용될 수 있습니다. 또한 스트리밍 복제를이 방법과 결합 할 수 없습니다.

기본 서버 및 스포츠 토토 사이트 서버에서 발생하는 작업은 일반적인 연속 아카이브 및 복구 작업입니다. 두 데이터베이스 서버 간의 유일한 접촉 지점은 공유 : 아카이브에 대한 기본 쓰기, 아카이브에서 스포츠 토토 사이트 읽기를 공유하는 WAL 파일의 아카이브입니다.

두 개의 느슨하게 결합 된 서버를 함께 작동하게 만드는 마법은 단순히 A입니다.Restore_Command다음 WAL 파일을 요청할 때 기본에서 사용할 수 있기를 기다리는 스포츠 토토 사이트에서 사용됩니다. 정상 복구 처리는 WAL 아카이브에서 파일을 요청하여 파일을 사용할 수없는 경우 실패를보고합니다..history스포츠 토토 사이트 할 필요가 없으며 0이 아닌 리턴 코드를 반환해야합니다. 스포츠 토토 사이트Restore_Command다음 WAL 파일의 존재를 위해 폴링 후 루프가있는 사용자 정의 스크립트로 작성할 수 있습니다. 장애 조치를 트리거하는 방법도 있어야하며, 이는를 방해해야합니다.Restore_Command, 루프를 나누고 파일 공간 오류를 스포츠 토토 사이트 서버에 반환합니다. 이로 인해 복구가 끝나고 스포츠 토토 사이트는 일반 서버로 나타납니다.

적절한 경우 PseudocodeRestore_Commandis :

트리거 = 거짓;

스포츠 토토 사이트중인 작업 예Restore_command제공pg_standby모듈. 위에서 설명한 논리를 올바르게 구현하는 방법에 대한 참조로 사용해야합니다.

장애 조치를 트리거하는 방법은 계획 및 설계의 중요한 부분입니다. 잠재적 옵션 중 하나는입니다.Restore_command명령. 각 WAL 파일에 대해 한 번 실행되지만을 실행하는 프로세스Restore_Command각 파일마다 생성되어 사망하므로 데몬 또는 서버 프로세스가 없으며 신호 또는 신호 처리기를 사용할 수 없습니다. 따라서Restore_Command장애 조치를 트리거하는 데 적합하지 않습니다. 간단한 타임 아웃 시설을 사용할 수 있습니다. 특히 알려진 사람과 함께 사용하는 경우archive_timeout1 차 설정. 그러나 네트워크 문제 나 바쁜 기본 서버가 장애 조치를 시작하기에 충분할 수 있으므로 이는 오류가 다소 오류가 발생합니다.

26.4.1.구현

이 대체 방법을 사용하여 대기 서버를 구성하기위한 짧은 절차는 다음과 같습니다. 각 단계에 대한 자세한 내용은 언급 된대로 이전 섹션을 참조하십시오.

  1. 두 개의 동일한 사본을 포함하여 가능한 한 거의 동일하게 기본 및 스포츠 토토 사이트 시스템을 설정하십시오.PostgreSQL같은 릴리스 레벨에서.

  2. 스포츠 토토 사이트 서버의 기본에서 WAL 아카이브 디렉토리로 연속 아카이브를 설정합니다. 확인archive_mode,archive_commandandarchive_timeout기본에서 적절하게 설정됩니다 (참조섹션 25.3.1).

  3. 기본 서버의 기본 백업을 만듭니다 (참조섹션 25.3.2),이 데이터를 스포츠 토토 사이트에로드하십시오.

  4. 로컬 WAL 아카이브에서 스포츠 토토 사이트 서버에서 복구 시작Restore_command앞에서 설명한대로 스포츠 토토 사이트하는 스포츠 토토 사이트 (참조섹션 25.3.4).

복구는 WAL 아카이브를 읽기 전용으로 취급하므로 WAL 파일이 스포츠 토토 사이트 시스템에 복사되면 스포츠 토토 사이트 데이터베이스 서버에서 읽는 것과 동시에 테이프에 복사 할 수 있습니다. 따라서 고 가용성을 위해 스포츠 토토 사이트 서버를 실행하는 것은 파일이 장기 재해 복구 목적으로 저장되는 것과 동시에 수행 할 수 있습니다.

테스트 목적으로 동일한 시스템에서 기본 서버 및 대기 서버를 실행할 수 있습니다. 이것은 서버 견고성에 대한 가치있는 개선을 제공하지 않으며 HA로 묘사되지도 않습니다..

26.4.2.레코드 기반 로그 배송

이 대체 방법을 사용하여 레코드 기반 로그 배송을 구현할 수도 있지만 사용자 지정 개발이 ​​필요하며 전체 WAL 파일이 배송 된 후에 만 ​​핫 스탠드 쿼리로만 변경 될 수 있습니다..

외부 프로그램은를 호출 할 수 있습니다pg_walfile_name_offset ()함수 (참조PostgreSQL : 문서 : 13 : 9.27. 시스템 관리 토토 핫) WAL의 현재 끝에서 파일 이름과 정확한 바이트 오프셋을 찾으려면. 그런 다음 WAL 파일에 직접 액세스하고 스포츠 토토 사이트 서버로의 현재 끝을 통해 WAL의 마지막 끝에서 데이터를 복사 할 수 있습니다.Restore_command스크립트는 전체 WAL 파일 만 처리 할 수 ​​있으므로 점진적으로 복사 된 데이터는 보통 스포츠 토토 사이트 서버에서 사용할 수 없습니다. 1 차가 다가올 때만 사용됩니다. 마지막 부분 월 파일은 스포츠 토토 사이트에 공급되기 전에 스포츠 토토 사이트에 공급됩니다.Restore_command데이터 복사 프로그램이있는 스크립트.

시작PostgreSQL버전 9.0, 스트리밍 복제를 사용할 수 있습니다 (참조섹션 26.2.5) 노력으로 동일한 혜택을 달성하려면

수정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면