2025년 9월 25일:토토 커뮤니티 : 토토
이 문서는 지원되지 않는 토토 결과 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 28.6. 사설 토토 사이트 Internals버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

29.5. WAL 내부

WAL은 자동으로 활성화됩니다. 디스크 공간 요구 사항을 확인하는 것 외에는 관리자가 수행할 작업이 없습니다.WAL로그가 충족되었으며 필요한 조정이 완료되었습니다(참조섹션 29.4).

WAL로그는 디렉토리에 저장됩니다.pg_xlog데이터 디렉토리 아래, 세그먼트 파일 세트로, 일반적으로 각 크기는 16MB입니다(그러나 크기는 다음을 변경하여 변경할 수 있습니다.--with-wal-segsize서버 구축 시 옵션 구성). 각 세그먼트는 일반적으로 각각 8kB의 페이지로 나뉩니다(이 크기는 다음을 통해 변경될 수 있습니다.--with-wal-blocksize옵션 구성). 로그 레코드 헤더에 대한 설명은액세스/xlogrecord.h; 기록 내용은 기록되는 이벤트 유형에 따라 달라집니다. 세그먼트 파일에는 다음부터 시작하여 계속 증가하는 숫자가 이름으로 지정됩니다.000000010000000000000001. 숫자는 줄 바꿈되지 않지만 사용 가능한 숫자 재고를 소진하는 데 매우 오랜 시간이 걸립니다.

로그가 기본 데이터베이스 파일과 다른 디스크에 있는 것이 유리합니다. 이는 다음을 이동하여 달성할 수 있습니다.pg_xlog디렉터리를 다른 위치로 복사하고(물론 서버가 종료되는 동안) 기본 데이터 디렉토리의 원래 위치에서 새 위치로 심볼릭 링크를 생성합니다.

목적WAL은 데이터베이스 레코드가 변경되기 전에 로그가 기록되는지 확인하는 것입니다. 그러나 실제로는 데이터를 캐시하기만 하고 아직 디스크에 저장하지 않은 경우 커널에 대한 성공적인 쓰기를 잘못 보고하는 디스크 드라이브에 의해 이 기능이 무너질 수 있습니다. 이러한 상황에서 정전이 발생하면 복구할 수 없는 데이터 손상이 발생할 수 있습니다. 관리자는 디스크가 보유하고 있는지 확인해야 합니다.토토 결과'sWAL로그 파일은 그러한 거짓 보고를 하지 않습니다. (보다섹션 29.1.)

체크포인트가 생성되고 로그가 플러시된 후 체크포인트의 위치가 파일에 저장됩니다.pg_control. 따라서 복구 시작 시 서버는 먼저 다음을 읽습니다.pg_control그리고 체크포인트 기록; 그런 다음 체크포인트 레코드에 표시된 로그 위치부터 정방향으로 스캔하여 REDO 작업을 수행합니다. 체크포인트 이후 첫 번째 페이지 수정 시 데이터 페이지의 전체 내용이 로그에 저장되기 때문에(가정)full_page_writes비활성화되지 않음) 체크포인트 이후 변경된 모든 페이지는 일관된 상태로 복원됩니다.

다음의 경우를 처리하기 위해pg_control이 손상되었습니다. 최신 체크포인트를 찾기 위해 기존 로그 세그먼트를 역순으로(최신 항목부터 오래된 항목까지) 스캔할 수 있는 기능을 지원해야 합니다. 아직 구현되지 않았습니다.pg_control부분 쓰기 문제가 발생하지 않을 만큼 충분히 작으며(디스크 페이지 1개 미만), 이 글을 쓰는 시점에서 단지 읽을 수 없음으로 인한 데이터베이스 오류에 대한 보고는 없습니다.pg_control그 자체. 따라서 이론적으로는 약점이지만pg_control실제로는 문제가 되지 않는 것 같습니다.