实例结构
- 内存结构
- 进程结构
内存结构
- 本地内存结构
- 分配给每个后端进程专用,后端进程启动时分配,关闭时释放
- 共享内存结构
- 由PostgreSQL服务器的所有进程共用,实例启动时自动分配,关闭时释放
进程结构
所有进程由 postgres 父进程派生出来
Postgres 父进程
- postgres 服务器进程是PostgreSQL服务器中所有进程的父进程。早期称为:"postmaster"。
- pg_ctl实用程序启动该进程,然后派生出各个后台进程,同时分配共享内存区域。
- 一个 postgres 服务器进程侦听一个网络端口,默认端口为 5432。
后端进程
- 后端进程(也称为 postgres)由postgres 服务器进程启动,并处理一个连接的客户端发出的所有查询。
- PostgreSQL 允许多个客户端同时连接;配置参数max_connections控制客户端的最大数量。
后台进程
- 有些进程是强制的,有些进程是可选的
- 后端写进程
- 把共享缓存区域的脏块写入数据文件
- WAL写进程
- 把WAL缓存区域的日志条目写入wal文件
- 检查点进程(CKPT)
- 自动定时保存修改的数据
- 数据库一致性判断标准依据
bash
# 后台进程查看
ps -ef | grep postgres