신뢰성과 WAL

신뢰성과 WAL (Reliability and the Write-Ahead Log)

서버가 갑자기 다운되거나 전원이 나가도 데이터가 훼손되지 않으려면? PostgreSQL이 그런 크래시 복구를 보장하는 핵심 장치가 바로 **WAL(Write-Ahead Log, 선행 기록 로그)**이에요. 이번 장에서는 PostgreSQL의 신뢰성(reliability)을 어떻게 제어하는지, 그리고 WAL이 내부에서 어떻게 동작하는지까지 자세히 다룰게요.

출처: PostgreSQL 공식 문서 — wal

개요 (Overview)

이 장은 PostgreSQL의 신뢰성을 제어하는 방법을 설명해요. 그 중심에는 데이터 변경 사항을 본문 데이터 파일에 쓰기 전에 먼저 로그에 기록하는 **Write-Ahead Log(WAL)**가 있어요. WAL 덕분에 시스템이 크래시해도 로그를 기준으로 일관된 상태로 복구할 수 있죠.

내용은 아래 하위 주제로 나뉘어요.

신뢰성 (Reliability)

  • 28.1. Reliability — PostgreSQL이 데이터 손실과 훼손을 어떻게 방지하는지, 그리고 어떤 설정이 복구 동작에 영향을 주는지 알아봐요.

데이터 체크섬 (Data Checksums)

디스크나 하드웨어 수준에서 데이터가 조용히 훼손되는 경우를 어떻게 감지할까요? 그걸 위한 장치가 데이터 체크섬이에요.

WAL 소개 (Write-Ahead Logging)

비동기 커밋 (Asynchronous Commit)

  • 28.4. Asynchronous Commit — 커밋 시 WAL을 동기적으로 강제하지 않아 지연(latency)을 줄이되, 크래시 시 마지막 커밋들이 손실될 수 있는 비동기 커밋에 대해 배워요.

WAL 설정 (WAL Configuration)

  • 28.5. WAL Configuration — WAL의 크기, 위치, 체크포인트(checkpoint) 등 동작을 제어하는 설정 항목들을 살펴봐요.

WAL 내부 구조 (WAL Internals)

  • 28.6. WAL Internals — WAL 레코드의 구조, 페이지 단위 기록 방식 등 WAL의 내부 동작 원리를 자세히 들여다봐요.

더 알아보기 (Learn more)