麻烦大神 详解下 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子系统密码忘记