在Linux环境下对PostgreSQL进行自动备份。
本文默认已经完成了PostgreSQL的安装和基础配置。并以postgres用户的身份进行如下操作
使用crontab循环执行任务自动进行备份
下面的例子每分钟对postgresql进行一次单数据库备份和完全备份,并对两分钟前的备份自动删除。只是演示作用,正式使用时请根据需要调整时间。
crontab -e
* * * * * pg_dump -U postgres testdb > /var/lib/postgresql/db-backup/testdb-$(date +"\%Y\%m\%d-\%H\%M").bak
# pg_dump,对testdb这个database每分钟进行备份
* * * * * pg_dumpall -g > /var/lib/postgresql/globle-backup/globle-$(date +"\%Y\%m\%d-\%H\%M").sql
# pg_dumpall,对整个postgresql包括数据库和用户等等,每分钟进行备份
* * * * * rm -rf /var/lib/postgresql/db-backup/testdb-$(date -d "-2 minute" +"\%Y\%m\%d-\%H\%M").bak
* * * * * rm -rf /var/lib/postgresql/globle-backup/globle-$(date -d "-2 minute" +"\%Y\%m\%d-\%H\%M").sql
# 自动删除多余的备份文件