| PostgreSQL 9.0.23 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.0 : 토토 베이 흐름 | 위로 | 46장. 프런트엔드/백엔드 프로토콜 | 배트맨 토토 : 문서 : 9.0 : 메시지 데이터 유형 | |
스트리밍 복제를 시작하기 위해 프런트엔드는 다음을 보냅니다.복제9600_9886
서버가 자신을 식별하도록 요청합니다. 서버 응답 두 개의 행을 포함하는 단일 행의 결과 세트 전지:
다음을 식별하는 고유 시스템 식별자입니다. 무리. 베이스를 확인하는 데 사용할 수 있습니다. 대기를 초기화하는 데 사용된 백업은 동일한 클러스터.
현재 타임라인ID. 또한 다음을 확인하는 데 유용합니다. 대기는 마스터와 일치합니다.
WAL에서 시작하여 WAL 토토 사이트을 시작하도록 서버에 지시합니다. 위치XXX/XXX. 서버는 다음과 같이 응답할 수 있습니다. 오류(예: WAL의 요청된 섹션이 이미 있는 경우 재활용되었습니다. 성공하면 서버는 다음과 같이 응답합니다. CopyOutResponse 메시지를 보낸 후 WAL을 스트리밍하기 시작합니다. 프론트엔드. WAL은 다음 시점까지 계속 스트리밍됩니다. 연결이 끊어졌습니다. 더 이상의 명령은 없습니다 받아들여졌습니다.
WAL 데이터는 일련의 CopyData 메시지로 전송됩니다. (이것 다른 정보가 혼합될 수 있도록 허용합니다. 특히 서버는 다음과 같은 경우 ErrorResponse 메시지를 보낼 수 있습니다. 스트리밍을 시작한 후 오류가 발생했습니다.) 각 CopyData 메시지의 페이로드는 다음 형식을 따릅니다.
메시지를 WAL 데이터로 식별합니다.
WAL 데이터의 시작점입니다. XLogRecPtr 형식으로 제공되는 메시지입니다.
제공된 서버의 현재 WAL 끝 XLogRecPtr 형식으로.
당시 서버의 시스템 시계 TimestampTz 형식으로 제공되는 전송입니다.
WAL 데이터 스트림의 섹션.
단일 WAL 레코드는 두 개의 CopyData로 분할되지 않습니다. 메시지. WAL 레코드가 WAL 페이지 경계를 넘을 때, 따라서 이미 연속 레코드를 사용하여 분할되었습니다. 페이지 경계에서 분할될 수 있습니다. 즉, 첫 번째 주요 WAL 레코드와 그 연속 레코드는 다른 CopyData 메시지로 전송되었습니다.
WAL 데이터 내의 모든 필드와 위에서 설명한 헤더는 보내는 서버의 헤더에 있을 것입니다. 기본 형식. 엔디안과 형식 타임스탬프는 수신자가 없으면 예측할 수 없습니다. 보낸 사람의 시스템 식별자가 해당 시스템 식별자와 일치하는지 확인했습니다. 소유하다pg_control내용.
WAL 발신자 프로세스가 정상적으로 종료된 경우( postmaster shutdown), CommandComplete를 보냅니다. 나가기 전 메시지. 이는 다음 기간 동안에는 발생하지 않을 수 있습니다. 물론 비정상적으로 종료됩니다.