这一节到了
pg
的高潮,
StartupDataBase
启动数据库。
经过细致甚至有些枯燥(这中间我中断了几次就是有这感觉,干这行吗,还是搞清楚了心里踏实。)的准备,激动人心的时刻到了,
pg
要开始“
high
”了,
pg
人的原话就是“
We're ready to rock and roll...
”。
一个
StartupDataBase
方法涉及到的方法数十乃至上百,涉及到的代码有数万行,甚至可以到十万行这个数量级,搞到
word
文档里有几百页,把这些存在复杂逻辑的代码用几页几十页的文档写出来有很大挑战,下面开始讨论吧。
话说
main()->PostmasterMain()->StartupDataBase()
,
pg
开始加载模板库、启动
XLOG
、验证数据库一致性、根据需要做数据库恢复和创建检查点、启动各辅助进程(后台写进程、
WAL
日志写进程、
AUTOVACUUM
进程、归档进程、统计进程)(这个过程参见“
StartupDataBase
调用流程略图”,这个过程相当的繁冗,为了不至于眼花乃至理不出头绪,就来一个大略的略图。),加上前面的启动的系统日志进程(参见《
pg
启动过程中的那些事十二
.
五:启动系统日志进程
syslogger
》),
pg
开始提供服务了,
reaper
方法在日志里写一句
”
database system is ready to accept connections
”
。
这中间少了一个生命周期及其短暂的不为大家所熟悉的进程,做了启动
XLOG
、验证数据库一致性、根据需要做数据库恢复和创建检查点等事情(
StartupDataBase
调用流程略图中红色框备份),做完这些事情后它就结束了。这个进程就是“启动进程”(“
startup progress
”)。
这几个进程都调用自己相应的函数,组织不同入参,然后调用
postmaster_forkexec
函数,创建一个进程,根据不同的入参在
SubPostmasterMain
函数里走了不同的分支。具体见下图:
StartupDataBase
调用流程略图
------------
转载请著名出处,来自博客:
blog.csdn.net/beiigang
beigang.iteye.com
- 大小: 68.4 KB
分享到:
相关推荐
Maven坐标:org.postgresql:postgresql:42.3.1; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
关于PostGreSQL中的存储过程 PostGreSQL是一个开源的数据库
PostgreSQL中文学习手册 PostgreSQL PostgreSQL PostgreSQL学习手册 ...PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (PL/pgSQL (PL/pgSQL(PL/pgSQL 过程语言 过程语言 ) .86 一、概述: 一、概述:
存储过程 postgresql postgresql存储过程
Maven坐标:org.postgresql:postgresql:42.2.5; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...
本套程序是在VS2005下C#开发,...在对PostgreSQL数据库进行操作时,用到了如何调用存储过程来完成各项操作。 将App_Data下的数据库文件导入到PostgreSQL 8.3版里面,库名为:HYGL 然后修改web.config中的配置即可使用
PostgreSQL中国社区资深数据库专家、沃趣科技首席数据库架构师撰写,PostgreSQL数据库领域经典著作 系统讲解PostgreSQL技术内幕,深入分析PostgreSQL特色功能,包含大量来自实际生产环境的经典案例和经验总结 ...
Maven坐标:org.postgresql:postgresql:42.2.2; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
Maven坐标:org.postgresql:postgresql:42.2.2; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...
Maven坐标:org.postgresql:postgresql:42.2.6; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
Maven坐标:org.postgresql:postgresql:42.3.3; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
Test-postgresql:积极维护的Test :: postgresql的分支
postgresql数据库jdbc驱动,jar包。。。。。。。。。。。。
NULL 博文链接:https://haige18.iteye.com/blog/1746527
PostgreSQL12.2中文手册.chm.7z PostgreSQL12.2中文手册.chm.7z
Maven坐标:org.postgresql:postgresql:42.3.3; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...
何为 PostgreSQL? PostgreSQL 简史 格式约定 更多信息 臭虫汇报指导 I. 教程 1. 从头开始 2. SQL 语言 3. 高级特性 II. SQL 语言 4. SQL 语法 5. 数据定义 6. 数据操作 7. 查询 8. 数据类型 9. ...
--port HTTP Server port [required] [default: 3000] --dbhost PostgreSQL host [required] [default: "localhost"] --dbport PostgreSQL port [required] [default: 5432] --database P
PostgreSQL 14.1 手册 PostgreSQL 全球开发组 翻译:彭煜玮1,PostgreSQL中文社区2文档翻译组