当前位置: 首页 > news >正文

【赵渝强老师】PostgreSQL的物理存储结构

1

PostgreSQL在执行initdb的数据库集群初始化时会指定一个目录。该目录通过环境变量$PGDATA来表示。当数据库集群初始化完成后,会在这个目录生成相关的子目录以及一些文件。这些生成的文件就是PostgreSQL的物理存储结构中的文件。如下图所示。

2

如上图所示,环境变量$PGDATA指向的目录就是/home/postgres/training/pgsql/data。

下表说明了其中的每个目录的功能与作用。

3

PostgreSQL数据库的物理存储结构主要是指硬盘上存储的文件,包括:数据文件、日志文件、参数文件、控制文件、WAL预写日志文件等等。

image.png
点击这里查看视频讲解:【赵渝强老师】PostgreSQL的物理存储结构

一、数据文件

顾名思义,数据文件用于存储数据,文件名以oid命名。对于超出1G的数据文件,PostgreSQL会自动将其拆分为多个文件来存储,而拆分的文件名将由pg_class中的relfilenode字段来决定。

二、日志文件

PostgreSQL的日志文分为运行日志、WAL预写日志、事务日志和服务器日志。下面分别进行介绍。

2.1 运行日志(pg_log)

在默认的情况下,运行日志没有开启。通过查看主postgresql.conf文件的配置可以看到相关的参数设置,开启后会自动生成该日志文件。运行时日志一般是记录数据库服务器与数据库的状态,比如各种错误信息、定位慢查询SQL、数据库的启动关闭信息、发生检查点过于频繁等的告警信息等等。该日志有.csv格式和.log格式,建议使用.csv格式。

2.2 WAL预写日志(pg_xlog)

pg_xlog 这个目录是记录的Postgresql的WAL信息。WAL是Write Ahead Logging的缩写,即预写日志,它是保证数据完整性的一种标准方法。简单来说就是在PostgreSQL数据库中要对数据文件进行修改时必须先写入WAL日志信息,即当WAL日志记录完成了持久化,刷新到永久储存之后才能更改数据文件。根据这个原则就不需要在每次提交事务的时候都刷新数据到磁盘。因为当数据库出现宕机发生数据丢失时,可以重新执行WAL日志来达到恢复数据库的目的。因此WAL日志也可以叫做redo重做日志,因为任何没有写到数据文件上的改动都可以根据日志记录进行重做。在默认的情况下,单个WAL预写日志文件的大小是16M,通过参数wal_segment_size决定。

2.3 事务日志(pg_xact)

pg_xact是事务提交日志,记录了事务的元数据。默认开启。内容一般不能直接读。默认存储在目录$PGDATA/pg_xact/。

2.4 服务器日志

如果用pg_ctl启动的时候没有指定-l参数来指定服务器日志,错误可能会输出到cmd前台。下图展示了在启动数据库服务器时,使用“-l”参数生成的服务器日志文件,它记录了数据库的重要信息。

4

三、控制文件

控制文件记录了数据库运行时的一些信息,比如数据库oid、是否是打开状态、WAL的位置、检查点的信息等等。PostgreSQL的控制文件是很重要的数据库文件。控制文件默认保存在$PGDATA/global/pg_control目录下。

四、参数文件

PostgreSQL数据库的参数文件主要包括四个,它们分别是postgresql.conf、pg_hba.conf、pg_ident.conf和postgresql.auto.conf。

http://www.gsyq.cn/news/115239.html

相关文章:

  • 合规即代码的延伸:国产 DevOps 平台如何利用平台扩展能力,自动验证信创基础设施的配置合规性
  • BJ-字符串
  • 从“连接器”到“封装载体”:高多层板的进化
  • python编程实战(三)
  • 【光子 AI】《Jeff Dean 传记:Google 工程师的传奇人生》
  • 校园快递代取|基于springboot + vue校园快递代取系统(源码+数据库+文档)​
  • 如何用EmotiVoice创建会‘生气’或‘开心’的AI角色?
  • 当代中国哲学之光:颜廷利——引领东方智慧走向世界的思想巨擘
  • 【赵渝强老师】PostgreSQL的逻辑存储结构
  • vue基于springboot的医院物资器械维修巡检管理系统的设计与开发没论文
  • 2025年北京制冷螺杆压缩机维修权威推荐榜单:制冷离心机压缩机/压缩机/压缩机耐氟电机维修精选 - 品牌推荐官
  • 【赵渝强老师】史上最详细的PostgreSQL体系架构介绍
  • 基于springboot服装商店管理与分析系统毕业设计项目源码
  • vue基于springboot的学习资料资源分享共享平台的研究和实现
  • 中国宁波8万㎡试炼场,藏着全球汽车的安全答案
  • vue基于springboot的学生选课推荐互动社交系统(好友,关注,课程评价)
  • 2025年柔性夹爪优选品牌:苏州柔触机器人科技有限公司 - 品牌2025
  • windows插件,可直接在win10中浏览Heic图片及视频
  • YashanDB数据库的实用优化技巧与应用指南
  • 【IEEE出版 | EI检索】2026嵌入式系统、移动通信与计算国际会议(EMC 2026)
  • 2025年激光熔覆细长轴订制厂家权威推荐榜单:激光熔覆深孔/激光熔覆无磁耐磨带/激光熔覆花键轴源头厂家精选 - 品牌推荐官
  • EmotiVoice开源社区活跃,持续迭代优化中
  • 流程图评估与优化:如何识别并改进低效环节 - 教程
  • 2025 年提升产能必看:注塑产品机械手供应商推荐 - 品牌2025
  • 别再拍脑袋做决策了!一套可落地的经营分析框架,手把手教你从0到1搭建,建议收藏!
  • 数据库设计
  • RDMA设计20:RoCE v2 发送及接收模块设计2
  • 浅谈《三国:谋定天下》的轻度化设计:SLG减负的新方向
  • 车载软件测试标准:构建智能汽车的安全基石
  • 9、云自动化中的状态机、高级模式特性与事件处理