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

프로그래밍

데이터베이스 종류와 특징: RDBMS vs. NoSQL

2023년 08월 02일

데이터베이스는 현대 비즈니스에서 필수적인 요소입니다. 데이터베이스는 데이터를 저장하고 관리하는데 사용되며, 이를 통해 기업은 중요한 비즈니스 결정을 내리고 정보를 분석할 수 있습니다. 그러나 데이터베이스 종류는 무수히 많기 때문에 어떤 것을 사용해야 하는지 결정하기가 어렵습니다. 이번에는 RDBMS와 NoSQL의 차이와 각각의 특징에 대해 알아보겠습니다. RDBMS RDBMS는 관계형 데이터베이스 관리 시스템의 약어입니다. RDBMS는 테이블…

Read More
프로그래밍

소프트웨어 테스트 전략과 방법론

2023년 08월 02일

소프트웨어 개발은 복잡한 프로세스입니다. 그 중에서도 가장 중요한 단계 중 하나는 테스트입니다. 효과적인 테스트를 위해서는 테스트 전략과 방법론이 필요합니다. 이 글에서는 소프트웨어 테스트에 대한 전략과 방법론에 대해 상세히 설명하겠습니다. 테스트 전략 테스트 전략은 테스트를 수행하는 방식과 그 목적을 결정하는 계획입니다. 테스트 전략을 수립할 때는 다음과 같은 요소를 고려해야 합니다. 테스트…

Read More
프로그래밍

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

2023년 07월 28일

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

Read More

최신 글

  • 시맨틱 태그를 써야 하는 이유: 웹페이지 품질을 높이는 기본 원리 정리
  • 워드프레스 스팸 댓글 관리 기본 설정 및 차단 대처 요령
  • 파이썬 CSV 자동 정리 스크립트 작성법: 데이터 전처리 요령
  • 브라우저 캐시 삭제가 필요한 경우와 상황별 대처 요령 정리
  • 맥북 발열 줄이는 기본 설정: 성능 저하를 막는 실무 관리 요령

최신 댓글

보여줄 댓글이 없습니다.

보관함

  • 2026년 10월
  • 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