개발 버전 :Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5

pg_rewind

pg_rewind - 동기화postgresql다른 데이터 디렉토리가있는 데이터 디렉토리

시놉시스

pg_rewind [옵션...]-d | -타겟 -pgdata } 디렉토리 { -와이즈 토토 -pgdata =디렉토리 | -와이즈 토토 서버 =connstr }

설명

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

성공적인 되감기 후, 대상 데이터 디렉토리의 상태는 소스 데이터 디렉토리의 기본 백업과 유사합니다. 새베이스 백업을 수행하거나와 같은 도구를 사용하는 것과 달리rsync, pg_rewind클러스터에서 변경되지 않은 관계 블록을 비교하거나 복사 할 필요가 없습니다. 기존 관계 파일에서 변경된 블록 만 복사됩니다.

pg_rewind와이즈 토토 및 대상 클러스터의 타임 라인 이력을 검사하여 분기 된 지점을 결정하고 대상 클러스터에서 WAL을 찾을 것으로 기대합니다PG_WAL디렉토리는 분기 지점까지 돌아갑니다. 발산 지점은 대상 타임 라인, 소스 타임 라인 또는 공통 조상에서 찾을 수 있습니다.PG_WAL디렉토리 또는 실행pg_rewindwith-cWAL 아카이브에서 자동으로 검색 할 수있는 옵션. 사용pg_rewind예를 들어, 대기 서버를 홍보하고, 일부 쓰기 트랜잭션을 실행 한 다음 다시 웨이 드는 대기가 될 수 있습니다..

실행 후pg_rewind, WAL Replay는 데이터 디렉토리가 일관된 상태가 되려면 완료해야합니다. 대상 서버가 다시 시작되면 아카이브 복구로 입력하고 발산 지점 이전의 마지막 체크 포인트에서 소스 서버에서 생성 된 모든 WAL을 재생합니다.pg_rewind가 실행되었으므로에 의해 복사 할 수 없었습니다.pg_rewind세션에서 대상 서버를 시작할 때 제공해야합니다. 이것은 a를 만들어 수행 할 수 있습니다.recovery.signal대상 데이터 디렉토리의 파일과 적합한 구성Restore_CommandinPostgres.

pg_rewind대상 서버에가 있어야합니다.Wal_log_hints옵션에서 활성화Postgres또는 클러스터가 |initdb. 이들 중 어느 것도 현재 기본적으로 켜져 있지 않습니다.full_page_writeson이지만 기본적으로 활성화되어 있습니다.

경고 : 되감기 동안 고장

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

aspg_rewind구성 파일을 와이즈 토토에서 완전히 복사하면 대상 서버를 다시 시작하기 전에 복구에 사용되는 구성을 수정해야 할 수도 있습니다. 특히 대상이 와이즈 토토의 대기로 재 도입 된 경우. 되감기 작업이 완료되었지만 복구를 구성하지 않고 서버를 다시 시작하면 대상이 1 차에서 다시 분기 될 수 있습니다.

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

옵션

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

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

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

-와이즈 토토 -pgdata =디렉토리

대상을 동기화하기 위해 소스 서버의 데이터 디렉토리에 파일 시스템 경로를 지정합니다. 이 옵션은 소스 서버를 깨끗하게 종료해야합니다.

-와이즈 토토 서버 =connstr

와이즈 토토에 연결할 LiBPQ 연결 문자열을 지정postgresql대상을 동기화하는 서버. 연결은 정상 (복제 비 복제) 연결 여야합니다.pg_rewind소스 서버 (자세한 내용은 참고 섹션 참조) 또는 슈퍼 사용자 역할. 이 옵션은 소스 서버가 실행 중이며 연결을 수락해야합니다.

-r
-write-recovery-conf

Create및 연결 설정을 추가하여Postgres출력 디렉토리에서.-와이즈 토토 서버이 옵션으로 필수입니다.

-n
-드라이 런

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

-n
-no-sync

기본적으로pg_rewind모든 파일이 디스크에 안전하게 작성 될 때까지 기다립니다. 이 옵션은pg_rewind대기하지 않고 반환하려면 더 빠르지 만 후속 운영 체제 충돌로 인해 데이터 디렉토리가 손상 될 수 있음을 의미합니다. 일반적 으로이 옵션은 테스트에 유용하지만 생산 설치에는 사용해서는 안됩니다.

-p
--progress

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

-c
-Restore-Target-Wal

useRestore_Command이 파일에서 더 이상 |PG_WAL디렉토리.

--config-file =filename

대상 클러스터에 지정된 기본 서버 구성 파일을 사용하십시오. 이것은 영향을 미칩니다pg_rewind내부적으로 사용하는 경우Postgres이 클러스터의 되감기 작업에 대한 명령 (검색시Restore_Command옵션-c/-복원-표적-wal그리고 충돌 회복의 완료를 강요 할 때).

-Debug

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

---엔지르 슈트 다운

pg_rewind다시 감기 전에 대상 서버가 깨끗하게 종료되어야합니다. 기본적으로 대상 서버가 깨끗하게 종료되지 않으면pg_rewind단일 사용자 모드에서 대상 서버를 시작하여 먼저 충돌 복구를 완료하고 중지합니다. 이 옵션을 전달하여pg_rewind서버가 깨끗하게 종료되지 않으면 이것을 건너 뛰고 즉시 오류가 발생합니다. 이 경우 사용자는 상황을 스스로 처리해야합니다.

-sync-method =메소드

설정시fsync, 기본값 인pg_rewind데이터 디렉토리의 모든 파일을 재귀 적으로 열고 동기화합니다. 파일 검색은 WAL 디렉토리 및 각 구성된 테이블 스페이스의 기호 링크를 따릅니다.

On Linux,syncfs대신 운영 체제에 데이터 디렉토리, WAL 파일 및 각 테이블 스페이스가 포함 된 전체 파일 시스템을 동기화하도록 요청할 수 있습니다. 보다복구 _init_sync_method사용할 때 알아야 할 경고에 대한 정보syncfs.

이 옵션은 효과가 없습니다.-no-sync사용됩니다.

-v
-버전

버전 정보 표시 다음 종료.

-?
-help

도움말 표시, 출구

환경

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

환경 변수PG_COLOR진단 메시지에서 색상 사용 여부를 지정합니다. 가능한 값은항상, auto절대.

노트

실행시pg_rewind온라인 클러스터를 와이즈 토토로 사용하는데,pg_rewind소스 클러스터에서 슈퍼 사용자 대신 사용할 수 있습니다. 다음은 그러한 역할을 만드는 방법입니다.Rewind_user여기 :

사용자 rewind_user 로그인 생성;

작동 방식

기본 아이디어는 모든 파일 시스템 레벨 변경을 와이즈 토토 클러스터에서 대상 클러스터로 복사하는 것입니다.

  1. 와이즈 토토 클러스터의 타임 라인 이력이 대상 클러스터에서 포크 된 지점 앞에서 마지막 체크 포인트에서 시작하여 대상 클러스터의 WAL 로그를 스캔합니다. 각 WAL 레코드에 대해 터치 된 각 데이터 블록을 기록하십시오.pg_rewindwith-cWAL 아카이브에서 누락 된 파일을 검색하는 옵션.

  2. 직접 파일 시스템 액세스를 사용하여 와이즈 토토 클러스터에서 대상 클러스터로 변경된 모든 블록을 복사합니다.-소스 -pgdata) 또는 SQL (-와이즈 토토 서버). 관계 파일은 이제 소스의 WAL 타임 라인이 발산 한 후 대상의 소스의 현재 상태를 발산 한 후 대상의 현재 상태를 추가하기 전에 마지막으로 완료된 체크 포인트의 순간과 동등한 상태에 있습니다..

  3. 새 관계 파일, Wal Segments,를 포함한 다른 모든 파일 복사PG_XACT및 소스 클러스터에서 대상 클러스터까지 구성 파일. 기본 백업과 마찬가지로 디렉토리의 내용PG_DYNSHMEM/, pg_notify/, PG_REPLSLOT/, pg_serial/, PG_SNAPSHOTS/, PG_STAT_TMP/pg_subtrans/와이즈 토토 클러스터에서 복사 된 데이터에서 생략됩니다. 파일backup_label, TableSpace_map, in, postmaster.opts, postmaster.pid.DS_STORE뿐만 아니라로 시작하는 파일 또는 디렉토리PGSQL_TMP, 생략.

  4. 생성backup_labelFailover에서 생성 된 체크 포인트에서 WAL 재생을 시작하는 파일PG_CONTROL최소 일관성이있는 파일 LSN은PG_CURRENT_WAL_INSERT_LSN ()중지 된 와이즈 토토에서 되 감을 때 라이브 와이즈 토토 또는 마지막 체크 포인트 LSN에서 되 감을 때.

  5. 대상을 시작할 때postgresql필요한 모든 WAL을 재생하여 일관된 상태의 데이터 디렉토리를 만듭니다.

정정 제출

문서에 올바른 것이없는 것이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면