Bootstrap

PostgreSQL之整体架构

PostgreSQL作为一个单机的关系型数据库,与单机Oracle的架构是比较相似的,与MySQL的InnoDB引擎也比较像。据我目前的了解,单机数据库的整体架构都差不太多,都是包含一个主的进程,一些辅助进程,以及一个大的共享内存池。下面我们具体学习一下PG架构里面的这些部分。

进程架构

PostgreSQL是一个多进程架构的客户端/服务器模式的关系型数据库管理系统。PG数据库中的一系列进程组合进来就是PostgreSQL服务端。这些进程可以细分为以下几大类:

  • postgres server进程 -是PG数据库中所有进程的父进程。
  • backend进程 - 每个客户端对于一个backend进程,处于这个客户端中的所有请求。
  • background进程 - 包含多个后台进程,比如做脏块刷盘的BACKGROUND WRITER进程,做垃圾清理的AUTOVACUUM进程,做检查点的CHECKPOINTER进程等。
  • replication相关进程 - 处理流复制的进程。
  • background workder进程 - PG9.3版本增加,执行由用户自定义开发的逻辑。

在这里插入图片描述
从上图可以看出,PG数据库中有一个主的postgres server进程,针对每个客户端有一个backend postgres进程,另外有一系列的background后台进程(针对不同的功能模块)。所以这些进程

;