What is a Postmaster PID file in PostgreSQL?
- As per the PostgreSQL architecture, the postmaster is the first background process that will starts when the cluster is started.
- It is a parent process of all other background processes.
- In case any of the other background processes got failed, The postmaster automatically restart the dead processes.
- It also works as a listener. When the client’s request to the server first it will land into the postmaster and perform syntax and semantic checking, Once it is pass and spawn a new connection this process called “Pgprocess”.
- The postmaster act as a listener well as the parent process, so it is also called “Supervision”.
ps -ef|grep postmasterpostgres 393 32729 0 22:28 pts/3 00:00:00 grep postmaster
Purpose of Postmaster PID file:
- The postmaster PID file resides on the data directory when the cluster is up and running.
- The purpose of this PID file uses to capture
1. the current postmaster process ID (PID),
2. cluster data directory path, postmaster start timestamp,
3. port number,
4. Unix domain socket directory path,
5. listen_address (IP address)
6. shared memory segment id.
- The captured PID file details are being locked when the cluster was up and running. It protects to access the same port number or data directory for another cluster launch or running.
$cd $PGDATA$lsbase pg_commit_ts pg_ident.conf pg_notify pg_snapshots pg_subtrans PG_VERSION postgresql.auto.conf postmaster.pid
global pg_dynshmem pg_logical pg_replslot pg_stat pg_tblspc pg_wal postgresql.conf
logfile pg_hba.conf pg_multixact pg_serial pg_stat_tmp pg_twophase pg_xact postmaster.opts
To view the postmaster PID file:
$ cat postmaster.pid4693/u01/pgdatabase/data16156884855432/tmp*5432001 3604491ready
· Now I have just stopped my cluster services using pg_ctl
pg_ctl stop -mfwaiting for the server to shut down.... doneserver stopped
After the cluster is stopped of we verify that the postmaster PID file it was automatically disappeared from the data directory.
summary:
· The postmaster PID file will be generated automatically when the cluster services are up and running.
· It is a lock file that maintains the current cluster details i.e not allow to use of these details to run another cluster on the same port or data directory
Comments
Post a Comment