理解PostgreSQL中的postmaster.pid

在PG中,一个简要的体系结构图可以大致画成下边的样子:

Server端基本上分成backend process和若干background process。这些process都是一个名为postmaster进程的子进程。而postmaster则是postgres进程的别名。

进程概况

[14:42:08-postgres@centos1:/pgccc]$ ps -axjf | grep 23267 | grep -v grep1  23267  23267  23267 ?            -1 Ss      26   0:02 /usr/pgsql-14/bin/postgres23267  23268  23268  23268 ?            -1 Ss      26   0:00  \_ postgres: logger23267  23270  23270  23270 ?            -1 Ss      26   0:00  \_ postgres: checkpointer23267  23271  23271  23271 ?            -1 Ss      26   0:03  \_ postgres: background writer23267  23272  23272  23272 ?            -1 Ss      26   0:03  \_ postgres: walwriter23267  23273  23273  23273 ?            -1 Ss      26   0:02  \_ postgres: autovacuum launcher23267  23274  23274  23274 ?            -1 Ss      26   0:00  \_ postgres: archiver23267  23275  23275  23275 ?            -1 Ss      26   0:04  \_ postgres: stats collector23267  23276  23276  23276 ?            -1 Ss      26   0:00  \_ postgres: logical replication launcher23267  46791  46791  46791 ?            -1 Ss      26   0:00  \_ postgres: postgres mydb [local] idle

系统启动以后,我们会发现一个特殊的文件:postmaster.pid。它的内容有什么含义呢?

Postmaster.pid包含了哪些信息

在PG成功启动完以后,postmaster父进程会生成一个postmaster.pid文件,其基本内容如下:

01  236002  /var/lib/pgsql/14/data03  165973786804  555505  /var/run/postgresql06  0.0.0.007  52527898     008  ready

总行8行,各自含义如下:

1、行1:2360,就是父进程的进程号pid,可以通过ps -axjf | grep postgres来查询

2、行2:/var/lib/pgsql/14/data PGDATA实例的数据目录

3、行3:1659737868**, 数据库的启动时间,需要转换 (转换后不是很准确)(自1970-01-01 00:00:00 UTC算起经历的秒数)

postgres=# select pg_postmaster_start_time(); 
pg_postmaster_start_time
----------------------------- 
2022-08-06 06:17:49.0841+08(1 row)
postgres=# select extract(epoch from pg_postmaster_start_time());   extract
------------------- 
1659737869.084100
(1 row)
postgres=# select to_timestamp(1659737869.084100);    
to_timestamp
----------------------------- 
2022-08-06 06:17:49.0841+08(1 row)

4、行4:实例运行监听的端口号: 5555

5、行5:实例 运行时使用的Unix Socket缺省目录: /var/run/postgresql

postgres=# show unix_socket_directories; 
unix_socket_directories--------------------------- /var/run/postgresql, /tmp(1 row)

6、行6:实例监听可接受的有效IP地址,这里是只接受IPv4: 0.0.0.0

postgres=# show listen_addresses ; 
listen_addresses------------------ 
0.0.0.0(1 row)

7、行7:52527898 0 记录着共享段的key和shmid值

[06:56:57-postgres@centos1:/var/lib/pgsql]$ 
ipcs -m
------ Shared Memory Segments --------
key    shmid   owner   perms   bytes   nattch   status
0x0321831a 0     postgres  600    56     7
postgres=# select x'0321831a'::bigint;  
int8
---------- 
52527898
(1 row)
postgres=# select to_hex(52527898); 
to_hex
--------- 
321831a
(1 row)

关于共享内存段,有趣的博文:

https://www.eygle.com/archives/2005/11/whats_mean_linux_shmmax.html

and:

Linux上shmmax 参数的设置及含义: https://www.modb.pro/db/16511

另一个:samples:

[01:49:37-postgres@sean-rh4:/var/lib/pgsql]$ ipcs -a
------ Message Queues 
--------
key    msqid   owner   perms   used-bytes  messages
------ 
Shared Memory Segments 
--------
key    shmid   owner   perms   bytes   nattch   status
0x0003e325 9     postgres  600    56     6
------ Semaphore Arrays --------
key    semid   owner   perms   nsems

8、行8:ready 实例目前的状态, 表示server已经准备就绪

[06:22:30-postgres@centos1:/var/lib/pgsql]$ pg_isready/var/run/postgresql:5555 
- 
accepting connections

 

微信公众号:数据库杂记   个人微信: _iihero
大家好,我是[Sean], iihero@CSDN
iihero@CSDN (https://iihero.blog.csdn.net) 
Sean@墨天轮 (https://www.modb.pro/u/16258)
数据库领域的资深爱好者一枚。SAP数据库技术专家与架构师,PostgreSQL ACE.
水木早期数据库论坛发起人db2@smth. 早期多年水木论坛数据库版版主。
曾长期担任CSDN相关数据库版版主。
国内最早一批DB2 DBA。前后对Sybase, PostgreSQL, HANA, 
Oracle, DB2, SQLite均有涉猎。
三本著作:<<Java2网络协议内幕>> <<Oracle Spatial及OCI高级编程>> 
<<Sybase ASE 15.X全程实践>>
兴趣领域:数据库技术及云计算、OpenAI业余专长爱好:中国武术六段 陈式太极拳第13代传人(北京陈式太极拳第5代传人)
职业太极拳教练,兼任北京陈式太极拳研究会副秘书长。
如果想通过习练陈式太极拳改善体质,也可以联系我。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/300883.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu22.04平台编译完美解决问题“error: GLSL 4.5 is not supported.”【GLSL(OpenGL着色器语言)】

GLSL介绍 GLSL&#xff08;OpenGL着色器语言&#xff09;是用于编写OpenGL着色器程序的语言。GLSL 4.5 是 GLSL 的一个版本&#xff0c;引入了许多新的特性和改进&#xff0c;旨在提高着色器编程的灵活性和性能。GLSL 4.5 工具通常是用于编写、调试和优化 GLSL 4.5 着色器代码…

SinoDB数据库导入导出工具unload/load

unload/load是最常使用的最简单的数据导入、导出工具&#xff0c;支持的数据格式为以固定分隔符(如“|”为默认的分隔符)分隔的文本文件。 1. unload 数据导出 使用方法如下: unload to filename’ [DELIMITER ‘delimiter’] SELECT Statement; 其中&#xff1a; filename可…

Octopus V2:设备端super agent的高级语言模型

论文&#xff1a;Octopus v2: On-device language model for super agent论文地址&#xff1a;https://arxiv.org/abs/2404.01744模型主页&#xff1a;https://huggingface.co/NexaAIDev/Octopus-v2 Octopus-V2-2B Octopus-V2-2B 是一款具有20亿参数的开源先进语言模型&#…

【论文速读】| 大语言模型平台安全:将系统评估框架应用于OpenAI的ChatGPT插件

本次分享论文为&#xff1a;LLM Platform Security: Applying a Systematic Evaluation Framework to OpenAI’s ChatGPT Plugins 基本信息 原文作者&#xff1a;Umar Iqbal, Tadayoshi Kohno, Franziska Roesner 作者单位&#xff1a;华盛顿大学圣路易斯分校&#xff0c;华盛…

数据备份的演变:数字时代的一个关键方面

微信关注获取更多内容 数据备份至关重要&#xff0c;涵盖了其过去、现在和未来&#xff0c;是数字时代任何企业运营的一个重要方面。 如今&#xff0c;公司运营的几乎每个方面&#xff0c;从客户信息到内部财务数据&#xff0c;都以数字方式存储。 有鉴于此&#xff0c;数据…

【IoTDB 线上小课 01】我们聊聊“金三银四”下的开源

关于 IoTDB&#xff0c;关于物联网&#xff0c;关于时序数据库&#xff0c;关于开源...你是否仍有很多疑问&#xff1f; 除了自己钻研文档&#xff0c;群里与各位“大佬”的沟通&#xff0c;你是否还希望能够有个学习“捷径”&#xff1f; 天谋科技发起社区小伙伴&#xff0c;正…

Linux - mac 装 mutipass 获取 ubuntu

mutipass &#xff1a;https://multipass.run/docs/mac-tutorial mutipass list mutipass launch --name myname mutipass shell myname 获取 root权限&#xff1a; sudo su

docker一键部署GPU版ChatGLM3

一键运行 docker run --gpus all -itd --name chatglm3 -p 81:80 -p 6006:6006 -p 8888:8888 -p 7860:7860 -p 8501:8501 -p 8000:8000 --shm-size32gb registry.cn-hangzhou.aliyuncs.com/cwp-docker/chatglm3-gpu:1.0 进入容器 docker exec -it chatglm3 /bin/bash cd /…

Golang单元测试和压力测试

一.单元测试 1.1 go test工具 go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程类似&#xff0c;并不需要学习新的语法&#xff0c;规则和工具。 go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内&#xff0c;所有以_test.go为后缀名的…

云原生安全当前的挑战与解决办法

云原生安全作为一种新兴的安全理念&#xff0c;不仅解决云计算普及带来的安全问题&#xff0c;更强调以原生的思维构建云上安全建设、部署与应用&#xff0c;推动安全与云计算深度融合。所以现在云原生安全在云安全领域越来受到重视&#xff0c;云安全厂商在这块的投入也是越来…

《神经网络入门》神经网络的思想 (一)

文章目录 生物神经元的结构如何用数学建模神经元的工作模式神经网络的结构 我们知道神经网络是一个模拟人脑的数学建模&#xff0c;首先我们来了解一下生物神经元是怎么工作的。 人的大脑是由非常多神经元相互连接形成的网络构成的。一个神经元&#xff0c;可以从其他神经元接…

AugmentedReality之路-平面检测(5)

本文介绍通过AR检测水平平面和垂直平面&#xff0c;并将检测到的平面转化为Mesh 1、在首页添加功能入口 在首页添加一个按钮&#xff0c;命名为Start World Track 2、自定义ExecStartAREvent 创建ARSessionConfig并取名为ARSessionConfig_World 自定义ExecStartAREvent&…

详解TCP/IP五层模型

目录 一、什么是TCP五层模型&#xff1f; 二、TCP五层模型的详细内容 1. 应用层 2. 传输层 3. 网络层 4. 数据链路层 5. 物理层 三、网络设备所在分层 封装和分⽤ 三、Java示例 引言&#xff1a; 在网络通信中&#xff0c;TCP/IP协议是至关重要的。为了更好地理解TCP协议的工…

最新高自定义化的AI翻译(沉浸式翻译),可翻译网页和PDF等文件或者文献(附翻译API总结,Deeplx的api,Deepl的api)

前序 常见问题&#xff1a; 1.有时候想翻译网页&#xff0c;又翻译文献怎么办&#xff1f;下两个软件&#xff1f; 2.什么软件可以翻译视频字幕&#xff1f; 3.什么软件可以翻译PDF文件&#xff1f; 沉浸式翻译介绍 可以翻译文献可以翻译视频字幕可以翻译PDF文件支持OpenAI翻译…

顺序表——功能实现

✨✨欢迎&#x1f44d;&#x1f44d;点赞☕️☕️收藏✍✍评论 个人主页&#xff1a;秋邱博客 所属栏目&#xff1a;C语言 &#xff08;感谢您的光临&#xff0c;您的光临蓬荜生辉&#xff09; 目录 1.0 前言 2.0 线性表 2.1 顺序表 2.2 顺序表的分类 2.3 顺序表功能的实现…

基于SSM的宠物管理系统

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/89076676?spm=1001.2014.3001.5503 技术:SSM(Spring+SpringMVC+MyBatis)+LayUI+Echarts技术栈,分页采用pagehelper插件,EasyExcel进行Excel文件的导入导出。 宠物管理系统 1 CHINER-宠物管理系…

ESP32S3网络编程学习笔记(1)—— Wi-Fi扫描实验

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动/单片机/RTOS的实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff…

数据结构进阶篇 之 【交换排序】(冒泡排序,快速排序递归、非递归实现)详细讲解

当你觉的自己不行时&#xff0c;你就走到斑马线上&#xff0c;这样你就会成为一个行人 一、交换排序 1.冒泡排序 BubbleSort 1.1 基本思想 1.2 实现原理 1.3 代码实现 1.4 冒泡排序的特性总结 2.快速排序 QuickSort 2.1 基本思想 2.2 递归实现 2.2.1 hoare版 2.2.2 …

vitepress系列-04-规整sideBar左侧菜单导航

规整左侧菜单导航 新建navConfig.ts 文件用来管理左侧导航菜单&#xff1a; 将于其他的配置分开&#xff0c;避免config.mts太大 在config目录下&#xff0c;新建 sidebarModules文件目录用来左侧导航菜单 按模块进行分类&#xff1a; 在config下新建sidebarConfig.ts文件&…

【引子】C++从介绍到HelloWorld

C从介绍到HelloWorld 一、C的介绍1. 简介2. 应用场景3. C的标准![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e3efb0f207f647729b92c0b5bcd4b330.png)4. C的运行过程 二、Visual Studio的安装1. 什么是Visual Studio2. Visual Studio的安装 三、完成HelloWorld1.…