PostgreSQL의 data 폴더(데이터 디렉터리)는 데이터베이스 클러스터의 모든 데이터, 설정, 로그, 그리고 내부 관리 정보를 저장하는 곳입니다. 이 폴더 안에는 여러 파일과 하위 디렉터리가 있으며, 각각의 역할이 다릅니다. 주요 파일과 디렉터리에 대해 자세히 설명드리겠습니다.
1. 구성 파일 (Configuration Files)
-
postgresql.conf
PostgreSQL의 메인 설정 파일입니다. 데이터베이스 서버의 동작 방식(예: 포트, 메모리 사용량, 로깅 설정 등)을 정의합니다.
-
pg_hba.conf
호스트 기반 인증 파일로, 클라이언트의 접속을 허용할 IP 주소, 인증 방법 등을 설정합니다.
-
pg_ident.conf
클라이언트 사용자 이름과 데이터베이스 사용자 이름 간의 매핑을 정의합니다.
2. 데이터 파일 및 시스템 카탈로그
-
base 디렉터리
각 데이터베이스는 base 디렉터리 내에 개별 디렉터리로 저장됩니다. 이 디렉터리에는 실제 데이터와 테이블, 인덱스 등이 저장된 파일들이 있습니다.
-
global 디렉터리
클러스터 전체에 영향을 미치는 시스템 카탈로그 정보(예: 데이터베이스 목록, 사용자, 권한 등)가 저장됩니다.
-
pg_xlog (또는 최신 버전에서는 pg_wal) 디렉터리
Write-Ahead Log(WAL) 파일들이 저장됩니다. WAL은 데이터의 일관성과 복구를 위한 중요한 로그 파일입니다.
3. 추가적인 내부 관리 디렉터리
-
pg_stat_tmp
임시 통계 데이터를 저장하는 디렉터리입니다. 서버 성능이나 사용 통계와 관련된 임시 파일들이 저장됩니다.
-
pg_multixact
여러 트랜잭션이 동시에 같은 자원에 접근할 때 발생하는 정보를 저장합니다.
-
pg_subtrans
서브트랜잭션 관련 정보를 저장하는 디렉터리입니다.
-
pg_logical, pg_notify, pg_replslot 등
Logical replication, 알림, 복제 슬롯과 관련된 데이터 파일들이 저장됩니다.
-
PG_VERSION
이 파일에는 데이터베이스 클러스터의 PostgreSQL 버전 정보가 기록되어 있습니다.
4. 백업 및 복원과 관련된 파일들
요약
- 구성 파일들은 PostgreSQL 서버의 동작을 제어합니다.
- base와 global 디렉터리는 실제 데이터와 시스템 카탈로그 정보를 저장합니다.
- WAL 관련 디렉터리 (pg_wal/pg_xlog)는 데이터 복구와 일관성을 위한 로그 파일들을 포함합니다.
- 기타 디렉터리들은 통계, 복제, 트랜잭션 관리 등 내부 기능을 지원합니다.
이처럼 PostgreSQL의 data 폴더는 단순히 데이터 파일만 있는 것이 아니라, 서버 운영에 필수적인 다양한 구성과 관리 정보를 담고 있으며, 각각의 파일과 디렉터리가 데이터베이스의 안정성과 성능, 보안을 유지하는 데 중요한 역할을 합니다.