请问大家 你们的pg数据库如何实现异地备份的?采用哪种方式备份的
本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。
postgres本身支持数据库备份操作,基于安装路径下bin目录下的两个脚本文件pg_dump pg_dumpall
一个支持单库备份,一个支持整个数据库备份
这里实现的是不同机子间的备份,例如我在101.62上面是线上数据库,我需要定时备份到101.68这台机子上。
以下是命令:
-- 备份 pg_dump 数据库名 -h 要备份的数据库ip -p 你的端口 -U postgres > 备份结果文件名.dmp pg_dumpall -h 要备份的数据库ip -p 你的端口 -U postgres > 备份结果文件名.dmp
example:
pg_dump database -h 192.168.101.62 -p 5432 -U postgres > fileName pg_dumpall -h 192.168.101.62 -p 5432 -U postgres > fileName
-- 还原
psql -h 要还原的数据库ip -p 端口 -U postgres -d 指定数据库名 < 备份文件地址 psql -h 要还原的数据库ip -p 端口 -U postgres < 备份文件地址
example:
psql -h 192.168.101.68 -p 5432 -U postgres -d new_db < fileName psql -h 192.168.101.68 -p 5432 -U postgres < fileName
注意:用到的脚本都在postgres的安装bin下,所以该方案要求接受备份文件的机子也需要安装postgres
这样显然,我这里需要的是定时备份,那么只需要利用linux的crontab 定时器就可以了
crontab相关命令:
crontab –e 添加定时任务 crontab -l 表示列出所有的定时任务 crontab -r 表示删除用户的定时任务
0 23 * * * /temp/pgsql_backup.sh >> /temp/pgdata_export.log 2>&1 //例如每晚23点执行
这个命令指的是每晚23点执行脚本进行备份,日志写入/temp/pgdata_export.log中
crontab如果没有安装,centos执行yum安装即可:
yum -y install vixie-cron yum -y install crontabs
pgsql_backup.sh脚本为:
#!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/apache2/bin:/root/bin:/usr/local/pgsql/bin export LANG=zh_CN.UTF-8 export export PGPASSWORD=postgres dest_folder=/temp/ dest_file=pgdata_$(date +%Y%m%d).dmp tar_file=pg_$(date +%Y%m%d).tar.gz echo [$(date +'%F %H:%M:%S')] 准备导出postgresql数据库 导出文件地址为$dest_folder$dest_file echo [$(date +'%F %H:%M:%S')] ..................正在导出............................
pg_dumpall -h 你需要备份的ip -p 你需要备份的端口 -U postgres > $dest_folder$dest_file echo [$(date +'%F %H:%M:%S')] 导出成功,准备压缩已导出文件 压缩文件地址为$dest_folder$tar_file echo [$(date +'%F %H:%M:%S')] ..................正在压缩............................ cd $dest_folder tar -czf $tar_file $dest_file echo [$(date +'%F %H:%M:%S')] 压缩完毕,准备删除数据库导出文件 rm -f $dest_folder$dest_file echo [$(date +'%F %H:%M:%S')] 数据库导出文件已删除 ———————————————— 版权声明:本文为CSDN博主「fwfg12113」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/fwfg12113/article/details/84643765
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。