이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 53.4. 사설 토토 복제 프로토콜버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

46.3. 사설 토토 복제 프로토콜

스트리밍 복제를 시작하기 위해 프런트엔드는 다음을 보냅니다.복제9600_9886

IDENTIFY_SYSTEM

서버가 자신을 식별하도록 요청합니다. 서버 응답 3개를 포함하는 단일 행의 결과 세트 필드:

시스템ID

다음을 식별하는 고유 시스템 식별자입니다. 클러스터. 베이스를 확인하는 데 사용할 수 있습니다. 대기를 초기화하는 데 사용된 백업은 동일한 클러스터.

타임라인

현재 타임라인ID. 또한 다음을 확인하는 데 유용합니다. 대기는 마스터와 일치합니다.

xlogpos

현재 xlog 플러시 위치. 알려진 정보를 얻는 데 유용합니다. 스트리밍이 가능한 트랜잭션 로그의 위치 시작합니다.

START_REPLICATIONXXX/XXX

WAL에서 시작하여 WAL 사설 토토을 시작하도록 서버에 지시합니다. 위치XXX/XXX. 서버는 다음과 같이 응답할 수 있습니다. 오류(예: WAL의 요청된 섹션이 이미 있는 경우 재활용되었습니다. 성공하면 서버는 다음과 같이 응답합니다. CopyBothResponse 메시지를 보낸 다음 WAL을 스트리밍하기 시작합니다. 프론트엔드. WAL은 다음 시점까지 계속 스트리밍됩니다. 연결이 끊어졌습니다. 더 이상의 명령은 없습니다 받아들여졌습니다.

WAL 데이터는 일련의 CopyData 메시지로 전송됩니다. (이 다른 정보가 혼합될 수 있도록 허용합니다. 특히 서버는 다음과 같은 경우 ErrorResponse 메시지를 보낼 수 있습니다. 스트리밍을 시작한 후 오류가 발생했습니다.) 각 CopyData 메시지의 페이로드는 다음 형식을 따릅니다.

XLogData (B)
바이트1('w')

메시지를 WAL 데이터로 식별합니다.

바이트8

WAL 데이터의 시작점입니다. XLogRecPtr 형식으로 제공되는 메시지입니다.

바이트8

주어진 서버의 현재 WAL 끝 XLogRecPtr 형식으로.

바이트8

당시 서버의 시스템 시계 TimestampTz 형식으로 제공되는 전송입니다.

바이트n

WAL 데이터 사설 토토림의 섹션.

단일 WAL 레코드는 두 개의 CopyData로 분할되지 않습니다. 메시지. WAL 레코드가 WAL 페이지 경계를 넘을 때, 따라서 이미 연속 레코드를 사용하여 분할되었습니다. 페이지 경계에서 분할될 수 있습니다. 즉, 첫 번째 주요 WAL 레코드와 그 연속 레코드는 다른 CopyData 메시지로 전송되었습니다.

WAL 데이터 내의 모든 필드와 위에서 설명한 헤더는 보내는 서버의 헤더에 있을 것입니다. 기본 형식. 엔디안과 형식 타임스탬프는 수신자가 없으면 예측할 수 없습니다. 보낸 사람의 시스템 식별자가 해당 시스템 식별자와 일치하는지 확인했습니다. 소유pg_control내용.

WAL 발신자 프로세스가 정상적으로 종료된 경우( postmaster shutdown), CommandComplete를 보냅니다. 나가기 전 메시지. 이는 다음 기간 동안에는 발생하지 않을 수 있습니다. 물론 비정상적으로 종료됩니다.

수신 프로세스는 다음으로 응답을 보낼 수 있습니다. 다음 메시지 중 하나를 사용하여 언제든지 발신자 형식(CopyData 메시지의 페이로드에도 있음):

대기 상태 업데이트(F)
바이트1('r')

메시지를 수신자 상태로 식별합니다. 업데이트합니다.

바이트8

마지막 WAL 바이트 위치 + 1 대기 모드에서 수신되어 디스크에 기록됩니다. XLogRecPtr 형식입니다.

바이트8

마지막 WAL 바이트 위치 + 1 XLogRecPtr에서 대기 모드의 디스크로 플러시됩니다. 형식.

바이트8

마지막 WAL 바이트 위치 + 1 XLogRecPtr에서 대기 모드에 적용됨 형식.

바이트8

당시 서버의 시스템 시계 TimestampTz 형식으로 제공되는 전송입니다.

긴급 대기 피드백 메시지(F)
바이트1('h')

메시지를 상시 대기로 식별합니다 피드백 메시지.

바이트8

당시 서버의 시스템 시계 TimestampTz 형식으로 제공되는 전송입니다.

바이트4

대기의 현재 xmin. 0이 될 수도 있고, 대기가 Hot이라는 알림을 보내는 경우 이에 대한 대기 피드백은 더 이상 전송되지 않습니다. 연결. 나중에 0이 아닌 메시지가 나타날 수 있습니다. 피드백 메커니즘을 다시 시작합니다.

바이트4

대기의 현재 에포크.

BASE_BACKUP [레이블 '라벨'] [진행] [빠른] [WAL] [NOWAIT]

서버에 기본 백업 스트리밍을 시작하도록 지시합니다. 시스템은 자동으로 백업 모드로 전환됩니다. 백업이 시작되고 백업이 완료되면 백업에서 꺼집니다. 완료되었습니다. 다음 옵션이 허용됩니다:

레이블 '라벨'

백업 라벨을 설정합니다. 아무것도 없다면 지정됨, 백업 라벨베이스 백업사용됩니다. 인용 규칙 레이블은을 포함한 표준 SQL 문자열과 동일합니다.standard_conforming_strings켜졌습니다.

진행

생성하는 데 필요한 정보를 요청합니다. 진행 보고서. 그러면 대략적인 정보가 다시 전송됩니다. 각 테이블스페이스의 헤더 크기 하천을 따라 얼마나 멀리 진행되었는지 계산하는 데 사용됩니다. 이는 모든 파일 크기를 열거하여 계산됩니다. 전송이 시작되기 전에 한 번, 이는 성능에 부정적인 영향을 미칩니다. 특히 첫 번째 데이터가 나오기 전에 시간이 더 오래 걸릴 수 있습니다. 스트리밍됩니다. 데이터베이스 파일이 변경될 수 있으므로 백업 중 크기는 대략적인 것이며 의 시간 사이에 성장하거나 축소될 수 있습니다. 근사값과 실제 전송 파일.

빠른

빠른 체크포인트를 요청하세요.

WAL

백업에 필요한 WAL 세그먼트를 포함합니다. 여기에는 시작과 사이의 모든 파일이 포함됩니다. 다음에서 백업을 중지하세요.pg_xlog기본 디렉토리 tar 파일의 디렉토리.

NOWAIT

기본적으로 백업은 마지막 날짜까지 기다립니다. 필요한 xlog 세그먼트가 보관되었거나 로그 보관이 활성화되지 않은 경우 경고. 지정NOWAIT두 가지 모두 비활성화합니다. 대기 및 경고, 클라이언트 종료 필요한 로그가 있는지 확인하는 책임이 있습니다. 가능합니다.

백업이 시작되면 서버는 먼저 두 개의 일반 결과 집합과 그 뒤에 하나 이상의 결과 집합이 옵니다. CopyResponse 결과.

첫 번째 일반 결과 세트에는 시작이 포함됩니다. XLogRecPtr 형식으로 제공되는 백업 위치 단일 행의 단일 열입니다.

두 번째 일반 결과 세트에는 각각 하나의 행이 있습니다. 테이블스페이스. 이 행의 필드는 다음과 같습니다.

스페이드

테이블스페이스의 oid 또는NULL기본 디렉토리인 경우.

spclocation

테이블스페이스 디렉토리의 전체 경로, 또는NULL만약 그것이 베이스라면 디렉토리.

크기

테이블스페이스의 대략적인 크기입니다. 진행 보고서가 요청되었습니다. 그렇지 않으면 그것은NULL.

두 번째 일반 결과 집합 이후에 하나 이상의 CopyResponse 결과가 전송됩니다(PGDATA에 대해 하나씩, 다른 하나는). 이외의 각 추가 테이블스페이스에 대해pg_default그리고pg_global. CopyResponse의 데이터 결과는 tar 형식이 됩니다(다음에 따라)."ustar 교환 형식"에 지정됨 POSIX 1003.1-2008 표준) 테이블스페이스 덤프 내용, 단 두 개의 후행 0 블록은 제외 표준에 명시된 내용은 생략됩니다. tar 데이터 이후 완료되면 최종 일반 결과 세트가 전송됩니다.

데이터 디렉토리 및 각 디렉토리에 대한 tar 아카이브 테이블스페이스에는 디렉토리의 모든 파일이 포함됩니다. 여부에 관계없이PostgreSQL파일 또는 기타 파일이 추가되었습니다 같은 디렉토리에. 제외되는 유일한 파일은 다음과 같습니다.

  • postmaster.pid

  • postmaster.opts

  • pg_xlog포함 하위 디렉토리. wal 파일로 백업을 실행하는 경우 포함되면 pg_xlog의 합성 버전이 포함되어 있지만 필요한 파일만 포함됩니다. 나머지 부분이 아닌 백업이 작동하려면 내용.

소유자, 그룹 및 파일 모드는 기본 서버의 파일 시스템이 이를 지원합니다.

모든 테이블스페이스가 전송되면 최종 정규 결과 세트가 전송됩니다. 이 결과 집합에는 끝이 포함되어 있습니다. XLogRecPtr 형식으로 제공되는 백업 위치 단일 행의 단일 열입니다.