这一节到了
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
分享到:
相关推荐
其中,存储过程是一个非常重要的概念,本文将对 PostgreSQL 中的存储过程进行详细的介绍和解释。 什么是存储过程 存储过程是一组为了完成特定任务而编写的 SQL 语句集合。它可以将复杂的操作封装起来,以便于重复...
PostgreSQL中文学习手册 PostgreSQL PostgreSQL PostgreSQL学习手册 ...PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (PL/pgSQL (PL/pgSQL(PL/pgSQL 过程语言 过程语言 ) .86 一、概述: 一、概述:
Postgresql存储过程是指在Postgresql数据库中定义的一组SQL语句的集合,它可以完成复杂的操作,并且可以重复使用。Postgresql存储过程可以用来实现业务逻辑,减少数据库服务器的压力和网络传输的数据量。 一、存储...
Maven坐标:org.postgresql:postgresql:42.3.1; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
url: jdbc:postgresql://localhost:5432/postgres username: postgres password: root driver-class-name: org.postgresql.Driver ``` 此外,还需要添加 Druid 配置,以便监控数据库连接池的状态: ```...
本套程序是在VS2005下C#开发,...在对PostgreSQL数据库进行操作时,用到了如何调用存储过程来完成各项操作。 将App_Data下的数据库文件导入到PostgreSQL 8.3版里面,库名为:HYGL 然后修改web.config中的配置即可使用
初始化数据库是PostgreSQL安装过程中必不可少的一步,可以通过执行以下命令完成: ```bash sudo /usr/pgsql-15/bin/postgresql-15-setup initdb ``` 初始化完成后,将会创建数据库目录并设置默认权限。 ##### 3.4...
Maven坐标:org.postgresql:postgresql:42.2.2; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
PostgreSQL修炼之道:从小工到专家 PostgreSQL是一种功能强大且广泛应用的开源关系型数据库管理系统,本书《PostgreSQL修炼之道:从小工到专家》旨在帮助读者深入理解PostgreSQL的核心原理和最佳实践,从而提升...
- `cp /tmp/postgresql-8.1.9/contrib/start-scripts/linux /etc/init.d/postgresql`:复制启动脚本到系统启动脚本目录。 - `chkconfig --add postgresql`:添加`postgresql`为开机自启动服务。 #### 6. 更改数据库...
PostgreSQL存储过程是一种数据库编程的方法,它允许用户在数据库中定义和执行复杂的操作逻辑,而不仅仅是简单的查询。存储过程在数据库管理系统中起着至关重要的作用,它们可以提高性能,增加安全性,减少网络流量,...
Maven坐标:org.postgresql:postgresql:42.2.5; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...
PostgreSQL 14.1 手册 PostgreSQL 全球开发组 翻译:彭煜玮1,PostgreSQL中文社区2文档翻译组
PostgreSQL 存储过程中的连接字符不是 `+`,而是使用 `||`。例如: ``` str := 'hello' || 'world'; ``` 四、控制结构 PostgreSQL 存储过程支持多种控制结构,包括条件语句、循环语句和跳转语句。 1. 条件语句 ...
PostgreSQL中国社区资深数据库专家、沃趣科技首席数据库架构师撰写,PostgreSQL数据库领域经典著作 系统讲解PostgreSQL技术内幕,深入分析PostgreSQL特色功能,包含大量来自实际生产环境的经典案例和经验总结 ...
PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),它在Ubuntu操作系统上广泛使用,尤其在需要稳定性和高性能的环境中。Ubuntu离线安装版的PostgreSQL适用于那些没有互联网连接或者网络带宽有限的环境,...
Maven坐标:org.postgresql:postgresql:42.2.2; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...
本文将深入探讨PostgreSQL中的CURD操作以及存储过程,并结合jdbc、hibernate、ibatis三种不同的Java数据访问技术进行讲解。 **一、CURD操作** 1. **创建(Create)**:在PostgreSQL中,创建表是最基本的操作。例如,...
Maven坐标:org.postgresql:postgresql:42.2.6; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...
6. **启动服务**:启用并启动PostgreSQL服务,使数据库系统可以接受连接。对于Systemd系统,使用: ``` sudo systemctl enable postgresql-9.6 sudo systemctl start postgresql-9.6 ``` 7. **设置权限和防火墙...