PostgreSQL的启动过程

server/2024/9/23 4:40:45/

PostgreSQL的启动过程

PostgreSQL的启动过程中主要做了以下几件事:

  1. 初始化数据目录:如果数据目录是第一次使用,PostgreSQL会进行初始化,创建必要的系统表和目录结构。

  2. 读取配置文件:PostgreSQL会读取并解析配置文件(通常是postgresql.conf),以获取各种配置参数,如端口号、内存设置、日志配置等。

  3. 启动后台进程:启动各种后台进程,包括主进程(postgres)和多个辅助进程,如WAL写进程、检查点进程、统计信息收集进程等。

  4. 初始化共享内存和信号量:分配必要的共享内存区域和信号量,用于进程间通信和数据共享。

  5. 启动监听器:启动监听器进程,开始监听客户端连接请求。

  6. 加载扩展模块:根据配置文件中的设置,加载必要的扩展模块。

  7. 启动日志记录:根据配置文件中的日志设置,启动日志记录功能,记录服务器的运行状态和错误信息。

  8. 进入主循环:进入主循环,等待并处理客户端连接请求和数据库操作。

通过这些步骤,PostgreSQL确保了数据库服务器能够正常运行,并准备好处理客户端的请求。

启动日志:

[pg16@test log]$ cat postgresql-2024-08-17_003423.log
2024-08-17 00:34:23.447 PDT [16827] LOG:  starting PostgreSQL 16.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
2024-08-17 00:34:23.447 PDT [16827] LOG:  listening on IPv4 address "0.0.0.0", port 5777
2024-08-17 00:34:23.447 PDT [16827] LOG:  listening on IPv6 address "::", port 5777
2024-08-17 00:34:23.448 PDT [16827] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5777"
2024-08-17 00:34:23.452 PDT [16829] DEBUG:  checkpointer updated shared memory configuration values
2024-08-17 00:34:23.452 PDT [16831] LOG:  database system was shut down at 2024-08-17 00:34:04 PDT
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  checkpoint record is at 0/87000028
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  redo record is at 0/87000028; shutdown true
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  next transaction ID: 268808; next OID: 17037
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  next MultiXactId: 1; next MultiXactOffset: 0
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  oldest unfrozen transaction ID: 722, in database 4
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  oldest MultiXactId: 1, in database 16535
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  commit timestamp Xid oldest/newest: 0/0
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  transaction ID wrap limit is 2147484369, limited by database with OID 4
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  MultiXactId wrap limit is 2147483648, limited by database with OID 16535
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  starting up replication slots
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  xmin required by slots: data 0, catalog 0
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  starting up replication origin progress state
2024-08-17 00:34:23.452 PDT [16831] DEBUG:  reading stats file "pg_stat/pgstat.stat"
2024-08-17 00:34:23.453 PDT [16831] DEBUG:  removing permanent stats file "pg_stat/pgstat.stat"
2024-08-17 00:34:23.453 PDT [16831] DEBUG:  MultiXactId wrap limit is 2147483648, limited by database with OID 16535
2024-08-17 00:34:23.453 PDT [16831] DEBUG:  MultiXact member stop limit is now 4294914944 based on MultiXact 1
2024-08-17 00:34:23.458 PDT [16831] DEBUG:  shmem_exit(0): 4 before_shmem_exit callbacks to make
2024-08-17 00:34:23.458 PDT [16831] DEBUG:  shmem_exit(0): 6 on_shmem_exit callbacks to make
2024-08-17 00:34:23.459 PDT [16831] DEBUG:  proc_exit(0): 1 callbacks to make
2024-08-17 00:34:23.459 PDT [16831] DEBUG:  exit(0)
2024-08-17 00:34:23.459 PDT [16831] DEBUG:  shmem_exit(-1): 0 before_shmem_exit callbacks to make
2024-08-17 00:34:23.459 PDT [16831] DEBUG:  shmem_exit(-1): 0 on_shmem_exit callbacks to make
2024-08-17 00:34:23.459 PDT [16831] DEBUG:  proc_exit(-1): 0 callbacks to make
2024-08-17 00:34:23.460 PDT [16827] DEBUG:  reaping dead processes
2024-08-17 00:34:23.461 PDT [16827] DEBUG:  starting background worker process "logical replication launcher"
2024-08-17 00:34:23.461 PDT [16827] LOG:  database system is ready to accept connections
2024-08-17 00:34:23.461 PDT [16833] DEBUG:  autovacuum launcher started
2024-08-17 00:34:23.462 PDT [16833] DEBUG:  InitPostgres
2024-08-17 00:34:23.462 PDT [16833] DEBUG:  my backend ID is 1
2024-08-17 00:34:23.462 PDT [16833] DEBUG:  StartTransaction(1) name: unnamed; blockState: DEFAULT; state: INPROGRESS, xid/subid/cid: 0/1/0
2024-08-17 00:34:23.463 PDT [16835] DEBUG:  logical replication launcher started
2024-08-17 00:34:23.463 PDT [16833] DEBUG:  CommitTransaction(1) name: unnamed; blockState: STARTED; state: INPROGRESS, xid/subid/cid: 0/1/0
2024-08-17 00:34:23.463 PDT [16835] DEBUG:  InitPostgres
2024-08-17 00:34:23.463 PDT [16835] DEBUG:  my backend ID is 2
2024-08-17 00:34:23.463 PDT [16835] DEBUG:  StartTransaction(1) name: unnamed; blockState: DEFAULT; state: INPROGRESS, xid/subid/cid: 0/1/0
2024-08-17 00:34:23.463 PDT [16835] DEBUG:  CommitTransaction(1) name: unnamed; blockState: STARTED; state: INPROGRESS, xid/subid/cid: 0/1/0
2024-08-17 00:34:23.463 PDT [16835] DEBUG:  StartTransaction(1) name: unnamed; blockState: DEFAULT; state: INPROGRESS, xid/subid/cid: 0/1/0
2024-08-17 00:34:23.463 PDT [16835] DEBUG:  CommitTransaction(1) name: unnamed; blockState: STARTED; state: INPROGRESS, xid/subid/cid: 0/1/0
2024-08-17 00:34:23.463 PDT [16835] DEBUG:  StartTransaction(1) name: unnamed; blockState: DEFAULT; state: INPROGRESS, xid/subid/cid: 0/1/0
2024-08-17 00:34:23.463 PDT [16835] DEBUG:  CommitTransaction(1) name: unnamed; blockState: STARTED; state: INPROGRESS, xid/subid/cid: 0/1/0
2024-08-17 00:34:38.520 PDT [16830] DEBUG:  snapshot of 0+0 running transaction ids (lsn 0/870000D8 oldest xid 268808 latest complete 268807 next xid 268808)

http://www.ppmy.cn/server/101398.html

相关文章

鸿萌数据恢复服务:SQL Server 中的 GAM、SGAM、IAM,及数据库损坏的修复方法

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份、网络及终端数据安全等解决方案与服务。 同时,鸿萌是国际主流数据恢复软件(Stellar、UFS、R-Studio、ReclaiMe Pro 等)的授权代理商,为专…

Nginx+Tomcat负载均衡、动静分离群集

Tomcat重要目录 bin: 存放启动和关闭tomcat脚本 conf:存放Tomcat不同的配置文件 doc:存放Tomcat文档 lib:存放Tomcat运行需要的库文件 logs:存放Tomcat执行时的LOG文件 src:存放Tomcat的源代码 webapps:T…

Visual Studio Code 安装与 C/C++ 语言运行总结

​ 大家好,我是程序员小羊! 前言: Visual Studio Code(简称 VS Code)是由微软开发的一款轻量级、强大的代码编辑器,支持多种编程语言和开发框架。由于其丰富的插件生态系统和灵活的配置选项,VS…

Android CheckBox

设置 checkbox 文字与图标的间距 android:layoutDirection"rtl"android:paddingStart"dimen/x15"android:paddingEnd"dimen/x15"注意 是否 设置了 图标按钮的方向

Linux/C 高级——shell脚本

1. shell脚本基础概念 1.1概念 shell使用方式:手动下命令和脚本 脚本本质是一个文件,文件里面存放的是特定格式的指令,系统可以使用脚本解析器翻译或解析指令并执行(它不需要编译)。 shell脚本本质:shell命…

强!小目标检测全新突破!检测速度快10倍,GPU使用减少73.4%

强!小目标检测全新突破,提出Mamba-in-Mamba结构,通过内外两层Mamba模块,同时提取全局和局部特征,实现了检测速度快10倍,GPU使用减少73.4%的显著效果! 【小目标检测】是近年来在深度…

Linux下简单快捷高效的用五笔打出特殊符号(含Emoji)-基于fcitx5

Linux下简单快捷高效的用五笔打出特殊符号(含Emoji)-基于fcitx5 官网地址:https://github.com/devome/wubi-symbols/tree/main 如何使用?以Fcitx5为例。 1. 下载特殊符号库 下载 output 下面的文件,或者直接从 rel…

大数据系列之:Doris Kafka Connector,实时消费Kafka Topic中的数据同步到Doris数据库

大数据系列之:Doris Kafka Connector,实时消费Kafka Topic中的数据同步到Doris数据库 一、使用 Doris Kafka 连接器二、独立模式启动三、分布式模式启动四、访问SSL认证的Kafka集群五、死信队列六、配置项七、类型映射八、最佳实践九、常问问题Kafka Connect 是一个可扩展且可…