2013-10-16 6 views
6

마스터 PostgreSQL 9.2 서버를 아카이브하지 않고 스트리밍 복제를 수행하도록 구성하는 것이 허용되는지 또는 합리적인가? 아래 그림과 같이 구성됩니다 :PostgreSQL 9.2에서 스트리밍 복제에 필요한 아카이브입니까?

"슬레이브"서버 (대기 대기)는 WAL 세그먼트를 아카이브하도록 구성 할 수 있습니까?

wal_level = hot_standby 
hot_standby = on 
archive_mode = on 

이렇게하면 마스터 서버의 보관 네트워크 트래픽을 절반으로 줄일 수 있습니다 (복제는 있지만 보관은 아님). 이것은 합리적인 것으로 보이며 설명서가이 구성을 지원하는 것으로 보입니다.하지만 저는 좋은 구성을 가지고 있다는 확신을 약간 갖고 싶습니다. (강한 자신에 의해 추가) documentation에서

답변

7

:

당신은 파일 기반 연속 보관하지 않고 스트리밍 복제 사용할 경우에는 보장하기 위해 충분히 높은 에 마스터에 wal_keep_segments을 설정해야 오래된 WAL 세그먼트는 너무 일찍 재활용되지 않지만 대기업은 여전히이를 따라 잡을 필요가 있습니다. 대기 모드가 지나치게 떨어지면 새 기본 백업에서 다시 초기화해야합니다. 대기에서 액세스 할 수있는 WAL 아카이브를 설정하는 경우 wal_keep_segments가 필요하지 않습니다. 대기자는 항상 아카이브를 사용하여 따라 잡을 수 있기 때문입니다.

제 생각에 너무 많은 트랜잭션을 실행하면 슬레이브가 동기화에 어려움을 겪을 수 있습니다. 특히 슬레이브가 내부에 무엇이 들어가기 전에 마스터가 WAL 파일을 제거한다면. 마스터에 archive_mode이 없으면 WAL 파일을 다시 가져올 방법이없이 삭제 될 수 있습니다.

WAL 보관을 유지하고 작동중인 대기 - 대기 - 아카이브 구조에 스트리밍을 추가하는 경우 슬레이브가 항상 보관 된 WAL에 액세스 할 수 있기 때문에 이러한 상황이 발생할 수 없습니다. 스트림의 활동을 허용합니다. 보관소에 액세스하지 않으면 위험 부담이되는 일이 발생하여 슬레이브 무결성을 잃을 위험이 있습니다.