pg_rewind - 동기화PostgreSQL그것으로부터 지어진 다른 데이터 디렉토리가있는 데이터 디렉토리
pg_rewind
[옵션
...]-d
| -타겟 -pgdata
} 디렉토리
{ --- 범퍼카 토토 -pgdata =
| 디렉토리
-범퍼카 토토 서버 =
}connstr
pg_rewind클러스터 타임 라인이 발산 된 후 PostgreSQL 클러스터를 동일한 클러스터의 다른 사본과 동기화하는 도구입니다. 일반적인 시나리오는 장애 조치 후 새로운 마스터를 따르는 대기로 오래된 마스터 서버를 온라인으로 가져 오는 것입니다.
결과는 대상 데이터 디렉토리를 소스 디렉토리로 바꾸는 것과 같습니다. 관계 파일에서 변경된 블록 만 복사됩니다.pg_rewind새베이스 백업을 가져 가거나rsync,pg_rewind클러스터에서 변경되지 않은 블록을 읽는 것을 읽을 필요가 없습니다. 이렇게하면 데이터베이스가 클 때 훨씬 빠르고 작은 블록의 일부만 클러스터마다 다릅니다.
pg_rewind범퍼카 토토 및 대상 클러스터의 타임 라인 이력을 검사하여 분기 된 지점을 결정하고 대상 클러스터에서 WAL을 찾을 것으로 기대합니다PG_WAL
디렉토리는 발산 지점까지 다시 도달합니다. 발산 지점은 대상 타임 라인, 소스 타임 라인 또는 공통 조상에서 찾을 수 있습니다.PG_WAL
디렉토리. 사용pg_rewind예를 들어, 대기 서버를 홍보하고, 일부 쓰기 트랜잭션을 실행 한 다음 다시 wound로 다시 대기가 될 수 있습니다..
실행 후 처음으로 대상 서버가 시작된 시점pg_rewind, 복구 모드로 이동하여 발산 지점 후 범퍼카 토토 서버에서 생성 된 모든 WAL을 재생합니다. WAL 중 일부가 더 이상 범퍼카 토토 서버에서 사용할 수없는 경우pg_rewind| 실행되었으므로에 의해 복사 할 수 없었습니다.pg_rewind세션에서 대상 서버를 시작할 때 제공해야합니다. 이것은 a를 만들어 수행 할 수 있습니다.recovery.signal
대상 데이터 디렉토리의 파일 및 적합한 구성Restore_commandinon
.
pg_rewind대상 서버에가 있어야합니다.Wal_log_hints옵션 활성화on
또는 클러스터가 |initdb. 이들 중 어느 것도 현재 기본적으로 켜져 있지 않습니다.full_page_writeson
이지만 기본적으로 활성화됩니다.
ifpg_rewind처리 중에 실패하면 대상의 데이터 폴더가 복구 될 수있는 상태가 아닐 수 있습니다. 이 경우 새로운 신선한 백업을받는 것이 좋습니다.
pg_rewind직접 쓸 수없는 파일을 찾으면 즉시 실패합니다. 예를 들어 범퍼카 토토와 대상 서버가 읽기 전용 SSL 키 및 인증서에 동일한 파일 매핑을 사용하는 경우에 발생할 수 있습니다.pg_rewind. 되감기를 한 후, 해당 파일 중 일부는 범퍼카 토토에서 복사되었을 수 있으며,이 경우 복사 된 데이터를 제거하고 되감기 전에 사용 된 링크 세트를 다시 복원해야 할 수도 있습니다..
pg_rewind다음 명령 줄 인수를 수락합니다 :
-d디렉토리
-타겟 -pgdata =디렉토리
이 옵션은 소스와 동기화 된 대상 데이터 디렉토리를 지정합니다. 실행하기 전에 대상 서버를 깨끗하게 종료해야합니다pg_rewind
--- 범퍼카 토토 -pgdata =디렉토리
대상을 동기화하기 위해 소스 서버의 데이터 디렉토리에 대한 파일 시스템 경로를 지정합니다. 이 옵션은 소스 서버를 깨끗하게 종료해야합니다.
-범퍼카 토토 서버 =connstr
범퍼카 토토에 연결할 libpq 연결 문자열을 지정PostgreSQL대상을 동기화하는 서버. 연결은 정상 (복제 비 복제) 연결 여야합니다.pg_rewind소스 서버 (자세한 내용은 참고 섹션 참조) 또는 슈퍼 사용자 역할. 이 옵션은 소스 서버가 복구 모드가 아닌 실행 중이 려져야합니다.
-n
-드라이 런
실제로 대상 디렉토리 수정을 제외하고 모든 작업을 수행합니다.
-n
-no-sync
기본적으로pg_rewind
모든 파일이 디스크에 안전하게 작성 될 때까지 기다립니다. 이 옵션은pg_rewind
대기하지 않고 반환하려면 더 빠르지 만 후속 운영 체제 충돌로 인해 데이터 디렉토리가 손상 될 수 있음을 의미합니다. 일반적 으로이 옵션은 테스트에 유용하지만 생산 설치를 만들 때 사용해서는 안됩니다.
-p
-프로그램
진행 상황보고를 활성화합니다. 범퍼카 토토 클러스터에서 데이터를 복사하면서 대략적인 진행률 보고서가 켜져 있습니다.
-Debug
개발자 디버깅에 주로 유용한 인쇄 Verbose 디버깅 출력pg_rewind.
-v
-버전
버전 정보 표시 다음 종료.
-?
-help
도움말 표시, 종료.
when-범퍼카 토토 서버
옵션이 사용됩니다.pg_rewind또한 지원하는 환경 변수를 사용합니다libpq(참조PostgreSQL : 문서 : 12 : 33.14. 환경 토토 핫).
환경 변수pg_color
진단 메시지에서 색상을 사용할지 여부를 지정합니다. 가능한 값은항상
, auto
and절대
.
실행할 때pg_rewind온라인 클러스터를 범퍼카 토토로 사용하는데,pg_rewind소스 클러스터에서 슈퍼 사용자 대신 사용할 수 있습니다. 다음은 그러한 역할을 만드는 방법입니다.Rewind_user
여기 :
사용자 rewind_user 로그인 생성;
실행할 때pg_rewind온라인 클러스터를 최근에 홍보 된 범퍼카 토토로 사용하여 a가 필요합니다Checkpoint
컨트롤 파일이 최신 타임 라인 정보를 반영하여 프로모션 후pg_rewind지정된 범퍼카 토토 클러스터를 사용하여 대상 클러스터가 다시 wound 할 수 있는지 확인하려면
기본 아이디어는 모든 파일 시스템 레벨 변경을 범퍼카 토토 클러스터에서 대상 클러스터로 복사하는 것입니다.
범퍼카 토토 클러스터의 타임 라인 이력이 대상 클러스터에서 포크 된 지점 앞에서 마지막 체크 포인트에서 시작하여 대상 클러스터의 WAL 로그를 스캔합니다. 각 WAL 레코드에 대해 터치 된 각 데이터 블록을 기록하십시오.
직접 파일 시스템 액세스를 사용하여 범퍼카 토토 클러스터에서 대상 클러스터로 변경된 모든 블록을 복사합니다.-소스 -pgdata
) 또는 SQL (-범퍼카 토토 서버
).
와 같은 다른 모든 파일 복사PG_XACT
및 소스 클러스터에서 대상 클러스터로의 구성 파일 (관계 파일을 제외한 모든 내용). 기본 백업과 마찬가지로 디렉토리의 내용pg_dynshmem/
, pg_notify/
, PG_REPLSLOT/
, PG_SERIAL/
, PG_SNAPSHOTS/
, PG_STAT_TMP/
및pg_subtrans/
소스 클러스터에서 복사 된 데이터에서 생략됩니다. 로 시작하는 모든 파일 또는 디렉토리PGSQL_TMP
backup_label
, TableSpace_map
, in
, postmaster.opts
andpostmaster.pid
.
장애 조치에서 생성 된 체크 포인트에서 시작하여 범퍼카 토토 클러스터에서 WAL을 적용하십시오. (엄격하게 말하면pg_rewindWAL을 적용하지 않으면 백업 레이블 파일 만 생성PostgreSQL해당 체크 포인트에서 모든 월을 재생하여 시작하십시오.)