사설 토토 - 동기화PostgreSQL그것으로부터 지어진 다른 데이터 디렉토리가있는 데이터 디렉토리
사설 토토
[옵션
...]-d
| -타겟 -pgdata
디렉토리
--- 소스 -pgdata =
| 디렉토리
-소스 서버 =
connstr
사설 토토클러스터의 타임 라인이 발산 된 후 PostgreSQL 클러스터를 동일한 클러스터의 다른 사본과 동기화하는 도구입니다. 일반적인 시나리오는 장애 조치 후 새로운 기본을 따르는 대기로 기존 기본 서버를 온라인으로 가져 오는 것입니다.
성공적인 되감기 후 대상 데이터 디렉토리의 상태는 소스 데이터 디렉토리의 기본 백업과 유사합니다. 새베이스 백업을 수행하거나와 같은 도구를 사용하는 것과 달리rsync, 사설 토토클러스터에서 변경되지 않은 관계 블록을 비교하거나 복사 할 필요가 없습니다. 기존 관계 파일에서 변경된 블록 만 복사됩니다. 새 관계 파일, 구성 파일 및 WAL 세그먼트를 포함한 다른 모든 파일이 전체적으로 복사됩니다. 따라서 데이터베이스가 크고 클러스터간에 작은 부분 만 다를 때 되감기 작동이 다른 접근 방식보다 상당히 빠릅니다.
사설 토토소스 및 대상 클러스터의 타임 라인 이력을 검사하여 분기 된 지점을 결정하고 대상 클러스터에서 WAL을 찾을 것으로 예상합니다PG_WAL
디렉토리는 분기 지점까지 돌아갑니다. 발산 지점은 대상 타임 라인, 소스 타임 라인 또는 공통 조상에서 찾을 수 있습니다. 발산 직후 대상 클러스터가 종료 된 일반적인 장애 조치 시나리오에서는 문제가되지 않지만 이는 대상 클러스터가 발산 후 오랫동안 실행되면 이전 WAL 파일이 더 이상 존재하지 않을 수 있습니다. 이 경우 WAL 아카이브에서로 수동으로 복사 할 수 있습니다.PG_WAL
디렉토리 또는 실행사설 토토with-c
WAL 아카이브에서 자동으로 검색하는 옵션. 사용사설 토토예를 들어, 대기 서버를 홍보하고 일부 쓰기 트랜잭션을 실행 한 다음 다시 웨이 드는 대기가되기 위해.
실행 후사설 토토, WAL Replay는 데이터 디렉토리가 일관된 상태가 되려면 완료해야합니다. 대상 서버가 다시 시작되면 아카이브 복구로 입력하고 발산 지점 이전의 마지막 체크 포인트에서 소스 서버에서 생성 된 모든 WAL을 재생합니다. WAL 중 일부가 더 이상 소스 서버에서 사용할 수없는 경우사설 토토실행되었으므로에 의해 복사 할 수 없었습니다.사설 토토세션에서 대상 서버를 시작할 때 제공해야합니다. 이것은 a를 만들어 수행 할 수 있습니다.복구 .signal
대상 데이터 디렉토리의 파일과 적합한 구성Restore_Commandinpostgresql.conf
.
사설 토토대상 서버에가 있어야합니다.Wal_log_hints옵션에서 활성화postgresql.conf
또는 클러스터가 |initdb. 이들 중 어느 것도 현재 기본적으로 켜져 있지 않습니다.full_page_writeson
이지만 기본적으로 활성화되어 있습니다.
if사설 토토처리 중에 실패하면 대상의 데이터 폴더가 복구 될 수있는 상태가 아닐 수 있습니다. 이 경우 새로운 신선한 백업을받는 것이 좋습니다.
as사설 토토구성 파일을 소스에서 완전히 복사하면 대상 서버를 다시 시작하기 전에 복구에 사용되는 구성을 수정해야 할 수도 있습니다. 특히 대상이 소스의 대기로 재 도입 된 경우. 되감기 작업이 완료되었지만 복구를 구성하지 않고 서버를 다시 시작하면 대상이 1 차에서 다시 분기 될 수 있습니다.
사설 토토직접 쓸 수없는 파일을 찾으면 즉시 실패합니다. 예를 들어 소스와 대상 서버가 읽기 전용 SSL 키 및 인증서에 동일한 파일 매핑을 사용하는 경우에 발생할 수 있습니다. 이러한 파일이 대상 서버에있는 경우 실행하기 전에 제거하는 것이 좋습니다사설 토토. 되감기를 한 후, 해당 파일 중 일부는 소스에서 복사되었을 수 있으며,이 경우 복사 된 데이터를 제거하고 되감기 전에 사용 된 링크 세트를 다시 복원해야 할 수도 있습니다..
사설 토토다음 명령 줄 인수를 수락합니다 :
-d디렉토리
-타겟 -pgdata =디렉토리
이 옵션은 소스와 동기화 된 대상 데이터 디렉토리를 지정합니다. 실행하기 전에 대상 서버를 깨끗하게 종료해야합니다사설 토토
-소스 -pgdata =디렉토리
대상을 동기화하기 위해 소스 서버의 데이터 디렉토리에 대한 파일 시스템 경로를 지정합니다. 이 옵션은 소스 서버를 깨끗하게 종료해야합니다.
-소스 서버 =connstr
소스에 연결할 libpq 연결 문자열을 지정PostgreSQL대상을 동기화하는 서버. 연결은 정상 (복제 비 복제) 연결 여야합니다.사설 토토소스 서버 (자세한 내용은 참고 섹션 참조) 또는 슈퍼 사용자 역할. 이 옵션은 소스 서버가 실행 중이며 연결을 수락해야합니다.
-r
-write-recovery-conf
Createstandby.signal
및 연결 설정을 추가하여postgresql.auto.conf
출력 디렉토리에서. dbname은 dbname이 Connection String 또는에 명시 적으로 지정된 경우에만 기록됩니다.PostgreSQL : 문서 : 18 : 32.15. 환경 사설 토토 사이트. -소스 서버
이 옵션의 필수입니다.
-n
-드라이 런
실제로 대상 디렉토리 수정을 제외하고 모든 작업을 수행합니다.
-n
-no-sync
기본적으로사설 토토
모든 파일이 디스크에 안전하게 작성 될 때까지 기다립니다. 이 옵션은사설 토토
대기하지 않고 반환하려면 더 빠르지 만 후속 운영 체제 충돌로 인해 데이터 디렉토리가 손상 될 수 있음을 의미합니다. 일반적 으로이 옵션은 테스트에 유용하지만 생산 설치에는 사용해서는 안됩니다.
-p
--progress
진행 상황보고를 활성화합니다. 소스 클러스터에서 데이터를 복사하면서 대략적인 진행률 보고서가 켜져 있습니다.
-c
-Restore-Target-Wal
useRestore_command
이 파일에서 더 이상 |를 사용할 수없는 경우 WAL 아카이브에서 WAL 파일을 검색하기 위해 대상 클러스터 구성에 정의되었습니다.PG_WAL
디렉토리.
--config-file =filename
대상 클러스터에 지정된 기본 서버 구성 파일을 사용하십시오. 이것은 영향을 미칩니다사설 토토내부적으로 사용하는 경우Postgres이 클러스터의 되감기 작업에 대한 명령 (검색시Restore_command
옵션-c/-복원-표적 wal
그리고 충돌 회복의 완료를 강요 할 때).
-Debug
개발자 디버깅에 주로 유용한 인쇄 Verbose 디버깅 출력사설 토토.
---엔지르 슈트 다운
사설 토토되감기 전에 대상 서버가 깨끗하게 종료되어야합니다. 기본적으로 대상 서버가 깨끗하게 종료되지 않으면사설 토토단일 사용자 모드에서 대상 서버를 시작하여 먼저 충돌 복구를 완료하고 중지합니다. 이 옵션을 전달하여사설 토토서버가 깨끗하게 종료되지 않으면 이것을 건너 뛰고 즉시 오류가 발생합니다. 이 경우 사용자는 상황을 스스로 처리해야합니다.
-sync-method =메소드
로 설정된 시점fsync
, 기본값 인사설 토토
데이터 디렉토리의 모든 파일을 재귀 적으로 열고 동기화합니다. 파일 검색은 WAL 디렉토리 및 각 구성된 테이블 스페이스의 기호 링크를 따릅니다.
On Linux,syncfs
대신 운영 체제에 데이터 디렉토리, WAL 파일 및 각 테이블 스페이스가 포함 된 전체 파일 시스템을 동기화하도록 요청하는 데 사용될 수 있습니다. 보다복구 _init_sync_method사용할 때 알아야 할 경고에 대한 정보syncfs
.
이 옵션은 효과가 없습니다.-no-sync
사용됩니다.
-v
-버전
버전 정보 표시, 종료.
-?
-help
도움말 표시 다음 출구
언제-소스 서버
옵션이 사용됩니다.사설 토토또한 지원하는 환경 변수를 사용합니다libpq(참조PostgreSQL : 문서 : 18 : 32.15. 환경 사설 토토 사이트).
환경 변수pg_color
진단 메시지에서 색상 사용 여부를 지정합니다. 가능한 값은항상
, auto
and절대
.
실행할 때사설 토토온라인 클러스터를 소스로 사용하는데,사설 토토소스 클러스터에서 슈퍼 사용자 대신 사용할 수 있습니다. 다음은 그러한 역할을 만드는 방법입니다.Rewind_user
여기 :
사용자 rewind_user 로그인 생성; rewind_user에 대한 함수 pg_catalog.pg_ls_dir (텍스트, 부울, 부울)에 대한 보조금; rewind_user에 대한 함수 pg_catalog.pg_stat_file (텍스트, 부울)에 대한 실행; rewind_user에 대한 함수 pg_catalog.pg_read_binary_file (텍스트)에 대한 Grant Execute; rewind_user;에 대한 기능 pg_catalog.pg_read_binary_file (텍스트, bigint, bigint, boolean)에 대한 Grant Execute pg_catalog.pg_read_binary_file
기본 아이디어는 모든 파일 시스템 수준 변경을 소스 클러스터에서 대상 클러스터로 복사하는 것입니다.
소스 클러스터의 타임 라인 이력이 대상 클러스터에서 포크 된 지점 앞에서 마지막 체크 포인트에서 시작하여 대상 클러스터의 WAL 로그를 스캔합니다. 각 WAL 레코드에 대해 터치 된 각 데이터 블록을 기록하십시오. 이는 소스 클러스터가 포기한 후 대상 클러스터에서 변경된 모든 데이터 블록의 목록이 생성됩니다. 일부 월 파일 중 일부를 더 이상 사용할 수 없으면 다시 실행을 시도하십시오사설 토토with-c
WAL 아카이브에서 누락 된 파일을 검색하는 옵션.
직접 파일 시스템 액세스를 사용하여 소스 클러스터에서 대상 클러스터로 변경된 모든 블록을 복사합니다 (-소스 -pgdata
) 또는 SQL (-소스 서버
). 관계 파일은 이제 소스의 WAL 타임 라인이 발산 한 후 대상의 소스의 현재 상태를 발산 한 후 대상의 현재 상태를 추가하기 전에 마지막으로 완료된 체크 포인트의 순간과 동등한 상태에 있습니다..
새 관계 파일, Wal Segments,를 포함한 다른 모든 파일 복사PG_XACT
및 소스 클러스터에서 대상 클러스터까지 구성 파일. 기본 백업과 마찬가지로 디렉토리의 내용PG_DYNSHMEM/
, pg_notify/
, PG_REPLSLOT/
, PG_SERIAL/
, PG_SNAPSHOTS/
, PG_STAT_TMP/
및pg_subtrans/
소스 클러스터에서 복사 된 데이터에서 생략됩니다. 파일backup_label
, TableSpace_map
, pg_internal.init
, postmaster.opts
, postmaster.pid
and.DS_STORE
뿐만 아니라로 시작하는 파일 또는 디렉토리PGSQL_TMP
, 생략.
생성backup_label
Failover에서 생성 된 체크 포인트에서 WAL 재생을 시작하는 파일PG_CONTROL
최소 일관성이있는 파일 LSN은의 결과로 정의되었습니다.PG_CURRENT_WAL_INSERT_LSN ()
중지 된 소스에서 되감을 때 라이브 소스 또는 마지막 체크 포인트 LSN에서 되감을 때.
대상을 시작할 때PostgreSQL필요한 모든 WAL을 재생하여 일관된 상태의 데이터 디렉토리를 만듭니다.