이 문서는 지원되지 않는 버전의 무지개 토토을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다와이즈 토토 PostgreSQL : 문서 : 17 : pg_rewind버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

pg_rewind

이름

pg_rewind- a 동기화무지개 토토첫 번째 데이터에서 포크 된 다른 데이터 디렉토리가있는 데이터 디렉토리

시놉시스

pg_rewind[옵션...]-d | -타겟 -pgdata디렉토리-소스 -pgdata =디렉토리 | --- 소스 서버 =connstr

설명

pg_rewind클러스터의 타임 라인이 발산 된 후 무지개 토토 클러스터를 동일한 클러스터의 다른 사본과 동기화하는 도구입니다. 일반적인 시나리오는 장애 조치 후 Old Master Server를 온라인으로 다시 가져 오는 것입니다. 새로운 마스터를 따르는 대기로

결과는 대상 데이터 디렉토리를 소스 디렉토리로 바꾸는 것과 같습니다. 구성 파일을 포함하여 모든 파일이 복사됩니다. 의 장점pg_rewind새로운베이스 백업 또는과 같은 도구를 사용하여rsync,pg_rewind클러스터의 모든 변경되지 않은 파일을 읽을 필요는 없습니다. 데이터베이스가 클 때 훨씬 빠르고 그 중 일부만 클러스터간에 다릅니다.

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

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

pg_rewind대상 서버에가 있어야합니다.Wal_Log_hints옵션이 활성화 됨무지개 토토.conf또는 클러스터가 초기화되면 해당 데이터 체크섬이 활성화되었습니다initdb. 이들 중 어느 것도 현재 기본적으로 켜져 있지 않습니다.full_page_writes또한 활성화되어야합니다. 그것은 기본입니다.

경고

ifpg_rewind처리 중에 실패하면 대상의 데이터 폴더가 복구 될 수있는 상태가 아닐 수 있습니다. 이 경우 새로운 신선한 백업을받는 것이 좋습니다.

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

옵션

pg_rewind다음 명령 줄 인수를받습니다 :

-d디렉토리
-타겟 -pgdata =디렉토리

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

--source-pgdata =디렉토리

대상을 동기화하기 위해 소스 서버의 데이터 디렉토리로의 경로를 지정합니다. 언제-소스 -pgdata사용되면 소스 서버를 깨끗하게 차단해야합니다.

-소스 서버 =connstr

소스에 연결하기 위해 libpq 연결 문자열을 지정무지개 토토대상을 동기화하는 서버. 연결은 슈퍼 사용자 액세스와의 정상적인 (비 복제) 연결이어야합니다. 서버는 가동되고 실행되어야하며 복구 모드에 있지 않아야합니다.

-n
-드라이 런

실제로 대상 디렉토리 수정을 제외하고 모든 작업을 수행합니다.

-p
-프로그램

진행 상황보고를 활성화합니다. 소스 클러스터에서 데이터를 복사하면서 대략적인 진행률 보고서가 켜져 있습니다.

-Debug

개발자 디버깅에 주로 유용한 인쇄 Verbose 디버깅 출력pg_rewind.

-v
-버전

버전 정보 표시 다음 종료.

-?
-help

도움말 표시, 종료.

환경

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

노트

실행시pg_rewind최근에 홍보 된 소스로 온라인 클러스터를 사용하여 a가 필요합니다Checkpoint15132_15233pg_rewind지정된 소스 클러스터를 사용하여 대상 클러스터가 다시 wound 할 수 있는지 확인하려면

작동 방식

기본 아이디어는 우리가 동일하다고 알고있는 블록을 제외하고 새 클러스터에서 기존 클러스터로 모든 것을 복사하는 것입니다.

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

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

  3. 와 같은 다른 모든 파일 복사Clog및 새 클러스터에서 기존 클러스터까지 구성 파일, 관계 파일을 제외한 모든 내용.

  4. 장애 조치에서 생성 된 체크 포인트에서 시작하여 새 클러스터에서 WAL을 적용하십시오. (엄격하게 말하면pg_rewindWAL을 적용하지 않으며, 언제를 나타내는 백업 레이블 파일 만 생성합니다.무지개 토토시작되었습니다. 해당 체크 포인트에서 재생을 시작하고 필요한 모든 월을 적용합니다.)