有一个场景,需要在客户的很多节点的服务器中定期(每天夜里)备份pg数据库,数据库大小约20GB。
现在的问题是使用pg命令备份的时间过长,会影响到夜里一些其他计划任务的执行;因此我们需要尽可能地减少pg数据库的备份时间。
一开始我们将使用pg命令的备份模式替换成了直接拷贝pg目录下的data文件夹,但这存在并发读取写入而损坏表数据文件的风险。
由于硬件和资源的限制,这些节点服务器无法开启流复制或者主从的模式,只是一个简单的单机版的pg服务。唯一的问题就是数据量很大。
所以现在的问题是如何能够尽快的将一个数据量很大的pg备份下来;而且,在备份的同时,最好不要停止数据库服务。
首先,拷贝pg目录下的data文件夹不存在问题,问题是你的备份方法。 必须先进入backup模式再拷贝,进入backup模式会执行一个检查点,并强制打开FPW,拷贝完后关闭bakcup。 备份出来的数据需要通过归档进行恢复。
如果您对PG不是非常了解,建议使用阿里云的PG,帮助您解决运维的问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。