现在离数据库启动过程的高潮startdatabase只有几步之遥,这几步比较简单,简要描述之。
这几步包括:
八:设置虚拟文件描述符
九:初始化活跃 backend 进程列表
十:创建 opts 文件
十一:保存非默认 GUC 参数到文件
十二:为 postmaster 进程安装信号句柄
十三:为统计进程启动准备资源
十四:为 autovuc 进程启动做条件检查
十五:加载客户端认证配置文件
本节包括九、十、十一。
这一节 pg 在 postmaster 启动时初始化一个双向链表,用来管理后面处理客户端请求的活跃 backend 进程( postgres 后台服务进程)。
接着在数据集目录 data 下创建一个 opts 文件 postmaster.opts ,里面记录的内容是启动 pg 的命令: postgres.exe –D ../data 。这个文件的作用是什么?
然后把非默认的 GUC 参数写入二进制文件 config_exec_params ,放在路径 data/global / 下面 ,这个是为所有未来提供服务的 backend 服务进程准备的。
上个图,看一下函数调用过程梗概,中间略过部分细节