데이터 체크섬은 스트리밍 복제와 어떻게 상호 작용합니까?


11

데이터 체크섬 은 9.3에서 도입 된 새로운 기능이며 다음과 같습니다.

새로운 GUC 매개 변수 "ignore_checksum_failure"가있어 손상이 감지 된 경우에도 PostgreSQL이 트랜잭션을 계속 처리하도록합니다.

복제 마스터에서 체크섬 오류가 발생하면 손상된 데이터가 슬레이브로 복제되거나 복제가 중지됩니다. 의 설정에 따라 달라 ignore_checksum_failure집니까?

읽어보기에는 유용한 관련 정보가 있지만 질문에 직접 대답하지는 않습니다.


6
아주 좋은 질문입니다. 데이터 체크섬이 WAL에도 영향을 미치는지 여부 (WAL의 전체 페이지 이미지를 제외하고 어떤 IIRC에 영향을 미치지 않는지)에 따라 다릅니다. 다른 기능을 지원하면서 데이터 체크섬을 파헤칠 시간이 없었습니다. pgsql-general을 요청하는 것이 좋습니다. 시간과 새로운 아기가 허락한다면 나는 그 근원들을 살펴볼 것이지만 숨을 쉬지 않을 것입니다.
크레이그 벨소리

3
@Craig 축하합니다!
잭 topanswers.xyz 시도라고

4
StackExchange에서 배우는 것은 "다른 기능을 지원하고있다"는 "기저귀 교체"라는 완곡 어입니다.
Colin 't Hart

답변:


1

디스크에있는 동안 데이터가 손상된 경우 복제본을 만든 백업에 이미 존재하지 않는 한 손상이 복제되지 않아야합니다.

물론 체크섬 실패를 무시하면 마스터가 잘못된 일을 시작하고 그 잘못이 복제됩니다.

메모리에서 손상이 발생하면 모든 베팅이 해제됩니다.


2
이 마크에 아주 가깝습니다. ignore_checksum_failure매개 변수 에 대한 설명서 에는 "이 동작은 ... 전파 될 수 있습니다 ... 손상"이라는 경고가 포함되어 있습니다. (스트리밍) 복제를 명시 적으로 언급하지 않으면 여기에 내포 된 것으로 보입니다. 일반적으로 체크섬 오류로 인해 트랜잭션이 중단되어 데이터가 복제되지 않습니다. 이 오류를 무시하면 트랜잭션을 커밋하고 손상된 데이터를 쓰기 (잠재적으로) 복제 할 수 있습니다.
Colin 't Hart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.