理解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 grep
     1  23267  23267  23267 ?            -1 Ss      26   0:02 /usr/pgsql-14/bin/postgres
 23267  23268  23268  23268 ?            -1 Ss      26   0:00  \_ postgres: logger
 23267  23270  23270  23270 ?            -1 Ss      26   0:00  \_ postgres: checkpointer
 23267  23271  23271  23271 ?            -1 Ss      26   0:03  \_ postgres: background writer
 23267  23272  23272  23272 ?            -1 Ss      26   0:03  \_ postgres: walwriter
 23267  23273  23273  23273 ?            -1 Ss      26   0:02  \_ postgres: autovacuum launcher
 23267  23274  23274  23274 ?            -1 Ss      26   0:00  \_ postgres: archiver
 23267  23275  23275  23275 ?            -1 Ss      26   0:04  \_ postgres: stats collector
 23267  23276  23276  23276 ?            -1 Ss      26   0:00  \_ postgres: logical replication launcher
 23267  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代传人)
职业太极拳教练,兼任北京陈式太极拳研究会副秘书长。
如果想通过习练陈式太极拳改善体质,也可以联系我。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

脱单微信群|相亲脱单支招|手把手教你脱单

群里有太多优质单身男女生&#xff0c;你的脱单困惑&#xff0c;TA可能也遇到过。抬手在群里滴滴&#xff0c;即刻拥有一群有过相同问题的友友和运营客服帮忙。 点我进脱单群 点击 情感脱单问题&#xff0c;直接私信给樱桃情感老师&#xff0c;保护个人隐私和提升问题解决效率…

arcgis10.5安装步骤

目录 一、安装License 二、安装ArcGIS_Desktop 三、安装汉化包&#xff0c;解压后&#xff0c;直接双击等待安装即可 一、安装License 双击ArcGIS_License_Manager_Windows_105_154033 选择【Next】 勾选I accept&#xff0c;然后选择【Next】 选择License的安装目录&#x…

详解事件循环

浏览器的进程模型 何为进程&#xff1f; 程序运行需要有它自己专属的内存空间&#xff0c;可以把这块内存空间简单的理解为进程 每个应用至少有一个进程&#xff0c;进程之间相互独立&#xff0c;即使要通信&#xff0c;也需要双方同意。 何为线程 &#xff1f; 有了进程后…

锂电池算法学习集合---基于matlab/simulink的电池参数辨识、充放电、SOC估计算法。

整理了锂电池的多种算法合集&#xff1a;涵盖电动汽车Simulink模型、电动汽车动力电池SOC估算模型、动力电池及电池管理系统BMS。 电动汽车动力电池SOC估算模型含有:电池参数辨识模型、电池的充放电数据、电池手册、卡尔曼滤波电池SOC文献、卡尔曼滤波算法的锂电池SOC估算模型…

15-1-Flex布局

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 Flex布局1 Flex容器和Flex项目2 Flex 容器属性2.1 主轴的方向2.2 主轴对齐方式…

STM32智能家居小助手

​ 设计的目的 大部分家用电器开关仍旧是传统的机械式按键开关&#xff0c;原因是传统式的电器开关开发周期短&#xff0c;制作成本低&#xff0c;方案成熟&#xff0c;但是传统的遥控家电开关已经不能满足人们对家电控制的要求&#xff0c;传统的遥控器具有单一性&#xff0c;…

k8s1.28-helm安装kafka-Raft集群

参考文档 [Raft Kafka on k8s 部署实战操作 - 掘金 (juejin.cn)](https://juejin.cn/post/7349437605857411083?fromsearch-suggest)部署 Raft Kafka&#xff08;Kafka 3.3.1 及以上版本引入的 KRaft 模式&#xff09;在 Kubernetes (k8s) 上&#xff0c;可以简化 Kafka 集群…

Linux编程中进程的概念和环境变量

目录 概述 1 认识进程 1.1 进程的定义 1.2 进程状态 1.3 进程的调用 2 进程环境 2.1 进程ID 2.2 父进程与子进程 2.3 UID 和 GID 2.4 环境变量 2.4.1 通过main函数参数获取环境变量 2.4.2 environ 全局变量获取环境变量 2.4.3 getenv()函数获取环境变量 2.5 环境变…

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 着色器代码…

Java基于微信小程序的校园外卖平台系统,附源码

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

怎么将本地VScode与Linux云服务器上的Vscode联动起来

首先我们打开本地刚刚下好的VScode&#xff0c; 下载remote SSH插件 按下F1 找到该选项&#xff0c; 点击 然后输入ssh 用户名公网地址 点击选择第一个 此时你的VScode左侧栏里就会出现这个图标 点进来后就可以看到主机已经加载进来了(如果没有&#xff0c; 关闭VScode重进…

工业4g路由器联网后迅速掉线是什么原因?

工业4G路由器连接上网后迅速掉线可能是由多种因素造成的。以下是一些建议的检查和解决步骤&#xff1a; 1、信号问题&#xff1a; 信号强度&#xff1a;检查工业路由器信号强度指示灯&#xff0c;如果信号弱&#xff0c;尝试移动路由器位置或添加外部天线来增强信号。 网络拥…

绘画尝试1

提示词&#xff1a;Elegant woman, standing in a picturesque courtyard, slender figure, graceful posture, elegant back, smooth neck line, flashing charming eyes. 绘画成果&#xff1a;

机器学习和深度学习

一、定义 机器学习是一种人工智能领域的分支&#xff0c;旨在使计算机系统能够自动从数据中学习和提高性能&#xff0c;而不需要明确的编程。简而言之&#xff0c;机器学习是利用经验来训练计算机系统&#xff0c;使其能够从输入数据中提取规律&#xff0c;并对新数据进行预测…

百度松果菁英班——机器学习实践四:文本词频分析

飞桨AI Studio星河社区-人工智能学习与实训社区 &#x1f96a;jieba分词词频统计 import jieba # jieba中文分词库 ​ with open(test.txt, r, encodingUTF-8) as novelFile:novel novelFile.read() # print(novel) stopwords [line.strip() for line in open(stop.txt, r,…

mac老版本如何升级到最新版本

mac老版本如何升级到最新版本 老macbook升级新版本&#xff08;Big sur、Monterey&#xff09; 首先介绍我的电脑的机型及情况&#xff1a; 2015年初的MacBook Air 处理器是1.6Hz 双核Interl Core i5 内存4G 老版本只能升到10.13 想要升到最高版本的原因&#xff1a;想要注册…

React18从入门到实战

文章目录 一、React环境的搭建二、项目文件的介绍&#xff08;1&#xff09;package.json&#xff0c;他是项目存放依赖包的地方&#xff0c;里面包括了一些项目核心包及下载的其他插件包&#xff08;2&#xff09;src文件夹是项目源码目录&#xff0c;平时开发页面就在其中&am…

【ArcGIS微课1000例】0108:ArcGIS计算归一化差值植被指数

本文讲解ArcGIS中,基于Landsat8数据的NDVI归一化差值植被指数计算。 文章目录 一、加载数据二、归一化植被指数NDVI1. NDVI介绍2. NDVI计算三、注意事项一、加载数据 加载配套数据0108.rar中的Landsat8的8个单波段数据,如下所示: Landsat8波段信息对照表如下表所示: 接下来…

前端开发语言有那些?

前端开发语言有那些&#xff1f; 1、html 超文本标记语言&#xff1a;构建前端网页的基本结构&#xff0c;就象人的骨架一样。 2、css 层叠样式表&#xff1a;控制网页的样式和布局&#xff0c;就象人需要穿各种服式展现不同风采。 3、javascript 简称 JS 动态脚本语言&#x…

论文笔记:Detecting Pretraining Data from Large Language Models

iclr 2024 reviewer评分 5688 1 intro 论文考虑的问题&#xff1a;给定一段文本和对一个黑盒语言模型的访问权限&#xff0c;在不知道其预训练数据的情况下&#xff0c;能否判断该模型是否在这段文本上进行了预训练 这个问题是成员推断攻击(Membership Inference Attacks&…