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

pg_rewind

이름

pg_rewind -- 동기화 a포스트그레SQL첫 번째 데이터 디렉토리에서 분기된 다른 데이터 디렉토리가 있는 데이터 디렉토리

시놉시스

pg_rewind [옵션...] {-D | --대상-pgdata} 디렉토리 {--source-pgdata=디렉토리 | --소스-서버=connstr}

설명

pg_rewind은 클러스터의 타임라인이 분기된 후 무지개 토토 클러스터를 동일한 클러스터의 다른 복사본과 동기화하기 위한 도구입니다. 일반적인 시나리오는 장애 조치 후 새 마스터를 따르는 대기 서버로 이전 마스터 서버를 다시 온라인으로 전환하는 것입니다.

결과는 대상 데이터 디렉토리를 소스 디렉토리로 바꾸는 것과 같습니다. 구성 파일을 포함한 모든 파일이 복사됩니다. 의 장점pg_rewind새 기본 백업 수행 또는 다음과 같은 도구rsync, 그렇죠pg_rewind클러스터에서 변경되지 않은 모든 파일을 읽을 필요가 없습니다. 따라서 데이터베이스가 크고 클러스터 간에는 데이터베이스의 작은 부분만 다를 때 속도가 훨씬 빨라집니다.

pg_rewind소스 및 대상 클러스터의 타임라인 기록을 조사하여 분기된 지점을 확인하고 대상 클러스터에서 WAL을 찾을 것으로 예상합니다.pg_xlog디렉토리가 분기점까지 다시 도달합니다. 분기 후 곧 대상 클러스터가 종료되는 일반적인 장애 조치 시나리오에서는 문제가 되지 않지만, 분기 후 대상 클러스터가 오랫동안 실행된 경우 이전 WAL 파일이 더 이상 존재하지 않을 수 있습니다. 이 경우 WAL 아카이브에서 다음으로 수동으로 복사할 수 있습니다.pg_xlog디렉토리. WAL 아카이브에서 누락된 파일을 자동으로 가져오는 기능은 현재 지원되지 않습니다.

실행 후 처음 대상 서버를 시작할 때pg_rewind, 복구 모드로 전환되어 분기 지점 이후 소스 서버에서 생성된 모든 WAL을 재생합니다. 다음과 같은 경우 WAL 중 일부를 소스 서버에서 더 이상 사용할 수 없는 경우pg_rewind실행되었으므로 복사할 수 없습니다.pg_rewind세션, 대상 서버가 시작될 때 사용할 수 있어야 합니다. 이는 다음을 생성하여 수행할 수 있습니다.recovery.conf적절한 파일을 대상 데이터 디렉토리에restore_command.

pg_rewind대상 서버에 다음 중 하나가 필요합니다.wal_log_hints옵션이 다음에서 활성화되었습니다.무지개 토토.conf또는 클러스터가 초기화될 때 데이터 체크섬이 활성화되었습니다.initdb. 이들 중 어느 것도 현재 기본적으로 켜져 있지 않습니다.full_page_writes또한 활성화되어야 합니다. 그게 기본값이에요.

경고

만약pg_rewind11649_11816

pg_rewind직접 쓸 수 없는 파일을 찾으면 즉시 실패합니다. 예를 들어 소스와 대상 서버가 읽기 전용 SSL 키 및 인증서에 대해 동일한 파일 매핑을 사용하는 경우 이런 일이 발생할 수 있습니다. 이러한 파일이 대상 서버에 있는 경우 실행하기 전에 해당 파일을 제거하는 것이 좋습니다.pg_rewind. 되감기를 수행한 후 해당 파일 중 일부가 소스에서 복사되었을 수 있으며, 이 경우 복사된 데이터를 제거하고 되감기 전에 사용된 링크 집합을 다시 복원해야 할 수 있습니다.

옵션

pg_rewind다음 명령줄 인수를 허용합니다:

-D디렉토리
--target-pgdata=디렉토리

이 옵션은 소스와 동기화되는 대상 데이터 디렉토리를 지정합니다. 대상 서버는 실행하기 전에 완전히 종료되어야 합니다.pg_rewind

--source-pgdata=디렉토리

대상을 동기화할 원본 서버의 데이터 디렉터리 경로를 지정합니다. 언제--source-pgdata을 사용하는 경우 원본 서버를 완전히 종료해야 합니다.

--소스-서버=connstr

소스에 연결하기 위한 libpq 연결 문자열을 지정합니다.무지개 토토대상을 동기화할 서버입니다. 연결은 수퍼유저 액세스가 가능한 일반(비복제) 연결이어야 합니다. 서버가 실행 중이어야 하며 복구 모드에 있어서는 안 됩니다.

-n
--시험 실행

실제로 대상 디렉토리를 수정하는 것을 제외한 모든 작업을 수행하십시오.

-P
--진행

진행상황 보고를 활성화합니다. 이 기능을 켜면 소스 클러스터에서 데이터를 복사하는 동안 대략적인 진행 상황 보고서가 제공됩니다.

--디버그

개발자 디버깅에 가장 유용한 자세한 디버깅 출력 인쇄pg_rewind.

-V
--버전

버전 정보를 표시하고 종료합니다.

-?
--도움말

도움말을 표시한 후 종료하세요.

환경

언제--소스-서버옵션이 사용되었습니다.pg_rewind또한 다음에서 지원하는 환경 변수를 사용합니다libpq(참조PostgreSQL : 문서 : 9.5 : 환경 롤 토토).

참고

실행시pg_rewind최근 승격된 소스로 온라인 클러스터를 사용하려면 다음을 실행해야 합니다.체크포인트승격 후 제어 파일이 다음에서 사용하는 최신 타임라인 정보를 반영하도록pg_rewind지정된 소스 클러스터를 사용하여 대상 클러스터를 되돌릴 수 있는지 확인합니다.

작동 방식

기본 아이디어는 동일하다고 알려진 블록을 제외하고 새 클러스터의 모든 것을 이전 클러스터로 복사하는 것입니다.

  1. 새 클러스터의 타임라인 기록이 이전 클러스터에서 분기된 지점 이전의 마지막 체크포인트부터 시작하여 이전 클러스터의 WAL 로그를 스캔합니다. 각 WAL 레코드에 대해 접촉된 데이터 블록을 기록해 두십시오. 그러면 새 클러스터가 분기된 후 이전 클러스터에서 변경된 모든 데이터 블록의 목록이 생성됩니다.

  2. 새 클러스터에서 변경된 모든 블록을 이전 클러스터로 복사합니다.

  3. 다음과 같은 다른 모든 파일 복사막힘및 새 클러스터에서 이전 클러스터까지의 구성 파일, 관계 파일을 제외한 모든 것.

  4. 장애 조치 시 생성된 체크포인트부터 시작하여 새 클러스터에서 WAL을 적용하십시오. (엄밀히 말하면,)pg_rewindWAL을 적용하지 않고 단지 다음을 나타내는 백업 레이블 파일을 생성합니다.포스트그레SQL이 시작되면 해당 체크포인트에서 재생을 시작하고 필요한 모든 WAL을 적용합니다.)