WAL자동으로 릴리스 7.1부터 활성화됩니다. 에서 조치가 필요하지 않습니다. 관리자는 추가 확인을 제외하고 의 디스크 공간 요구 사항WAL로그가 충족되었으며 필요한 모든 튜닝이 완료되었습니다(참조섹션 12.3).
WAL로그는 다음 위치에 저장됩니다. 디렉토리$PGDATA/pg_xlog, 세그먼트 집합으로 파일 크기는 각각 16MB입니다. 각 세그먼트는 8kB로 나누어집니다. 페이지. 로그 레코드 헤더에 대한 설명은액세스/xlog.h; 기록 내용은 다음에 따라 달라집니다. 기록되는 이벤트 유형입니다. 세그먼트 파일이 제공됩니다. 에서 시작하여 계속 증가하는 숫자의 이름0000000000000000. 숫자는 줄 바꿈되지 않습니다. 존재하지만 이를 소진하는 데는 매우 오랜 시간이 걸릴 것입니다. 사용 가능한 재고가 있습니다.
그WAL버퍼 및 제어 구조는 공유 메모리에 있으며 백엔드에 의해 처리됩니다. 가벼운 자물쇠로 보호됩니다. 공유에 대한 수요 메모리는 버퍼 수에 따라 달라집니다. 기본 크기WAL버퍼는 8개 버퍼입니다. 각각 8kB 또는 총 64kB입니다.
로그가 다른 디스크에 있는 경우 유리합니다. 기본 데이터베이스 파일. 이는 다음을 이동하여 달성할 수 있습니다. 디렉토리,pg_xlog, 다른 위치로 (물론 포스트마스터가 종료되는 동안) 그리고 원래 위치의 심볼릭 링크$PGDATA새 위치로.
목적WAL, 보장하기 위해 데이터베이스 레코드가 변경되기 전에 로그가 기록된다는 점은 성공을 거짓으로 보고하는 디스크 드라이브에 의해 전복될 수 있습니다. 실제로는 캐시만 한 상태에서 커널에 씁니다. 데이터가 아직 디스크에 저장되지 않았습니다. 그러한 정전 상황은 여전히 복구할 수 없는 데이터 손상으로 이어질 수 있습니다. 관리자는 디스크가 보유하고 있는지 확인해야 합니다.포스트그레SQL의 로그 파일은 그렇지 않습니다. 그런 허위보고를 하게 됩니다.
체크포인트가 만들어지고 로그가 플러시된 후, 체크포인트 위치는 파일에 저장됩니다.pg_control. 그러므로 회복이 필요할 때 완료되면 백엔드가 먼저 읽습니다.pg_control그리고 체크포인트 기록; 그럼 로그에서 앞으로 스캔하여 REDO 작업을 수행합니다. 체크포인트 기록에 표시된 위치. 때문에 전체 데이터 페이지의 내용은 첫 번째 페이지의 로그에 저장됩니다. 체크포인트 이후 수정, 이후 모든 페이지가 변경됨 체크포인트가 일관된 상태로 복원됩니다.
사용 중pg_control얻기 위해 체크포인트 위치는 복구 프로세스 속도를 높이지만 손상 가능성을 처리합니다.pg_control, 우리는 실제로 다음을 구현해야 합니다 기존 로그 세그먼트를 역순으로 읽기 - 최신 가장 오래된 것 - 마지막 체크포인트를 찾기 위해. 이것은 그렇지 않았습니다 아직 구현되지 않았습니다.
| 젠 토토 : 문서 : 7.3 : 젠 토토 호위 (WAL) | 집 | 다음 |
| 미리 쓰기 로깅 (WAL) | 위로 | WAL구성 |