Postgresql 9.1.24 문서 | ||||
---|---|---|---|---|
PostgreSQL : 문서 : 9.1 : 토토 결과 흐름 | up | 46 장. 프론트 엔드/백엔드 사설 토토 | 사설 토토 : 문서 : 9.1 : 메시지 데이터 유형 |
사설 토토 복제를 시작하려면 프론트 엔드가를 보냅니다.복제시작의 매개 변수 메시지. 이것은 백엔드가 Walsender 모드로 들어가도록 지시합니다. 대신 소규모 복제 명령 세트를 발행 할 수 있습니다. SQL 문의. 간단한 쿼리 프로토콜 만 사용할 수 있습니다 Walsender 모드. Walsender 모드에서 수락 된 명령은 다음과 같습니다.
서버가 자신을 식별하도록 요청합니다. 서버 응답 3 개를 포함하는 단일 행의 결과 세트로 전지:
고유 한 시스템 식별자를 식별합니다 무리. 이것은베이스를 확인하는 데 사용될 수 있습니다 대기를 초기화하는 데 사용되는 백업 동일한 클러스터.
현재 타임 라인. 또한 확인하는 데 유용합니다 대기는 마스터와 일치합니다.
현재 XLOG 플러시 위치. 알려진 것에 유용합니다 스트리밍이 할 수있는 트랜잭션 로그의 위치 시작.
WAL에서 시작하여 서버가 사설 토토 WAL을 시작하도록 지시합니다 위치xxx/xxx. 서버는 오류 (예 : WAL의 요청 된 섹션이 이미있는 경우 재활용되었습니다. 성공시 서버는 a로 응답합니다 CopyBothResponse 메시지를 작성한 다음 WAL을 스트리밍하기 시작합니다 프론트 엔드. WAL은 계속 스트리밍 될 것입니다 연결이 끊어졌습니다. 더 이상 명령은 없습니다 수락.
WAL 데이터는 일련의 CopyData 메시지로 전송됩니다. (이것 다른 정보를 혼합 할 수 있습니다. 특히 서버는 ErrorResponse 메시지를 보낼 수 있습니다 사설 토토을 시작한 후 실패를 만난다.) 각 CopyData 메시지의 페이로드는이 형식을 따릅니다.
메시지를 WAL 데이터로 식별합니다.
이것에서 WAL 데이터의 시작점 xlogrecptr 형식으로 제공되는 메시지.
서버의 현재 WAL의 현재 끝 xlogrecptr 형식으로.
서버의 시스템 시계 시계 timestamptz 형식으로 제공되는 전송.
WAL 데이터 사설 토토림의 섹션.
단일 WAL 레코드는 두 개의 카피 다다에서 절대 분할되지 않습니다. 메시지. WAL 레코드가 WAL 페이지 경계를 가로 지르면 따라서 이미 연속 레코드를 사용하여 분할되었습니다. 페이지 경계에서 분할 될 수 있습니다. 다시 말해, 첫 번째 메인 월 레코드와 그 연속 기록은 다른 카피 데이터 메시지로 보냈습니다.
WAL 데이터 내의 모든 필드와 위에서 설명한 헤더는 전송 서버에 있습니다 기본 형식. 엔디 니스 및 그 형식 타임 스탬프는 수신자가없는 한 예측할 수 없습니다 발신자의 시스템 식별자가 일치하는지 확인했습니다 소유하다PG_CONTROL내용.
WAL 발신자 사설 토토세스가 정상적으로 종료 된 경우 ( Postmaster Shutdown), CommandComplete를 보냅니다 종료하기 전에 메시지. 이것은 중에 발생하지 않을 수 있습니다 물론 비정상적인 셧다운.
수신 프로세스는 회신을 다시 보낼 수 있습니다 다음 메시지 중 하나를 사용하여 언제든지 발신자 형식 (CopyData 메시지의 페이로드) :
메시지를 수신기 상태로 식별합니다 업데이트.
마지막 WAL 바이트 + 1의 위치 대기에서 디스크에 접수 및 작성되었습니다 xlogrecptr 형식.
마지막 WAL 바이트 + 1의 위치 xlogrecptr에서 대기에서 디스크로 플러시됩니다 체재.
마지막 WAL 바이트 + 1의 위치 xlogrecptr에서 대기에 적용됩니다 체재.
서버의 시스템이 시계에 클럭됩니다 timestamptz 형식으로 제공되는 전송.
메시지를 핫 스탠드로 식별합니다 피드백 메시지.
서버의 시스템 시계 timestamptz 형식으로 제공되는 전송.
대기의 현재 Xmin. 이것은 0, 대기가 그 핫 알림을 보내는 경우 대기 피드백은 더 이상 이에 전송되지 않습니다 연결. 나중에 0이 아닌 메시지가있을 수 있습니다 피드백 메커니즘을 회복하십시오.
대기의 현재 시대.
서버에베이스 백업 스트리밍을 시작하도록 지시합니다. 시스템은 이전에 백업 모드에 자동으로 배치됩니다. 백업이 시작되었고 백업이 시작될 때 완료되었습니다. 다음 옵션이 수락됩니다.
백업의 레이블을 설정합니다. 아무것도 없다면 지정된,의 백업 레이블베이스 지원사용됩니다. 인용 규칙 레이블은의 표준 SQL 문자열과 동일합니다.Standard_Conforming_strings켜져 있습니다.
생성에 필요한 정보 요청 a 진행 보고서. 이것은 대략적인 것을 다시 보냅니다 각 테이블 스페이스의 헤더의 크기는 스트림을 따라 얼마나 멀리 떨어져 있는지 계산하는 데 사용됩니다. 이것은 모든 파일 크기를 열거하여 계산됩니다 전송이 시작되기 전에 한 번, 그러한 성능에 부정적인 영향을 미칩니다. 특히 첫 번째 데이터보다 오래 걸릴 수 있습니다 스트리밍됩니다. 데이터베이스 파일이 변경 될 수 있으므로 백업 중에 크기는 대략적인 것입니다 시간 사이에 성장하고 줄어들 수 있습니다 근사치 및 실제 전송 파일.
빠른 체크 포인트 요청.
백업에 필요한 WAL 세그먼트를 포함하십시오. 여기에는 시작과마다 모든 파일이 포함됩니다 에서 백업 중지PG_XLOG기본 디렉토리 타르 파일의 디렉토리.
기본적으로 백업은 마지막까지 기다립니다 필요한 XLOG 세그먼트가 보관되었거나 방출되었습니다 경고 로그 아카이브가 활성화되지 않은 경우 경고. 지정nowait두 가지를 비활성화합니다 대기 및 경고, 클라이언트를 떠나는 경고 필요한 로그를 보장 할 책임이 있습니다 사용 가능.
백업이 시작되면 서버가 먼저 전송됩니다. 두 개의 일반 결과 세트, 다음 하나 이상 저작권 결과.
첫 번째 일반 결과 세트에는 시작이 포함됩니다 xlogrecptr 형식으로 주어진 백업 위치는 단일 열의 단일 열.
두 번째 일반 결과 세트에는 각각에 대해 하나의 행이 있습니다. 테이블 스페이스. 이 행의 필드는 다음과 같습니다.
테이블 스페이스의 OID, 또는null기본 디렉토리 인 경우.
테이블 스페이스 디렉토리의 전체 경로 또는null기지라면 예배 규칙서.
테이블 스페이스의 대략적인 크기, if 진행 보고서가 요청되었습니다. 그렇지 않으면null.
두 번째 일반 결과 세트 후 하나 이상 저작권 결과는 PGDATA를위한 것과 하나는 전송됩니다. 이외의 추가 테이블 스페이스에 대해pg_defaultandpg_global. 저작권의 데이터 결과는 TAR 형식입니다 (다음"Ustar Interchange Format"POSIX 1003.1-2008 표준) 테이블 스페이스의 덤프 제로의 두 개의 후행 블록을 제외하고는 내용물입니다 표준에 지정된 것은 생략됩니다. TAR 데이터 후 완료되면 최종 일반 결과 세트가 전송됩니다.
데이터 디렉토리 및 각각의 타르 아카이브 테이블 스페이스에는 디렉토리의 모든 파일이 포함됩니다. 그들이 있는지 여부에 관계없이PostgreSQL파일 또는 기타 파일이 추가되었습니다 같은 디렉토리로. 제외 된 유일한 파일은 다음과 같습니다.
postmaster.pid
postmaster.opts
PG_XLOG하위 디렉터. 백업이 WAL 파일로 실행되는 경우 PG_XLOG의 합성 버전이 포함됩니다 포함되지만 필요한 파일 만 포함됩니다 백업이 작동하기 위해 나머지 부분이 아닙니다. 내용물.
소유자, 그룹 및 파일 모드는 기본이면 설정됩니다. 서버의 파일 시스템은 지원합니다.
모든 테이블 스페이스가 전송되면 최종 규칙입니다 결과 세트가 전송됩니다. 이 결과 세트에는 끝이 포함되어 있습니다 xlogrecptr 형식으로 주어진 백업 위치는 단일 열의 단일 열.