M1lo 2018-10-17 10:18 采纳率: 0%
浏览 1475

麻烦大神 详解下 Postgresql 9.5版本后的 pg_xlog 原理,以及如何计算可保存的最大文件数等

麻烦大神 详解下 Postgresql 9.5版本后的 pg_xlog 原理,以及如何计算可保存的最大文件数等

  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-15 18:57
    关注

    参考GPT和自己的思路:

    好的,关于Postgresql 9.5版本后的pg_xlog原理,需要先了解PG的日志相关机制。

    PG里面的日志主要是由redo和undo组成,其中redo是指replay log,也就是用于crash recovery的日志,而undo是指用于rollback事务的日志。

    在PG中,每个提交的事务都会产生一个redo日志,记录在pg_xlog目录的多个文件中,这些redo日志是按照时间先后顺序命名的,比如000000010000000000000017,表示该文件是从000000000000001到000000000000016之间所有提交的事务的redo日志。

    pg_xlog文件夹下的日志文件交替出现,一个的大小为16M,当一个xlog文件被写满后,系统会自动切换到下一个文件。

    现在回到问题,如何计算可保存的最大文件数?PG的文档中提到,每个XLOG段最多可以包含2^32个事务,也就是四十多亿个。

    如果一个XLOG文件的大小是16M,则一个XLOG段的大小为16M * 2^32,约等于68.71TB。如果您使用的是RAID设备,那么可以根据RAID的级别来计算可用空间的大小,比如使用了RAID 10,则可用空间为总空间的一半,也就是34.35TB。

    因此,可以简单地将可保存的最大文件数计算为可用空间除以一个XLOG段的大小,即34.35TB / 68.71TB = 0.5,也就是说最多可以保存0.5个XLOG段的数据。

    希望我的回答能够帮到您,如果还有什么需要了解的,请随时联系我。

    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记