반응형
pg_dump를 사용하여 postgres 유저에서 자동으로 백업이 수행되게 설정하는 방법입니다.
백업은 5일만 보관하며 5일이 지난 백업은 삭제하는 로직이 추가되어 있습니다.
1) 백업용 디렉토리 만들기
실제 백업파일이 저장되는 backupfile, 로그가 저장되는 log , 쉘이 저장되는 shell을 생성합니다
mkdir -p /pgdata/backup/backup/backupfile
mkdir -p /pgdata/backup/backup/log
mkdir -p /pgdata/backup/backup/shell
drwxr-xr-x. 2 postgres postgres 94 Jul 31 10:04 backupfile
drwxr-xr-x. 2 postgres postgres 67 Jul 31 10:03 log
drwxr-xr-x. 2 postgres postgres 93 Jul 31 10:04 shell
2)백업 쉘 생성
#!/bin/bash
export PATH=/bin:/user/bin:/sbin:/usr/sbin
PG_BACKUP="/pgdata/backup/backupfile"
PG_USER="root"
PGPASSWORD=postgres
backup_date=`date +"%y%m%d%H%M"`
backup_date2=`date +"%y%m%d"`
# Remove backups older than 5 days
echo "step 1. starting remove old backupfile ${backup_date} " >> /pgdata/backup/log/postgres_backup_${backup_date2}.log
find $PG_BACKUP -ctime +5 -exec rm -f {} \; >> /pgdata/backup/log/postgres_backup_${backup_date2}.log
echo "step 1. completed ${backup_date} " >> /pgdata/backup/log/postgres_backup_${backup_date2}.log
# Database full backup
echo "step 2. starting pg backup ${backup_date} " >> /pgdata/backup/log/postgres_backup_${backup_date2}.log
/usr/pgsql-16/bin/pg_dump -h 127.0.0.1 -p 15432 -U $PG_USER -d postgres -v --format=custom --compress=gzip:9 > $PG_BACKUP/pbishop_postgres_${backup_date}.tar.gz
echo "step 2. completed ${backup_date} " >> /pgdata/backup/log/postgres_backup_${backup_date2}.log
3)크론탭 등록
[postgres@mdwprddb1 backup]$ crontab -l
##Postgres DB full backup
0 22 * * * sh /pgdata/backup/shell/postgres_backup.sh >> /pgdata/backup/log/postgres_backup.log 2>&1
끝.
반응형
'다른 DBMS > PostgresDB' 카테고리의 다른 글
[DDL] Alter 명령어가 끝나지 않고 계속 수행중일때 (0) | 2024.11.29 |
---|---|
형 변환과 CREATE CAST (0) | 2024.10.25 |
.pgpass 활용하여 password 입력 없이 접속하기 (0) | 2024.07.30 |
[PG16] redhat 8버전에 pg16설치하고 데이터 이관하기 (0) | 2024.07.24 |
오류: 기타 다른 개체들이 이 롤에 의존하고 있어, "유저명" 롤을 삭제할 수 없음 (0) | 2024.05.29 |
댓글