1、注意事项

1、备份及恢复脚本是对应的,且恢复脚本只能回复当前的数据
2、备份文件传输及备份的过程中不要修改文件目录,否则导致恢复失败

2、数据备份

[postgres@pgsql_1971 ~]$ cat backup.sh 
#!/bin/bash
DUMP=/data/pgsql/bin/
DATA=/data/
HOST=192.168.19.110  #vip 
PORT=5000  #VIP端口
DATABASE=zhj
USER=postgres
PASS="P@sswrd"
DATE=`date +%Y年%m月%d日`
BACKUP=$DATA/dump-$DATABASE-$DATE.bak

PGPASSWORD=$PASS $DUMP/pg_dump -h $HOST -p $PORT  -U $USER $DATABASE > $BACKUP
if [ $? -eq 0 ];then
    echo "$BACKUP  backup successful" >> $DATA/bakup_log
else
    echo "$BACKUP backup failure" >> $DATA/bakup_log
fi

3、数据恢复

[postgres@pgsql_1971 ~]$ cat restore.sh 
#!/bin/bash
DUMP=/data/pgsql/bin/
DATA=/data/
HOST=192.168.19.110  #vip 
PORT=5000  #VIP端口
DATABASE=zhj
USER=postgres
PASS="P@sswrd"
DATE=`date +%Y年%m月%d日`
BACKUP=$DATA/dump-$DATABASE-$DATE.bak

PGPASSWORD=$PASS $DUMP/psql -h $HOST -p $PORT  -U $USER $DATABASE < $BACKUP
if [ $? -eq 0 ];then
    echo "$BACKUP  restore successful" >> $DATA/bakup_log
else
    echo "$BACKUP restore failure" >> $DATA/bakup_log
fi

4、配置定时任务

每天晚上23:00一次备份,按库备份
crontab -e
00 23 * * * /bin/bash /root/backup.sh