gpt4 book ai didi

postgresql - 自动清理 pg_xlog

转载 作者:行者123 更新时间:2023-11-29 11:28:48 24 4
gpt4 key购买 nike

有谁知道如何在 PostgreSQL 9.5 中自动清理 pg_xlog?自从我启用复制磁盘已经填满 200G 2 周。因此,我使用以下命令手动清理了它:

sudo service portgesql stop
sudo /usr/lib/postgresql/9.5/bin/pg_controldata /var/lib/postgresql/9.5/main/ | grep Next | grep -v Multi
sudo -u postgres /usr/lib/postgresql/9.5/bin/pg_resetxlog -o 44842 -x 575323138 -f /var/lib/postgresql/9.5/main/
sudo service portgesql start

当然我可以用bash脚本自动化它,但这里的问题是必须停止PotgreSQL。有没有其他方法可以在不停止 PostgreSQL 的情况下清理它?

最佳答案

有点担心您要从 pg_xlog 中删除文件,它们对于恢复数据库是必不可少的。请不要告诉我这是生产:)

无论如何,WAL 以这种速度收集还有一个更根本的原因,这是由于 PostgreSQL 中新引入的“复制槽”。

复制槽将保留 WAL 日志,直到它们被应用到 DR,这样您的 WALS 就不会被应用到备用数据库。如果您一直在删除 WALS,那么它们很可能永远不会被应用 :) 从而形成恶性循环。

您还可以通过参数“wal_keep_segments”来控制该目录中 WALS 的数量,尽管我不确定它在 9.5 中具有多少副本和复制槽的作用。

无论哪种方式,您当然都需要停止删除 WAL,并使用您的主服务器的全新同步来重建您的 DR。

关于postgresql - 自动清理 pg_xlog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39525961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com