date=`date +%Y%m%d`
bak_path="/var/lib/pgsql/9.3/backups"
log_path="/var/log/backup"
log="/var/log/backup/backup-mwa-data-$date.log"
wt_log()
{
if [ $? -ne 0 ] ;then
echo "${*}:失敗![end:`date +%Y%m%d'-'%H:%M:%S`]">>${log} 2>&1
else
echo "${*}:成功![end:`date +%Y%m%d'-'%H:%M:%S`]">>${log} 2>&1
fi
}
/usr/pgsql-9.3/bin/psql -h localhost -c "select pg_start_backup('hot_backup');">${log} 2>&1
wt_log 開啓熱備份
/bin/tar -cf ${bak_path}/base_backup_${date}.tar /var/lib/pgsql/9.3/data/ --exclude /var/lib/pgsql/9.3/data/pg_xlog>>${log} 2>&1
wt_log 備份data文件夾下(除xlog)所有內容
/usr/pgsql-9.3/bin/psql -h localhost -c "select pg_stop_backup();">>${log} 2>&1
wt_log 關閉熱備份
recovery_target_timeline = 'latest'
pg_ctl: another server might be running; trying to start server anyway
server starting
[postgres@LAMP1 data]$ LOG: database system was interrupted; last known up at 2015-06-29 10:29:14 CST
LOG: restored log file "00000002.history" from archive
cp: cannot stat `/usr/local/backups/00000003.history': No such file or directory
LOG: starting archive recovery
LOG: restored log file "00000002.history" from archive
LOG: restored log file "000000020000000000000002" from archive
LOG: redo starts at 0/2000028
LOG: consistent recovery state reached at 0/2000240
LOG: restored log file "000000020000000000000003" from archive
cp: cannot stat `/usr/local/backups/000000020000000000000004': No such file or directory
LOG: redo done at 0/3000430
LOG: last completed transaction was at log time 2015-06-29 15:11:00.35998+08
LOG: restored log file "000000020000000000000003" from archive
cp: cannot stat `/usr/local/backups/00000003.history': No such file or directory
LOG: selected new timeline ID: 3
LOG: restored log file "00000002.history" from archive
LOG: archive recovery complete
LOG: database system is ready to accept connections
LOG: autovacuum launcher started