postgresql中的主要进程

本文详细介绍了PostgreSQL启动时的四个主要进程:PostmasterMain、SubPostmasterMain、AuxiliaryProcessMain和PostgresMain,包括各自的功能和步骤。此外,还阐述了Catalog的导入过程,涉及目录创建、内存池初始化、backend初始化以及bki文件的解析和执行。
摘要由CSDN通过智能技术生成

一、Postgres在启动后,可分别以一下四种形式启动进程:
* SubPostmasterMain
* AuxiliaryProcessMain
* PostgresMain
* PostmasterMain

PostmasterMain
1. 设置进程ID
2. 初始化内存池
3. 设置路径、时间等变量
4. 初始化GUC选项,处理输入参数并载入hba和ident
5. 设置共享内存和信号量,初始化共享数据结构
6. 设置信号处理句柄
7. 启动守护进程:
   (1) syslogger:收集其他其他进程的日志输出,写入到文件
   (2) stats daemon:通过UDP获取各backend的运行时统计信息
   (3) autovacuum launcher:定期进行表空间的自动清理
8. 由参数forkboot启动一个backend
9. 绑定到TCP socket,监听连接请求

PostgresMain(--single)
1. 设置进程ID
2. 初始化内存池
3. 设置路径、时间等变量
4. 初始化GUC选项,处理输入参数和其他startup packet中的参数
5. 设置信号处理句柄
6. 初始化一个backend(无论它是否由postmaster生成):ipc, lock, file, storage, buffer
7. 启动XLOG
8. 加载FreeSpaceMap
9. 初始化进程
10. 初始化表缓存和系统目录访问
11. 处理预加载的库
12. 转到MessageContext内存池
13. 进入查询处理主循环

SubPostmasterMain&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值