PostgreSQL 备份数据库 + crontab实现定期备份



创建 /root/auto_backup.sh 文件,并为 /root/auto_backup.sh 文件赋予可执行权限:

cd /root
touch auto_backup.sh
chmod +x auto_backup.sh



备份指定的数据库(示例为:test_db数据库)到 /root/auto_backup_test_db.sql 文件:

# 将以下内容复制到  /root/auto_backup.sh 中,并保存:
pg_dump "host=127.0.0.1 hostaddr=127.0.0.1 port=5432 user=postgres password=123456 dbname=test_db" > /root/auto_backup_test_db.sql

vim /root/auto_backup.sh



使用 crontab 添加定时任务,在终端输入以下命令:

crontab -e



在crontab -e显示的文件中添加以下内容(单独占一行),实现每天3点时热备份(不影响用户正常使用)数据库:

0 3 * * * /root/auto_backup.sh



恢复数据库备份:

psql -h localhost -U postgres -d test_db <  /root/auto_backup_test_db.sql





参考文章:
PostgreSQL 9.3.1 中文手册 - pg_dump
crontab 执行周期性的定时任务
postgresql数据库--psql、pg_dump命令带密码执行sql语句
PostgreSQL数据库pg_dump命令行不输入密码的方法
postgresql数据库备份和恢复