pg_dump는 PostgreSQL 데이터베이스의 논리적 백업을 수행하는 유틸리티이다.
SQL 명령어가 포함된 텍스트 파일을 생성하며, 이 파일을 실행하면 데이터베이스를 덤프 시점의 상태로 재생성할 수 있다.
생성된 덤프파일은 postgresql 버전과 상관 없이 로드할 수 있다.
vi postgresql_backup.sh
#!/bin/bash
# Set variables
DB_USER="$DB_USER_NAME"
BACKUP_DIR="/$PATH/$TO/$BACKUP/$FILE/$DIRECTORY"
DATE=$(date +\%Y-\%m-\%d_\%H-\%M-\%S)
BACKUP_FILE_NAME="$BACKUP_DIR/$BACKUP_FILE_NAME.sql.gz"
# 백업 디렉토리가 존재하는지 확인. 없으면 생성.
mkdir -p $BACKUP_DIR
# 모든 데이터 베이스 대상으로 백업 수행
PGPASSWORD="$DB_USER_PASSWORD" pg_dumpall -U $DB_USER | gzip > $BACKUP_FILE
# 30일이 경과한 백업 파일 삭제
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +30 -exec rm {} \;
chmod +x postgresql_backup.sh
crontab -e
# 상황에 맞게 일정 조정
# 매주 일요일 새벽 2시에 백업
0 2 * * 0 /$PATH/$CONTAINED/postgresql_backup.sh
pgBackRest는 PostgreSQL을 위한 안정적인 백업 및 복원 솔루션으로, 가장 큰 데이터베이스와 작업 부하까지 원활하게 확장 가능하다.