explain postmaster.pid

转载 2012年03月23日 14:32:37
今天我们部门内部的数据库讲座, 提到了postmaster.pid这个文件, 我以前并没有仔细的去查看它每一行的含义.
刚好今天有机会查了一下源码, 再加上三个臭皮匠赛过一个诸葛亮. 终于把每一行的意思给搞明白了.
先来看一个postmaster.pid文件的内容 : 
cat postmaster.pid

2551
/pgdata/digoal/1921/data02/pg_root
1331803654
1921
/pgdata/digoal/1921/data02/pg_root
0.0.0.0
  1921001   6127619

我一行一行来解释 : 
2551 postgres主进程的PID

ps -ewf|grep 2551
postgres  2551     1  0 17:27 ?        00:00:00 /opt/pgsql/bin/postgres
postgres  2552  2551  0 17:27 ?        00:00:00 postgres: logger process   
postgres  2554  2551  0 17:27 ?        00:00:00 postgres: writer process   
postgres  2555  2551  0 17:27 ?        00:00:00 postgres: wal writer process   
postgres  2556  2551  0 17:27 ?        00:00:00 postgres: autovacuum launcher process   
postgres  2557  2551  0 17:27 ?        00:00:00 postgres: archiver process   
postgres  2558  2551  0 17:27 ?        00:00:00 postgres: stats collector process   


/pgdata/digoal/1921/data02/pg_root
数据目录.

1331803654
这行是这个文件创建的时间转换成epoch. 我一开始一直以为是pg_postmaster_start_time获得的时间.如果你发现不对的话就去看看postmaster.pid的文件创建时间吧.

digoal=# select pg_postmaster_start_time();
   pg_postmaster_start_time    
-------------------------------
 2012-03-15 17:27:34.416047+08
(1 row)
digoal=# select extract(epoch from '2012-03-15 17:27:34'::timestamp);  
date_part  
------------  
1331803654 
(1 row)

虽然上面的postmaster时间和这个文件的创建时间一致, 但它其实是这个文件的创建时间.

stat postmaster.pid  

File: `postmaster.pid'  

Size: 119 Blocks: 8 IO Block: 4096  

regular file Device: fd03h/64771d Inode: 1572868 Links: 1 

Access: (0600/-rw-------)  

Uid: ( 500/postgres)  

Gid: ( 500/postgres) 

Access: 2012-03-15 17:41:10.416810701 +0800 

Modify: 2012-03-15 17:27:34.364810701 +0800 

Change: 2012-03-15 17:27:34.364810701 +0800


1921 数据库监听端口. 在postgresql.conf中对应 port = 1921
 
/pgdata/digoal/1921/data02/pg_root 是unix socket的监听目录. 在postgresql.conf中对应 unix_socket_directory = '/pgdata/digoal/1921/data02/pg_root'

0.0.0.0 数据库监听地址, 对应 postgresql.conf 的 listen_addresses = '0.0.0.0'

最后一行对应的是共享内存的地址(shared memory segments中的key和shmid).
  1921001   6127619

ipcs  
------ Shared Memory Segments -------- 
key shmid owner perms bytes nattch status  
0x001d4fe9 6127619 postgres 600 617250816 4

postmaster.pid显示的是key转成10进制后的数字.

Greenplum学习7--postmaster.pid does not exist问题

Command was: 'env GPSESSID=0000000000 GPERA=None $GPHOME/bin/pg_ctl -D /data/master/gpseg-1 -l /data...
  • qq_35767346
  • qq_35767346
  • 2016年10月10日 10:56
  • 2748

解析Greenplum每个实例的postmaster.opts和postmaster.pid内容

本文档解析Greenplum每一个postgresql实例的目录下面的postmaster.opts和postmaster.pid文件内容,其内容和PostgreSQL略有差别。 比如我们看...
  • jiangshouzhuang
  • jiangshouzhuang
  • 2016年06月28日 23:07
  • 3054

postgresql无法启动,事件查看器提示bogus data in lock file "postmaster.pid

系统:win7 出错yuan'y 删除data 目录下的postmaster.pid文件,重启即可.
  • u013558606
  • u013558606
  • 2014年04月10日 10:35
  • 1978

postgresql 启动报错 pg_ctl:PID file "/database/data/postmaster.pid" does not exist

楼主项目遇到过此问题,原因: /pgdata目录权限问题,chown -R postgres:root /pgdata ,成功解决...
  • KONGQINGLI
  • KONGQINGLI
  • 2016年12月01日 23:41
  • 2175

MySQL EXPLAIN 命令详解学习

MySQL EXPLAIN 命令详解 MySQL的EXPLAIN命令用于SQL语句的查询执行计划(QEP)。这条命令的输出结果能够让我们了解MySQL 优化器是如何执行 SQL 语句的。这条命...
  • woshiqjs
  • woshiqjs
  • 2014年04月19日 20:50
  • 19728

mysql中explain用法和结果的含义

explain select * from user   explain extended select * from user id SELECT识别符...
  • u010061060
  • u010061060
  • 2016年09月08日 17:03
  • 1162

消失的postmaster进程

消失的postmaster进程
  • msdnchina
  • msdnchina
  • 2017年03月02日 18:29
  • 393

pigz 打包压缩

普通的tar命令是单进程执行,备份稍大些目录时就会感觉力不从心。linux 推出了并行版本的tar,那就是 pigz。使用一次,你就离不了它了。 安装 yum install pigz 压缩...
  • ctypyb2002
  • ctypyb2002
  • 2018年01月17日 16:23
  • 18

使用 EXPLAIN 关键字 检查SQL语句效率

explain详细说明 通过explain可以知道mysql是如何处理语句,分析出查询或是表结构的性能瓶颈。通过expalin可以得到: 1. 表的读取顺序 2.表的读取操作的操作类型 3.哪...
  • xm1331305
  • xm1331305
  • 2014年05月14日 14:10
  • 3733

PostgreSQL explain返回行的评估

PostgreSQL explain返回行的评估
  • luojinbai
  • luojinbai
  • 2015年03月05日 12:48
  • 1622
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:explain postmaster.pid
举报原因:
原因补充:

(最多只允许输入30个字)