有没有办法告诉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文件合并回我的基本“数据”目录?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)