1 概述
PostgreSQL官方介绍称是最先进的开源关系型数据库,支持所有主流的平台,目前已经更新到了最新版本的12.0,在MySQL被Oracle收购后,PostgreSQL开源社区越来越活跃了,同时还有分布式集群的开源方案GreenPlum,目前也非常受欢迎。本篇文章讨论PostgreSQL内部的架构,内部的组件是如何工作的,这对一个DBA是非常重要的内容。
2 PostgreSQL架构
PostgreSQL的物理结构是非常简单的,主要是由共享内存、后台进程和数据文件组成的。大致的结构可以参考下面的图。 椭圆形的都是进程,方形的都是内存结构,圆柱形的是文件。
2.1 进程
在启动数据库后,Postmaster是第一个启动的进程,在启动过程中,会进行恢复操作(如果有事务未正常提交或者回滚的话),初始化共享内存,启动后台进程等一系列的操作。当客户进程有一个连接请求时,会创建相对应的后台进程处理。过程如下:
通过ps -ef|grep postgres查询可以看到系统总有一个postmaster进程pid=17201