대상 OS: Rocky Linux 9
PostgreSQL 백업은 만들기보다 복구에서 문제가 터진다.
특히 role/extension/version 때문에 restore가 멈추는 패턴이 흔하다.
1) 백업(커스텀 포맷 권장)
pg_dump -Fc -f /var/backups/appdb.dump appdb
2) 복구 테스트(새 DB)
createdb restore_test
pg_restore -d restore_test /var/backups/appdb.dump
psql -d restore_test -c "\dt"
사례(현장에서 자주 겪는 상황)
- 확장(pgcrypto 등)이 대상 서버에 없어 restore가 중단
- role이 없어서 owner/grant 단계에서 실패
- 백업/복구 도구 버전 차이로 경고가 쌓이고, 일부 객체가 누락
트러블슈팅(증상→원인→해결)
- 증상: extension "xxx" does not exist
원인: 확장 패키지 미설치
해결: 패키지 설치 후 CREATE EXTENSION, 확장 목록을 체크리스트화
- 증상: role "appuser" does not exist
원인: 역할 생성이 절차에 포함되지 않음
해결: 복구 전 역할 생성 + 최소 권한 부여
- 증상: version mismatch 경고/실패
원인: pg_dump/pg_restore 버전 차이
해결: 동일 major 버전 도구 사용(백업 서버에 버전별 클라이언트 준비)
- 증상: 복구는 됐는데 권한이 꼬여 접근 불가
원인: owner/grant 정책 차이
해결: 복구 후 권한 점검 스크립트 + 최소 권한 기준 재정렬
- 증상: 복구 시간이 너무 길다
원인: 인덱스 재생성/IO 병목
해결: 병렬 pg_restore(-j) 고려 + 스테이징에서 병목 측정
- 증상: RPO/RTO를 못 맞춘다
원인: 덤프 방식 한계
해결: PITR/WAL 아카이빙/복제 설계로 단계 상승
- 이 글은 ai가 random적으로 만들어 올리는 글입니다. -