免责声明:我承认还没有尝试过这个,但我不确定我是否会知道它是否工作不正常,所以我想问一下.
我想从运行流复制的热备用服务器运行夜间备份作业(通过pg_dumpall),以避免将负载放在主服务器上.我只看到过一些人们遇到的陷阱,例如here和here,但很少指导.如果备份稍微落后于主要,只要它是一致的(它应该是),这是没关系的.
我的问题是:
>我真的想这样做,还是应该在主服务器上完成备份?为什么?
>在备用数据库上进行转储时,我需要哪些设置,我应该使用哪些程序正确执行此操作?例如我必须在备份期间停止复制吗?
AFAIK,在热备用服务器上运行pg_dump是备用服务器有用的主要功能之一.它是完全安全的,虽然它不是非常可靠 – 如果备用数据库在主机落后太远时中止交易,则转储可能会失败.
您真正需要注意的唯一事情是确保备用数据库是最新的并且正在跟上.如果备用数据库失去了与主服务器的连接并且落后太多,那么您不希望快速备份一个为期三周的过时备用数据库.
在备份期间,您需要允许备用数据库远远落后于主数据库,因为否则必须取消pg_dump事务才能继续重放WAL.请参阅the documentation on hot standby,特别是“处理查询冲突”部分以及max_standby_archive_delay
和max_standby_streaming_delay
参数.
请注意,主人必须愿意保留足够的WAL档案以允许奴隶再次赶上.