The postgreSQL server comes with a wrapper called pg_ctl which will simplify some admin tasks for you.
Check if the variable PGDATA is set:
[postgres@myserver ~]$ echo $PGDATA /pgdata/data
Check status:
[postgres@myserver ~]$ pg_ctl status pg_ctl: server is running (PID: 27870) /usr/pgsql-11/bin/postgres "-D" "/pgdata/data"
If the PGDATA variable is not set in your operating system, you need to specify the D-flag, like this:
[postgres@myserver ~]$ pg_ctl status -D /pgdata/data pg_ctl: server is running (PID: 27870) /usr/pgsql-11/bin/postgres "-D" "/pgdata/data"
Check if the database accepts incoming requests:
[postgres@myserver ~]$ pg_isready -d testdb01 /var/run/postgresql:5432 - accepting connectionsStop:
[postgres@myserver ~]$ pg_ctl stop waiting for server to shut down.... done server stopped
Start:
[postgres@myserver ~]$ pg_ctl start waiting for server to start....2019-01-30 10:35:04 CET LOG: listening on IPv4 address "0.0.0.0", port 5432 2019-01-30 10:35:04 CET LOG: listening on IPv6 address "::", port 5432 2019-01-30 10:35:04 CET LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" 2019-01-30 10:35:04 CET LOG: listening on Unix socket "/tmp/.s.PGSQL.5432" 2019-01-30 10:35:04 CET LOG: redirecting log output to logging collector process 2019-01-30 10:35:04 CET HINT: Future log output will appear in directory "log". done server startedIf your postgres server is running on RHEL7 or newer, you should use systemctl to control the service:
systemctl start postgresql-11 systemctl stop postgresql-11 systemctl restart postgresql-11 systemctl status postgresql-11Example output(abbreviated) from the status command:
● postgresql-11.service - PostgreSQL 11 database server Loaded: loaded (/etc/systemd/system/postgresql-11.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2021-01-08 02:20:51 CET; 1 months 10 days ago Docs: https://www.postgresql.org/docs/11/static/ Main PID: 1910 (postmaster) CGroup: /system.slice/postgresql-11.service ├─ 1910 /usr/pgsql-11/bin/postmaster -D /postgres/data ├─ 2047 postgres: logger ├─ 2390 postgres: checkpointer ├─ 2392 postgres: background writer ├─ 2394 postgres: walwriter ├─ 2395 postgres: autovacuum launcher ├─ 2396 postgres: archiver last was 00000001000002360000009A ├─ 2397 postgres: stats collector ├─ 2398 postgres: logical replication launcher ├─ 2766 postgres: postgres_exporter postgres localhost(60360) idle ├─ 3061 postgres: postgres_exporter postgres localhost(44202) idle ├─48217 postgres: postgres postgres [local] idle
If the postgres server is down, and you need to check the current version installed, you can use either of these methods:
which psql /sw/postgres/pgsql-13/bin/psql cat /u02/pgdata/datafiles/PG_VERSION 13 cat /etc/PG_VERSION 13.ansible