이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 28 장. 신뢰성과 윈 토토 로그버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9장. 미리 토토 사이트 로깅 (WAL)

목차
9.1. 일반 설명
9.1.1. 즉시 의 장점WAL
9.1.2. 미래 이점
9.2. 구현
9.3. WAL구성

저자:바딤 미헤예프와 올리버 엘픽

9.1. 일반 설명

미리 토토 사이트 로깅 (WAL)은 트랜잭션에 대한 표준 접근 방식입니다. 로깅. 자세한 설명은 대부분(그렇지 않은 경우)에서 찾을 수 있습니다. 모두) 거래 처리에 관한 책. 간략하게,WAL의 중심 개념은 데이터의 변경입니다. 파일(테이블과 인덱스가 있는 곳)은 쓰기만 해야 합니다. 해당 변경 사항이 기록된 후, 즉 로그가 기록될 때 기록이 영구 저장소로 플러시되었습니다. 우리가 따라갈 때 이 절차에서는 데이터 페이지를 디스크로 플러시할 필요가 없습니다. 모든 트랜잭션 커밋은 다음과 같은 경우에 발생한다는 것을 알고 있기 때문입니다. 충돌이 발생하면 로그를 사용하여 데이터베이스를 복구할 수 있습니다. 데이터 페이지에 적용되지 않은 변경 사항은 먼저 로그 레코드에서 다시 실행됩니다(이것은 롤포워드입니다). 복구(REDO라고도 함) 및 변경 사항 커밋되지 않은 트랜잭션은 데이터 페이지에서 제거됩니다. (롤백 복구 - UNDO).

9.1.1. 즉각적인 이점WAL

사용의 첫 번째 확실한 이점WAL숫자가 크게 감소했습니다. 디스크 토토 사이트(로그 파일만 플러시하면 되므로) 트랜잭션 커밋 시 디스크; 다중 사용자 환경에서는 많은 트랜잭션의 커밋이 단 한 번으로 완성됨fsync()로그 파일의. 또한 로그 파일이 기록됩니다. 순차적이므로 로그 동기화 비용이 훨씬 적습니다. 데이터 페이지를 플러시하는 비용보다.

다음 이점은 데이터 페이지의 일관성입니다. 는 사실은 그 전에는WAL, 포스트그레SQL절대 할 수 없었습니다 충돌 발생 시 일관성을 보장합니다. 이전WAL, 쓰기 중 충돌 발생 다음과 같은 결과가 발생할 수 있습니다.

  1. 존재하지 않는 테이블 행을 가리키는 인덱스 튜플

  2. 분할 작업에서 인덱스 튜플이 손실됨

  3. 테이블 또는 인덱스 페이지 내용이 완전히 손상되었습니다. 부분적으로 작성된 데이터 페이지 수

색인 관련 문제(문제 1 및 2)는 아마도 추가로 수정되었습니다.fsync()호출하지만 어떻게 해야 할지 명확하지 않습니다. 없이 마지막 사건을 처리합니다.WAL; WAL저장 필요한 경우 로그의 전체 데이터 페이지 내용 충돌 후 복구를 위한 페이지 일관성을 보장합니다.

9.1.2. 미래의 이익

이 첫 번째 릴리스에서WAL, UNDO 작업은 시간부족으로 인해 구현되지 않습니다. 이는 중단된 트랜잭션으로 인해 발생한 변경 사항이 여전히 디스크 공간을 차지하고 있으며 여전히 영구 디스크가 필요합니다.pg_log상태를 유지할 파일 트랜잭션을 재사용할 수 없기 때문에 트랜잭션 식별자. UNDO가 구현되면,pg_log더 이상 필요하지 않습니다. 영구적인; 제거가 가능합니다pg_log종료 시 세그먼트로 분할 이전 세그먼트를 삭제하세요.

UNDO를 사용하면 구현도 가능합니다저장점부분 롤백을 허용합니다. 잘못된 트랜잭션 작업(다음으로 인한 파서 오류) 명령을 잘못 입력함, 중복된 기본/고유 삽입 키 등) 계속하거나 유효하게 커밋할 수 있는 기능 오류가 발생하기 전에 트랜잭션에 의해 수행된 작업입니다. 에 현재 오류가 발생하면 전체 거래가 무효화되며 거래 중단이 필요합니다.

WAL기회를 제공합니다 데이터베이스 온라인 백업 및 복원을 위한 새로운 방법 (). 이 방법을 사용하려면 하나 정기적으로 데이터 파일을 다른 파일에 저장해야 합니다. 디스크, 테이프 또는 다른 호스트에 저장하고 또한 아카이브합니다.WAL로그 파일. 데이터베이스 파일 복사본과 보관된 로그 파일을 사용하여 복원할 수 있습니다. 마치 충돌 후 복원하는 것처럼. 매번 새로운 데이터베이스 파일 복사본이 만들어졌습니다. 이전 로그 파일이 복사되었을 수 있습니다. 제거되었습니다. 이 기능을 구현하려면 로깅이 필요합니다. 데이터 파일 및 인덱스 생성 및 삭제; 그것은 또한 것입니다 데이터 파일을 복사하는 방법의 개발이 필요합니다. (운영 체제 복사 명령은 적합하지 않습니다.)