pg_restore 중에 체크 포인트가 너무 자주 발생합니다


15

PostgreSQL 9.2.2 (Windows 32 비트) pg_restore에서 체크 포인트 빈도에 대한 로그 경고를 체계적으로 생성 하는 명령이 있습니다.

LOG:  checkpoints are occurring too frequently (17 seconds apart)
HINT:  Consider increasing the configuration parameter "checkpoint_segments".

데이터베이스의 크기는 약 3.3Gb이며 112 개의 테이블 / 160 뷰가 있으며 약 14 분 안에 복원됩니다.

그 동안 발생하는 것이 정상 pg_restore입니까?

답변:


17

전체 DB 복원 중에는 드문 일이 아닙니다. 이는 매우 큰 작업이기 때문입니다. 정상 작동 checkpoint_segments중에이 오류가 표시되면 오류 메시지 힌트와 같이 설정을 영구적으로 높이는 것이 좋습니다.

checkpoint_segments복원 직전에 높게 설정하는 데 어려움을 겪고 다시 낮출 수 있습니다. 이것은 심지어 매뉴얼이 제안하는 것입니다 (설명 포함) :

checkpoint_segments구성 변수를 일시적으로 늘리면 큰 데이터로드가 더 빨라질 수 있습니다. 많은 양의 데이터를 PostgreSQL에로드하면 검사 점이 일반적인 검사 점 빈도 ( checkpoint_timeout구성 변수로 지정됨)보다 자주 발생하기 때문 입니다. 검사 점이 발생할 때마다 모든 더티 페이지를 디스크로 플러시해야합니다. checkpoint_segments대량 데이터로드 중에 일시적으로 증가 하면 필요한 체크 포인트 수를 줄일 수 있습니다.

자세한 내용과 관련된 답변 :

포스트그레스 9.5

다가오는 새로운 릴리스에는 더 똑똑한 접근 방식이 있습니다. 베타 출시 노트 인용 :

구성 매개 변수 checkpoint_segmentsmin_wal_size and max_wal_size(Heikki Linnakangas)로 바꾸십시오

이렇게하면 필요하지 않은 경우 많은 WAL 파일을 보관하지 않고 할당 할 수 있습니다. 따라서의 기본값 max_wal_size 이로 증가했습니다 1GB.

옆으로 :보기의 수는 거의 관련이 없으며, 데이터는 포함하지 않으며 "레시피"만 있습니다 (예 : 쿼리 및보기의 일부 속성). 당면한 문제는 기본적으로 백업 파일의 전체 크기 만 중요합니다.


checkpoint_segments를 30으로 설정하면이 메시지가 더 이상 로그에 나타나지 않습니다. 감사.
Sébastien Clément
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.