PostgreSQL 백업 쉘
[root@gp_db31 sh]# cat dbPITRbackup.sh
#!/bin/bash
STARTDATE=`date +%Y%m%d%H%M%S`
su - postgres -c "touch -t `date +%Y%m%d%H`00 /var/atgames/db/pg_standby/archive`hostname | cut -c 6-`/baseline"
#
echo "### PITR BACKUP START(`date +%Y/%m/%d_%H:%M:%S`) ###"
/usr/local/postgresql/bin/psql -h localhost -p 5432 -U postgres -c "SELECT pg_start_backup('backup_label_`echo -n ${STARTDATE}`');"
echo "cat /usr/local/postgresql/data/backup_label"
cat /usr/local/postgresql/data/backup_label
echo "--- TAR File Make START ---"
cd /usr/local/postgresql/
ionice -c2 -n7 nice -n19 tar czf /var/atgames/db/daily/`hostname`_DB_PITRbackup_${STARTDATE}.tar.gz data --exclude data/serverlog --exclude data/pg_xlog --exclude data/postmaster.pid
chown interdev.interdev /var/atgames/db/daily/`hostname`_DB_PITRbackup_${STARTDATE}.tar.gz
ls -lh /var/atgames/db/daily/`hostname`_DB_PITRbackup_${STARTDATE}.tar.gz
echo "--- TAR File Make END ---"
/usr/local/postgresql/bin/psql -h localhost -p 5432 -U postgres -c "SELECT pg_stop_backup();"
echo "--- WAL File Del START ---"
ls -la /var/atgames/db/pg_standby/archive`hostname | cut -c 6-`/baseline
find /var/atgames/db/pg_standby/archive`hostname | cut -c 6-`/ ! -newer /var/atgames/db/pg_standby/archive`hostname | cut -c 6-`/baseline ! -name baseline -type f -print
su - postgres -c "ionice -c2 -n7 nice -n19 find /var/atgames/db/pg_standby/archive`hostname | cut -c 6-`/ ! -newer /var/atgames/db/pg_standby/archive`hostname | cut -c 6-`/baseline ! -name baseline -type f -exec ionice -c2 -n7 nice -n19 rm -f {} \;"
echo "--- TAR File Del END ---"
echo "--- TAR File Scp START ---"
let num1=$(hostname | cut -c 6-)
if [ ${num1} -ge 36 ] ; then
let num2=`expr ${num1} - 5`
else
let num2=`expr ${num1} + 5`
fi
ionice -c2 -n7 nice -n19 rsync -ltr --bwlimit=100000 --progress /var/atgames/db/daily/`hostname`_DB_PITRbackup_${STARTDATE}.tar.gz interdev@172.19.1.${num2}::basebackup/
echo "--- TAR File Scp END ---"
echo "### PITR BACKUP END (`date +%Y/%m/%d_%H:%M:%S`) ###"
exit 0;