<aside>
PostgreSQL은 ACID 트랜잭션을 보장하기 위해 Write-Ahead Logging(WAL) 매커니즘을 사용한다.
그러나 WAL이 단일 디렉터리에만 저장된다면 디스크 손상이나 시스템 장애 시 WAL 자체가 유실될 수 있으며, 데이터베이스 복구 불가능 상태가 될 수 있다.
이를 방지하기 위해 PostgreSQL은 WAL은 외부 스토리지로 복사/보존하는 아카이빙 기능을 제공한다.
WAL은 데이터 페이지를 실제로 쓰기 전에 변경 내용을 먼저 WAL 로그에 기록하여 데이터 무결성을 보장한다.
장애 발생 시 최근 체크포인트의 Redo Point부터 WAL을 재생하여 변경 사항을 재적용하여 장애를 복구할 수 있으며, **시점 복구(PITR)**도 가능하게 한다.
PITR(Point-In-Time-Recovery): 특정 시점까지 WAL을 재생해 원하는 시점으로 복구한다.
WAL 저장 경로는 데이터 클러스터 내 pg_wal 디렉터리이다.
--waldir 옵션으로 경로 변경 가능WAL은 데이터 클러스터 내 16MB의 세그먼트 단위로 나뉘어 저장된다.
--wal-segsize 옵션으로 세그먼트 크기 조정 가능각 세그먼트는 여러 페이지(보통 8KB)로 구성되며, 페이지 안에 레코드 단위로 변경 내용이 순차적으로 기록된다.
--with-wal-blocksize 옵션으로 블록 크기 조정 가능