postgresql – 如何强制将pg_xlog中的所有WAL文件合并回我的基本“数据”目录?

postgresql – 如何强制将pg_xlog中的所有WAL文件合并回我的基本“数据”目录?,第1张

概述题: 有没有办法告诉Postgres(9.2)“将pg_xlog中的所有WAL文件合并回非WAL数据文件,然后删除所有成功合并的WAL文件?” 我希望能够“强迫”这项行动;即应忽略checkpoint_segments或归档设置.文件系统WAL缓冲区(pg_xlog)目录应该清空或几乎清空.如果pg_xlog目录消耗的部分或全部空间随后被数据目录使用,那就没问题了.我们的DBA已经要求文件(即数据 题:

有没有办法告诉Postgres(9.2)“将pg_xlog中的所有WAL文件合并回非WAL数据文件,然后删除所有成功合并的WAL文件?”

我希望能够“强迫”这项行动;即应忽略checkpoint_segments或归档设置.文件系统WAL缓冲区(pg_xlog)目录应该清空或几乎清空.如果pg_xlog目录消耗的部分或全部空间随后被数据目录使用,那就没问题了.我们的DBA已经要求文件(即数据目录,而不是sql)数据库备份而没有任何积压的WAL,但空间消耗不是问题.

在此 *** 作期间具有接近零的WAL活动是一个很好的约束.在此过程中,我可以确保数据库服务器已关闭或无法连接(用户生成的事务负载为零).

本质上,我希望Postgres暂时忽略归档/检查点保留策略,并将所有WAL活动刷新到核心数据库文件,使pg_xlog处于与最近创建数据库相同的状态 – 只有很少的WAL文件.

我试过的:

我知道pg_basebackup实用程序执行类似这样的 *** 作(它生成了几乎所有WALs合并的Postgres实例数据目录的副本),但我们尚未准备好在我们所有系统上使用它,因为我们仍在测试复制设置;我希望有一个更短期的解决方案.

我已经尝试发出CHECKPOINT命令,但它们只是回收一个WAL文件并用另一个替换它(也就是说,如果它们做任何事情;如果我在数据库空闲时发出它们,它们什么都不做). pg_switch_xlog()同样只强制切换到下一个日志段;它不会刷新所有排队/缓冲的段.

我也玩过pg_resetxlog实用程序.这种实用程序可以满足我的需求,但是它的所有使用文档似乎都表明它会破坏(而不是从事务日志中刷出并进入主数据文件)部分或全部WAL数据.那印象准确吗?如果没有,我可以在零WAL活动期间使用pg_resetxlog来强制将所有排队的WAL数据刷新到非WAL数据吗?如果答案是否定的,我该如何实现这一目标?

谢谢!

. . .有些东西告诉我你的DBA不是Postgres的家伙吗? 总结

以上是内存溢出为你收集整理的postgresql – 如何强制将pg_xlog中的所有WAL文件合并回我的基本“数据”目录?全部内容,希望文章能够帮你解决postgresql – 如何强制将pg_xlog中的所有WAL文件合并回我的基本“数据”目录?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1168729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存