首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pg_basebackup花了太长时间

pg_basebackup花了太长时间
EN

Database Administration用户
提问于 2021-12-26 13:02:28
回答 1查看 1.4K关注 0票数 2

我正试图在Linux上设置流复制。由于巨大的数据大小,即7TB,pg_basebackup失败了。它失败了,因为备份时间太长了,比如20小时。所需的WAL文件已经从主程序中删除了。那么,如何解决这个问题,以及如何加快pg_basebackup过程?我使用的是PostgreSQL 13,我需要更改主从的postgres.conf,以及需要使用哪些开关来加快备份过程?我使用以下命令

代码语言:javascript
运行
复制
pg_basebackup -h 192.168.100.81 -U repuser -p 5432 -D /var/lib/postgresql/13/main \
 -Fp -Xs -P -R -C -S Secondary01 --checkpoint=fast --max-rate=1024M
EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-12-27 03:41:39

正如Melkij所建议的那样,使用插槽应该可以防止所需的WAL被移除。然而,我怀疑pg_basebackup中存在一些计时错误,这使得它无论如何都会发生。我在“野外”见过几次,但在我尝试的时候却从未得到过它,这使得它很难被调查和解决。

如果您与max_slot_wal_keep_size发生冲突,就像Melkij所想的那样,我认为如果使用不同的错误消息pg_basebackup: error: unexpected termination of replication stream: FATAL: terminating connection due to administrator command,它就会失败,这就是为什么我认为您更有可能碰到了计时错误。当我碰到这个错误时,在备份启动后很快就会收到错误消息。但是很容易错过这条消息,然后它会继续复制整个数据目录,但最终还是失败了。

因此,一种选择是再试一次,在开始时注意错误消息,这样您就可以手动中止进程,而不是让它运行20个无用的小时。

虽然pg_basebackup当然很方便,但它在许多方面都不是很好。因此,您可能希望使用不同的方法进行独占备份,以复制数据,如rsync。pg_basebackup的压缩选项有点无用,它在未经压缩的光荣中通过网络传输数据,然后在客户端进行压缩。这与你想要站起来的复制品正好相反。rsync的-z选项将压缩数据以便传输,然后在数据到达时解压缩。这将取决于您的数据,但我看到它提高了传输速度在一个缓慢的网络15倍。

独占备份的另一个优点是,如果它被网络故障或其他什么东西打断,您可能可以使用-c选项获得rsync以获取它停止运行的位置,而pg_basebackup不会这样做。但是这一过程的效率将取决于你的数据在同一时间内已经翻了多少。

当然,您必须从打开WAL归档开始,或者使用pg_receivewal或诸如此类的方法来捕获初始副本期间生成的WAL,因为rsync不会像pg_basebackup尝试的那样为您做这件事。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/305402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档