WAL 아카이브없이 지연 후 PostgreSQL 9.1 스트리밍 복제를 따라 잡습니까?


16

문맥:

Postgres 9.1 클러스터에서 스트리밍 복제 / 핫 대기를 사용하는 동안 대기 노드가 다운되었다고 가정 해 봅시다. 하루 동안 유지되며, 그 동안 마스터에서 많은 DML이 발생합니다. 대기의 recovery.conf에는 'restore_command'항목 (WAL 저널 파일에서 복원)이 포함되어 있지 않지만 'primary_conninfo'문자열 (스트리밍 복제)이 포함되어 있습니다.

질문:

마스터에서 하루를 변경 한 후 대기 모드를 다시 시작하면 스트리밍 복제 만 사용하여 "캐치"(결과적으로 마스터를 미러링하는 상태가 됨)합니까? 또는 통화를 보장하기 위해 WAL 파일 보관을 활성화하고 중단 중에 보관 된 파일을 적용해야합니까?

WAL 아카이빙 / 스트리밍 복제 문서를 여기 에서 확인했으며 WAL 아카이빙과 스트리밍 복제 를 모두 활성화 할 필요는 없지만 WAL 파일 아카이빙이 활성화되지 않은 상태에서 캐치 업이 발생할지 여부는 확실하지 않습니다.

감사!

답변:


9

예 . 대기 중 마지막 업데이트 이후 생성 된 WAL 세그먼트 수가 postgresql.conf의 wal_keep_segments 값보다 작은 경우 스트리밍 만 사용하는 경우 (만 경우에만) 캐치합니다 . 이에 대해서는 설명서의이 섹션에서 다룹니다. 복제


2
이 답변은 정확하지만 문제를 강조합니다. wal_keep_segments를 전달하면 복제가 종료 된 것입니다. 마스터와의 연결이 오랫동안 끊어져도 시스템을 유지하려는 경우 파일 기반 복제 설정은 선택 사항이 아닙니다.
Greg Smith

0

대기 노드에서 recovery.conf에 restore_command를 설정 한 다음 master pg_xlog (대기시 누락) 파일을 restore_command가 가리키는 폴더에 복사 할 수 있습니다. 시작 노드를 시작하고 입력하여 누락 된 xlog 파일을 쉽게 찾을 수 있습니다

ps aux | grep postgres

"000000020000005200000025를 기다리는 중"또는 이와 유사한 것을 볼 수 있습니다. 이는 pg_xlog를 마스터에서 대기의 restore_command 경로로 복사하기 시작해야 함을 알려줍니다.

wal_archiving을 활성화하면 설정 순간부터 아카이브가 시작됩니다.


파일 기반 WAL 보관 및 대기 기능에 restore_command를 사용하여 WAL 파일을로드하면이 파일을 따라 잡을 수 있음을 이해합니다. 그래도 내 질문은 아니다. 스트리밍 복제 사용하는 경우 (WAL 파일 전달 없음, 'primary_conninfo'에 지정된 복제 스트림 만) 대기가 따라 잡을지 여부를 알고 싶습니다 .
Zac B

아니. postgres는 그렇게하지 않습니다. 복제가 지연되면 로그 파일을 복사해야합니다.
sftsz

0

아니요, 스트리밍 복제 인스턴스를 설정했는데 어떻게 든 동기화되지 않아 rsyncWAL 아카이브를 수동 으로 수행 할 때까지 다시 작동하지 못했습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.