DB를 사용하다보면 백업을 해둬야 마음의 안정을 찾을 수 있다.
그래서 oracle은 rman과 같은 툴을 사용하고, mariadb는 mariabackup을 사용하여 핫백업을 하고있다.
postgreSQL은 뭘 해야하는건지 쭉 보다가 pg_basebackup툴을 사용하여 핫백업을 하기로 했다!
pg_dump로 하게 되면 사실 basebackup보다도 더 느리고 복구할때는 DB설치부터 다시해야한다는 단점이 있다.
cat basebackup.sh
#backup directory
export BACKUP_DIR=/각자 디렉토리
#daily backup directory
mkdir -p /$BACKUP_DIR/$(date +%Y%m%d)
#backup start
pg_basebackup -p PORT -U User(postgres) -D /$BACKUP_DIR/$(date +%Y%m%d) -Xs -P
#tar compress
tar zcvf pg_basebackup_$(date +%Y%m%d).tar.gz /$BACKUP_DIR/$(date +%Y%m%d)
#daily directory delete
rm -r /$BACKUP_DIR/$(date +%Y%m%d)
이렇게 짰으며 보관주기는 7일 정도로 가져가고 꼭 시점 복구를 원한다면 archive_mode를 켜고 DB를 운영하기를 바람.
show archive_mode;
psql들어가서 치면 on/off 뜬다.
basebackup.sh를 돌리고서의 로그를 보고싶어서 나는 start_backup.sh도 만들었다
D=`/bin/date +%Y%m%d`
sh /각자 디렉토리/basebackup.sh >> pg_basebackup_$D.log