`

PostgreSQL启动过程中的那些事十七:ServerLoop

阅读更多

       话说 main()->PostmasterMain()->StartupDataBase() fork 了启动进程,根据情况处理系统故障并启动了 xlog ,然后启动进程退出。 Postmaster 进程响应启动进程退出信号, fork 了后台写进程、 WAL 日志写进程、 AUTOVACUUM 进程、归档进程、统计进程这些辅助进程。然后, postmaster 进程进入了无限循环,等待客户端请求到来,为其提供服务;并根据需要检查系统日志集成、后台写进程、 WAL 日志写进程、 AUTOVACUUM 进程、归档进程和统计进程是否正常运行,如果没有,就重启相关进程。

 

1 先上个图,看一下函数调用过程梗概,中间略过部分细节


Postmaster 进程 serverloog 方法调用序列图

 

2 初始化 xlog 相关结构

话说 main()-> ->PostmasterMain()-> ->ServerLoop() ,进入无限循环,主要工作是等待客户端服务请求 如果发现客户端请求,就为其创建连接和 postgres 服务进程提供服务;并根据需要检查系统日志集成、后台写进程、 WAL 日志写进程、 AUTOVACUUM 进程、归档进程和统计进程是否正常运行,如果没有,就重启相关进程。


ServerLoop 方法流程图

      

       ServerLoop 方法中如果发现有客户端请求,就为其调用 BackendStartukp 方法创建一个 postgres 服务进程提供服务,这个是 serverloop 方法最主要的工作,这部分工作已不属于 pg 启动过程的事情,在这儿不做讨论。相关辅助进程进程在除系统日志进程为在前面单独启动外,其它进程都是 startup 进程退出时 postmaster 进程响应子进程退出信号而启动的,这儿是检查这些进程是否健在,如果没有,就再启动它们,相关进程的启动在 postmaster 进程响应子进程退出信号时讨论。

 

 

------------
转载请著明出处,来自博客:
blog.csdn.net/beiigang
beigang.iteye.com
 

 

  • 大小: 98.5 KB
  • 大小: 64.3 KB
0
0
分享到:
评论

相关推荐

    Postgresql存储过程

    Postgresql存储过程是指在Postgresql数据库中定义的一组SQL语句的集合,它可以完成复杂的操作,并且可以重复使用。Postgresql存储过程可以用来实现业务逻辑,减少数据库服务器的压力和网络传输的数据量。 一、存储...

    关于PostGreSQL中的存储过程

    其中,存储过程是一个非常重要的概念,本文将对 PostgreSQL 中的存储过程进行详细的介绍和解释。 什么是存储过程 存储过程是一组为了完成特定任务而编写的 SQL 语句集合。它可以将复杂的操作封装起来,以便于重复...

    PostgreSQL中文手册9.2

    PostgreSQL中文学习手册 PostgreSQL PostgreSQL PostgreSQL学习手册 ...PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (PL/pgSQL (PL/pgSQL(PL/pgSQL 过程语言 过程语言 ) .86 一、概述: 一、概述:

    PostgreSQL 与 MS SQLServer在过程语言中的差异

    PostgreSQL 与 MS SQLServer 在过程语言中的差异 PostgreSQL 和 MS SQL Server 是两种流行的关系数据库管理系统,它们在过程语言中有许多差异。下面我们将从数据类型、变量定义与赋值、IF/ELSE 控制结构等方面对这...

    postgresql-42.3.1-API文档-中文版.zip

    Maven坐标:org.postgresql:postgresql:42.3.1; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...

    PostGreSQL安装部署系列:Centos 7.9 安装指定PostGreSQL-15版本数据库

    初始化数据库是PostgreSQL安装过程中必不可少的一步,可以通过执行以下命令完成: ```bash sudo /usr/pgsql-15/bin/postgresql-15-setup initdb ``` 初始化完成后,将会创建数据库目录并设置默认权限。 ##### 3.4...

    PostgreSQL_与_MS_SQLServer比较

    ### PostgreSQL与MS SQL Server在过程语言中的差异 在数据库领域,PostgreSQL 和 MS SQL Server 都是非常受欢迎的关系型数据库管理系统。两者在很多方面都提供了强大的功能支持,但在具体实现细节上存在不少差异。...

    Postgresql存储过程.docx

    PostgreSQL 存储过程中的连接字符不是 `+`,而是使用 `||`。例如: ``` str := 'hello' || 'world'; ``` 四、控制结构 PostgreSQL 存储过程支持多种控制结构,包括条件语句、循环语句和跳转语句。 1. 条件语句 ...

    一套C#与PostgreSQL数据库完美结合的实例

    本套程序是在VS2005下C#开发,...在对PostgreSQL数据库进行操作时,用到了如何调用存储过程来完成各项操作。 将App_Data下的数据库文件导入到PostgreSQL 8.3版里面,库名为:HYGL 然后修改web.config中的配置即可使用

    jeecgboot(postgreSQL).pdf

    url: jdbc:postgresql://localhost:5432/postgres username: postgres password: root driver-class-name: org.postgresql.Driver ``` 此外,还需要添加 Druid 配置,以便监控数据库连接池的状态: ```...

    PostgreSQL修炼之道 从小工到专家.pptx

    PostgreSQL修炼之道:从小工到专家 PostgreSQL是一种功能强大且广泛应用的开源关系型数据库管理系统,本书《PostgreSQL修炼之道:从小工到专家》旨在帮助读者深入理解PostgreSQL的核心原理和最佳实践,从而提升...

    SQL Server 2012链接服务器到PostgreSQL

    以下是一个详细步骤,说明如何在SQL Server 2012中配置链接服务器以连接到PostgreSQL: 1. **安装PostgreSQL ODBC驱动** 首先,你需要安装PostgreSQL的ODBC驱动,以便SQL Server可以通过ODBC接口与PostgreSQL通信...

    postgresql-http-server:PostgreSQL HTTP API服务器

    PostgreSQL HTTP API服务器注意:该项目处于无限期搁置状态,并已由取代尝试在上实施类似建议的内容正在安装注意:需要node.js # npm install postgresql-http-server用法# postgresql-http-server --helpPostgreSQL...

    PostgreSQL 14.1 中文手册

    PostgreSQL 14.1 手册 PostgreSQL 全球开发组 翻译:彭煜玮1,PostgreSQL中文社区2文档翻译组

    postgresql-42.2.2-API文档-中文版.zip

    Maven坐标:org.postgresql:postgresql:42.2.2; 标签:postgresql、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构...

    postgresql存储过程

    PostgreSQL存储过程是一种数据库编程的方法,它允许用户在数据库中定义和执行复杂的操作逻辑,而不仅仅是简单的查询。存储过程在数据库管理系统中起着至关重要的作用,它们可以提高性能,增加安全性,减少网络流量,...

    postgresql离线安装包及依赖库

    在“postgresql离线安装包及依赖库”中,包含的主要内容可能有以下几个方面: 1. PostgreSQL安装包:安装包包含了PostgreSQL服务器的所有必要组件,如主程序、配置文件、库文件等。这使得用户可以在本地计算机上...

    postgresql-42.2.5-API文档-中英对照版.zip

    Maven坐标:org.postgresql:postgresql:42.2.5; 标签:postgresql、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和...

    Linux下PostgreSQL安装与开机启动

    ### Linux下PostgreSQL安装与开机启动详解 #### 1. 添加用户及创建目录 为了确保PostgreSQL服务的安全性,我们通常会为它创建一个独立的系统用户。这一步骤包括了用户创建、密码设定以及相关目录的搭建。 ##### ...

    PostgreSQL修炼之道:从小工到专家

    PostgreSQL中国社区资深数据库专家、沃趣科技首席数据库架构师撰写,PostgreSQL数据库领域经典著作 系统讲解PostgreSQL技术内幕,深入分析PostgreSQL特色功能,包含大量来自实际生产环境的经典案例和经验总结 ...

Global site tag (gtag.js) - Google Analytics