加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 自动清理pg_xlog

发布时间:2020-12-13 16:00:48 所属栏目:百科 来源:网络整理
导读:有谁知道如何自动清理PostgreSQL 9.5中的pg_xlog? 由于我启用了复制磁盘已经填充了200G,为期2周.所以我用以下命令手动清理它: sudo service portgesql stopsudo /usr/lib/postgresql/9.5/bin/pg_controldata /var/lib/postgresql/9.5/main/ | grep Next |
有谁知道如何自动清理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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读