Skip to content
toylee blog
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

  • 홈
  • 컴퓨터 활용
  • 프로그래밍
    • 파이썬
    • 자바(Java)
    • Flutter
    • HTML
    • Linux
    • 워드프레스
  • 맥북
  • IT 일반
  • 블로그 소개
  • 문의하기
toylee blog

컴퓨터·IT 문제 해결과 최신 기술 정보

PostgreSQL 백업 자동화: pg_dump와 복구 검증

toylee, 2026년 02월 17일2026년 08월 27일

PostgreSQL 백업 자동화는 pg_dump 실행만 예약하는 것으로 끝나지 않습니다. 비밀번호 노출 방지, 실패한 파일의 구분, 보존 정책, 복구 검증과 모니터링이 함께 있어야 실제 사고에서 사용할 수 있습니다.

[목차]

  • 백업 형식 선택
  • 비밀번호 파일을 안전하게 준비합니다
  • Custom 형식 자동화 예제
  • 복구 시험
  • 놓치기 쉬운 항목
  • 공식 참고자료
  • 관련 글

백업 형식 선택

  • Custom(-Fc): 압축, 선택 복구와 pg_restore 사용이 가능해 일반적인 단일 DB 백업에 적합합니다.
  • Directory(-Fd): 병렬 덤프와 병렬 복구가 필요한 큰 DB에 적합합니다.
  • Plain SQL: 사람이 읽기 쉽지만 선택 복구와 병렬 처리에는 제약이 있습니다.

비밀번호 파일을 안전하게 준비합니다

Linux에서는 실행 계정의 ~/.pgpass 또는 PGPASSFILE로 지정한 파일에 다음 형식을 사용합니다.

db.example.com:5432:appdb:backup_user:replace-with-secret
chmod 600 ~/.pgpass

비밀번호를 명령행 인수나 스크립트 본문에 직접 넣지 않습니다. 백업 계정에는 필요한 최소 권한만 부여하세요.

Custom 형식 자동화 예제

#!/usr/bin/env bash
set -Eeuo pipefail
umask 077

backup_dir="/srv/backups/postgresql"
stamp="$(date -u +%Y%m%dT%H%M%SZ)"
tmp="$backup_dir/.appdb-$stamp.dump.tmp"
dest="$backup_dir/appdb-$stamp.dump"

mkdir -p "$backup_dir"
trap 'rm -f "$tmp"' EXIT

pg_dump \
  --host=db.example.com \
  --username=backup_user \
  --dbname=appdb \
  --format=custom \
  --file="$tmp"

pg_restore --list "$tmp" > /dev/null
mv "$tmp" "$dest"
trap - EXIT

find "$backup_dir" -type f -name 'appdb-*.dump' -mtime +30 -delete
printf 'backup complete: %s\n' "$dest"

pg_restore --list는 아카이브 구조를 읽을 수 있는지 확인하지만 전체 복구 성공을 보장하지는 않습니다. 운영과 분리된 DB에 정기적으로 복원해 애플리케이션의 핵심 쿼리까지 시험해야 합니다.

복구 시험

createdb --template=template0 appdb_restore_test
pg_restore \
  --exit-on-error \
  --clean --if-exists \
  --dbname=appdb_restore_test \
  /srv/backups/postgresql/appdb-20260827.dump

소유자와 권한을 다른 환경에서 복원한다면 --no-owner, --role 같은 옵션을 환경에 맞게 검토합니다. 운영 DB를 대상으로 복구 명령을 처음 시험하면 안 됩니다.

놓치기 쉬운 항목

  • pg_dump 클라이언트가 서버의 더 새로운 메이저 버전을 지원하는지 확인합니다.
  • 역할과 테이블스페이스 등 클러스터 전역 객체는 pg_dumpall --globals-only로 별도 보관합니다.
  • 백업 용량, 종료 코드와 마지막 성공 시간을 모니터링합니다.
  • DB 서버와 다른 장애 영역에 암호화된 사본을 둡니다.

공식 참고자료

  • PostgreSQL: SQL Dump 백업
  • PostgreSQL: pg_dump
  • PostgreSQL: Password File

관련 글

  • SQLite 데이터 백업과 복구: 안전한 명령과 검증 절차
  • 리눅스에서 자동화 스크립트 작성하는 법

내용 검토 및 업데이트: 2026년 8월 27일

프로그래밍 IT 튜토리얼postgresqlpostgresql 스크립트postgresql 자동화pythonsql 스크립트sql 자동화데이터베이스 자동화

글 탐색

Previous post
Next post

Related Posts

프로그래밍

쿠키와 세션의 작동 원리와 보안 이슈

2023년 07월 25일

쿠키 및 세션은 사용자 인증 및 건강 유지에 중요한 역할을 하는 웹 응용 프로그램의 필수적인 부분입니다. 이 블로그에서는 쿠키 및 세션의 역학, 중요성 및 관련 보안 문제에 대해 설명합니다. 쿠키란 무엇입니까? 즉, 쿠키는 클라이언트 측에 저장된 작은 데이터 조각입니다. 이러한 데이터 패킷은 서버에서 클라이언트로 전송되고, 여기서 클라이언트 측에 저장됩니다. 이러한…

Read More
프로그래밍

머신러닝 모델의 성능 향상을 위한 특성 공학

2023년 07월 28일

머신러닝 모델의 성능을 향상시키기 위해 특성 공학을 사용하는 방법을 알아보자. 특성 공학은 데이터의 특성을 변형하거나 선택하여 머신러닝 모델의 성능을 향상시키는 과정이다. 특성 공학이란? 특성 공학은 머신러닝 모델의 성능을 향상시키기 위한 과정이다. 데이터의 특성을 변형하거나 선택하여 머신러닝 모델이 더 잘 이해할 수 있도록 만들 수 있다. 특성 공학에는 다양한 기법이 있으며,…

Read More
프로그래밍

uml 다이어그램 종류 및 툴

2024년 06월 24일

다이어그램은 시스템의 구조 행위를 표현하며, 이를 통해 개발자와 이해관계자 간의 의사소통을 원활하게 합니다. 예를 들어, 클래스 다이어그램은 시스템의 구조를, 시퀀스 다이어그램은 객체 간의 상호작용을 나타냅니다. uml 다이어그램 같이 알아봅시다.

Read More

최신 글

  • 브라우저 캐시 삭제가 필요한 경우와 안전하게 정리하는 방법 정리
  • 맥북 발열 줄이는 기본 설정: 성능과 배터리를 지키는 실천 방법
  • 에러 로그 읽는 습관 만들기: 개발 속도를 높이는 실전 분석 요령
  • HTML 링크 태그 접근성 체크리스트: 누구나 이용하기 쉬운 웹사이트 만드는 방법
  • 워드프레스 글 발행 체크리스트: 놓치기 쉬운 7가지 필수 점검 항목

최신 댓글

보여줄 댓글이 없습니다.

보관함

  • 2026년 9월
  • 2026년 8월
  • 2026년 2월
  • 2025년 7월
  • 2025년 6월
  • 2025년 5월
  • 2025년 4월
  • 2025년 3월
  • 2025년 2월
  • 2025년 1월
  • 2024년 12월
  • 2024년 11월
  • 2024년 8월
  • 2024년 6월
  • 2024년 5월
  • 2024년 3월
  • 2024년 2월
  • 2023년 11월
  • 2023년 9월
  • 2023년 8월
  • 2023년 7월
  • 2023년 6월
  • 2023년 5월
  • 2023년 4월
  • 2023년 3월
  • 2023년 2월

카테고리

  • Flutter
  • HTML
  • IT 일반
  • Linux
  • 맥북
  • 워드프레스
  • 자바(Java)
  • 컴퓨터 활용
  • 파이썬
  • 프로그래밍

사이트 안내

  • 블로그 소개
  • 문의하기
  • 개인정보 처리방침
©2026 toylee blog | WordPress Theme by SuperbThemes