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