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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |