WAL자동으로입니다 활성화; 관리자에게는 조치가 필요하지 않습니다 의 추가 디스크 공간 요구 사항 확인Wal로그가 충족되고 필요한 튜닝이 완료되었습니다 (섹션 25.3).
Wal로그는에 저장됩니다 예배 규칙서pg_xlog데이터에 따라 디렉토리는 세그먼트 파일 세트로서 각 크기가 16MB입니다. 각 세그먼트는 8kb 페이지로 나뉩니다. 로그 레코드 헤더가 있습니다 설명access/xlog.h; 기록 내용은 기록중인 이벤트 유형에 따라 다릅니다. 세그먼트 파일은 숫자가 이름으로 표시되고 시작0000000000000000. 그만큼 숫자는 현재 포장되지 않지만 매우 오래 걸립니다. 사용 가능한 숫자를 소진 할 시간입니다.
Wal버퍼 및 제어 구조는 공유 메모리에 있으며 서버에서 처리합니다. 아동 과정; 그들은 가벼운 자물쇠로 보호됩니다. 그만큼 공유 메모리에 대한 수요는 버퍼 수에 따라 다릅니다. 의 기본 크기Wal버퍼는 각각 8kb 또는 총 64kb입니다.
로그가 다른 디스크에있는 경우 유리합니다. 기본 데이터베이스 파일. 이것은 이동함으로써 달성 될 수 있습니다 예배 규칙서PG_XLOG다른 위치로 (물론 서버가 종료되는 동안) 기본 데이터의 원래 위치에서 상징적 링크 새 위치에 대한 디렉토리.
의 목표Wal, 보장합니다 데이터베이스 레코드가 변경되기 전에 로그가 작성되었다. 디스크 드라이브로 전복11834_12122토토 캔'sWal로그 파일은 그러한 허위를 만들지 않습니다 보고서.
체크 포인트가 만들어지고 로그가 플러시 된 후 Checkpoint의 위치는 파일에 저장됩니다PG_CONTROL. 그러므로 회복 될 때 완료, 서버가 먼저 읽습니다PG_CONTROL그리고 체크 포인트 레코드; 그런 다음 REDO를 수행합니다 표시된 로그 위치에서 앞으로 스캔하여 작동 체크 포인트 레코드. 데이터 페이지의 전체 컨텐츠이기 때문에 다음 페이지 수정 후 로그에 저장됩니다. 체크 포인트, 모든 페이지가 체크 포인트가되기 때문에 변경되었습니다 일관된 상태로 복원.
사용PG_CONTROL체크 포인트 위치는 복구 프로세스 속도를 높이지만 처리합니다. 의 가능한 부패PG_CONTROL, 우리 실제로 기존 로그 세그먼트의 읽기를 구현해야합니다. 마지막을 찾기 위해 리버스 순서 - 가장 오래된 것 - 가장 오래된 것 - 가장 오래된 것입니다. 검문소. 이것은 아직 구현되지 않았습니다.