2014-11-17 5 views
1

저는 postgresql에서 매우 새로 왔습니다. 로그 전달 복제 프로세스에 대해 물어보고 싶습니다. 시간 초과 매개 변수는 로그 전달 프로세스에서 선택 사항입니다. 이것은 postgreSQL이 WAL 파일이 기본적으로 16MB가 전송 될 때까지 기다리지 않기를 지정합니다. 내 질문은, 더 나은 시간 초과 매개 변수 (예 : archive_timeout = 60) 또는 아닙니다? 시간 초과 매개 변수를 사용하면 로그 전달에서 WAL 파일의 프로세스가 기본값보다 빠릅니다 (0 기본값은 WAL이 채워질 때까지 나타냅니다)? 왜?로그 전달 프로세스 (archive_timeout)

죄송하지만이 상황에서 혼란 스럽습니다.

답변

1

복제를 적시에 수행하려면 스트리밍 복제와 로그 전달을 사용하는 것이 좋습니다.

archive_timeout의 주된 목적은 PITR 백업을 위해 로그 전달을 사용할 때 서버가 많은 WAL을 생성하지 않는 상황에서 최대 시간대의 데이터 손실이 발생하도록 보장하는 것입니다. 드물다.

+0

답변 해 주셔서 감사합니다. 미안하지만 분명하지 않습니다. "서버가 WAL을 많이 생성하지 않아서 세그먼트 순환 게재가 빈번하지 않을 수 있습니다"라는 의미일까요? 그것에 대해 더 설명해 주시겠습니까? 그리고 더 많은 것은 또한 스트리밍 복제를하고 작업이지만, 로그 전달을 할 때 작동하지 않습니다. 왜냐하면 슬레이브에서 데이터베이스 시스템이 시작되기 때문입니다. 나는 http : //www.themagicnumber에서이 단계를 참조합니다. .es/replication-in-postgresql-i? lang = en. postgresql 버전 9.3을 사용하고 있습니다. 네가 나를 도울 수 있기를 바랍니다. – Najwa

+0

@Najwa 글쎄, 매분마다 작은 INSERT를하고 있다고 가정 해보십시오. 쓰기 당 WAL 미만의 WAL을 생성하므로 16MB 세그먼트에서는 WAL 세그먼트를 아카이브에 보내기 전에'justify_interval (INTERVAL '16384'SECOND)'= 약 4 시간 30 분이 걸립니다. 그보다 훨씬 빨리 전송하기를 원할 수도 있습니다. 예를 들어, 충돌시 최대 10 분의 데이터를 잃어 버리는 것을 보장 할 수 있습니다. 이것이 바로'archive_timeout'의 목적입니다. –

+0

그것은 WAL 파일 세그먼트를 아카이브로 보내는 데 오랜 시간이 걸리면 충돌이 발생할 확률이 더 높다는 뜻입니까? – Najwa