0% found this document useful (0 votes)
28 views28 pages

Postgres Conf Log

The document details a series of commands executed on a PostgreSQL server, including a restart of the server and the monitoring of its processes. It highlights issues such as the termination of the WAL writer process and subsequent automatic recovery actions taken by the database system. Log entries indicate the database's state and readiness to accept connections after recovery operations.

Uploaded by

Kirhn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views28 pages

Postgres Conf Log

The document details a series of commands executed on a PostgreSQL server, including a restart of the server and the monitoring of its processes. It highlights issues such as the termination of the WAL writer process and subsequent automatic recovery actions taken by the database system. Log entries indicate the database's state and readiness to accept connections after recovery operations.

Uploaded by

Kirhn
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 28

login as: root

[email protected]'s password:
Last login: Tue Aug 12 18:14:56 2025
[root@localhost ~]# su - postgres
Last login: Mon Aug 11 18:50:18 PDT 2025 on pts/1
[postgres@localhost ~]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03 restart
pg_ctl: old server process (PID: 8913) seems to be gone
starting server anyway
waiting for server to start....2025-08-12 18:16:36.164 PDT [8971] LOG: listening
on IPv4 address "0.0.0.0", port 9999
2025-08-12 18:16:36.164 PDT [8971] LOG: listening on IPv6 address "::", port 9999
2025-08-12 18:16:36.165 PDT [8971] LOG: listening on Unix socket
"/var/run/postgresql/.s.PGSQL.9999"
2025-08-12 18:16:36.168 PDT [8971] LOG: listening on Unix socket
"/tmp/.s.PGSQL.9999"
2025-08-12 18:16:36.225 PDT [8971] LOG: redirecting log output to logging
collector process
2025-08-12 18:16:36.225 PDT [8971] HINT: Future log output will appear in
directory "log".
done
server started
[postgres@localhost ~]$ ps -ef | grep postgres
root 8928 8893 0 18:16 pts/1 00:00:00 su - postgres
postgres 8929 8928 0 18:16 pts/1 00:00:00 -bash
postgres 8971 1 0 18:16 pts/1 00:00:00 /usr/pgsql-11/bin/postgres -D
/home/postgres/app03
postgres 8972 8971 0 18:16 ? 00:00:00 postgres: logger
postgres 8974 8971 0 18:16 ? 00:00:00 postgres: checkpointer
postgres 8975 8971 0 18:16 ? 00:00:00 postgres: background writer
postgres 8976 8971 0 18:16 ? 00:00:00 postgres: walwriter
postgres 8977 8971 0 18:16 ? 00:00:00 postgres: autovacuum launcher
postgres 8978 8971 0 18:16 ? 00:00:00 postgres: stats collector
postgres 8979 8971 0 18:16 ? 00:00:00 postgres: logical replication
launcher
postgres 9133 8929 0 18:20 pts/1 00:00:00 ps -ef
postgres 9134 8929 0 18:20 pts/1 00:00:00 grep --color=auto postgres
[postgres@localhost ~]$ kill -9 8976
[postgres@localhost ~]$ ps -ef | grep postgres
root 8928 8893 0 18:16 pts/1 00:00:00 su - postgres
postgres 8929 8928 0 18:16 pts/1 00:00:00 -bash
postgres 8971 1 0 18:16 pts/1 00:00:00 /usr/pgsql-11/bin/postgres -D
/home/postgres/app03
postgres 8972 8971 0 18:16 ? 00:00:00 postgres: logger
postgres 9137 8971 0 18:21 ? 00:00:00 postgres: checkpointer
postgres 9138 8971 0 18:21 ? 00:00:00 postgres: background writer
postgres 9139 8971 0 18:21 ? 00:00:00 postgres: walwriter
postgres 9140 8971 0 18:21 ? 00:00:00 postgres: autovacuum launcher
postgres 9141 8971 0 18:21 ? 00:00:00 postgres: stats collector
postgres 9142 8971 0 18:21 ? 00:00:00 postgres: logical replication
launcher
postgres 9143 8929 0 18:21 pts/1 00:00:00 ps -ef
postgres 9144 8929 0 18:21 pts/1 00:00:00 grep --color=auto postgres
[postgres@localhost ~]$ cd /home/postgres/app03
[postgres@localhost app03]$ cd log
[postgres@localhost log]$ ls -lr
total 44
-rw-------. 1 postgres postgres 15823 Aug 6 09:34 postgresql-Wed.log
-rw-------. 1 postgres postgres 2770 Aug 12 18:21 postgresql-Tue.log
-rw-------. 1 postgres postgres 6313 Aug 7 07:24 postgresql-Thu.log
-rw-------. 1 postgres postgres 2861 Jul 20 21:05 postgresql-Sun.log
-rw-------. 1 postgres postgres 722 Jul 1 09:23 postgresql-Sat.log
-rw-------. 1 postgres postgres 952 Aug 11 18:50 postgresql-Mon.log
-rw-------. 1 postgres postgres 1728 Jul 13 09:19 postgresql-Fri.log
[postgres@localhost log]$ ls -ltr
total 44
-rw-------. 1 postgres postgres 722 Jul 1 09:23 postgresql-Sat.log
-rw-------. 1 postgres postgres 1728 Jul 13 09:19 postgresql-Fri.log
-rw-------. 1 postgres postgres 2861 Jul 20 21:05 postgresql-Sun.log
-rw-------. 1 postgres postgres 15823 Aug 6 09:34 postgresql-Wed.log
-rw-------. 1 postgres postgres 6313 Aug 7 07:24 postgresql-Thu.log
-rw-------. 1 postgres postgres 952 Aug 11 18:50 postgresql-Mon.log
-rw-------. 1 postgres postgres 2770 Aug 12 18:21 postgresql-Tue.log
[postgres@localhost log]$ tail -1000 postgresql-Tue.log
2025-07-22 22:31:15.869 PDT [8938] LOG: checkpoint complete: wrote 1 buffers
(0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.166 s, sync=0.000 s,
total=0.188 s; sync files=1, longest=0.000 s, average=0.000 s; distance=6 kB,
estimate=298 kB
2025-08-12 18:16:36.231 PDT [8973] LOG: database system was interrupted; last
known up at 2025-08-11 18:50:31 PDT
2025-08-12 18:16:36.461 PDT [8973] LOG: database system was not properly shut
down; automatic recovery in progress
2025-08-12 18:16:36.463 PDT [8973] LOG: redo starts at 0/1C65AA08
2025-08-12 18:16:36.463 PDT [8973] LOG: invalid record length at 0/1C65AA40:
wanted 24, got 0
2025-08-12 18:16:36.463 PDT [8973] LOG: redo done at 0/1C65AA08
2025-08-12 18:16:36.465 PDT [8973] LOG: checkpoint starting: end-of-recovery
immediate
2025-08-12 18:16:36.467 PDT [8973] LOG: checkpoint complete: wrote 0 buffers
(0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.000 s, sync=0.000 s,
total=0.002 s; sync files=0, longest=0.000 s, average=0.000 s; distance=0 kB,
estimate=0 kB
2025-08-12 18:16:36.471 PDT [8971] LOG: database system is ready to accept
connections
2025-08-12 18:21:09.500 PDT [8971] LOG: WAL writer process (PID 8976) was
terminated by signal 9: Killed
2025-08-12 18:21:09.500 PDT [8971] LOG: terminating any other active server
processes
2025-08-12 18:21:09.511 PDT [8977] WARNING: terminating connection because of
crash of another server process
2025-08-12 18:21:09.511 PDT [8977] DETAIL: The postmaster has commanded this
server process to roll back the current transaction and exit, because another
server process exited abnormally and possibly corrupted shared memory.
2025-08-12 18:21:09.511 PDT [8977] HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2025-08-12 18:21:09.525 PDT [8971] LOG: all server processes terminated;
reinitializing
2025-08-12 18:21:09.543 PDT [9136] LOG: database system was interrupted; last
known up at 2025-08-12 18:16:36 PDT
2025-08-12 18:21:09.670 PDT [9136] LOG: database system was not properly shut
down; automatic recovery in progress
2025-08-12 18:21:09.671 PDT [9136] LOG: redo starts at 0/1C65AAB0
2025-08-12 18:21:09.671 PDT [9136] LOG: invalid record length at 0/1C65AAE8:
wanted 24, got 0
2025-08-12 18:21:09.671 PDT [9136] LOG: redo done at 0/1C65AAB0
2025-08-12 18:21:09.673 PDT [9136] LOG: checkpoint starting: end-of-recovery
immediate
2025-08-12 18:21:09.677 PDT [9136] LOG: checkpoint complete: wrote 0 buffers
(0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.000 s, sync=0.000 s,
total=0.004 s; sync files=0, longest=0.000 s, average=0.000 s; distance=0 kB,
estimate=0 kB
2025-08-12 18:21:09.683 PDT [8971] LOG: database system is ready to accept
connections
[postgres@localhost log]$ more postgresql-Tue.log
2025-07-22 22:31:15.869 PDT [8938] LOG: checkpoint complete: wrote 1 buffers
(0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; writ
e=0.166 s, sync=0.000 s, total=0.188 s; sync files=1, longest=0.000 s,
average=0.000 s; distance=6 kB, estimate=298 kB
2025-08-12 18:16:36.231 PDT [8973] LOG: database system was interrupted; last
known up at 2025-08-11 18:50:31 PDT
2025-08-12 18:16:36.461 PDT [8973] LOG: database system was not properly shut
down; automatic recovery in progress
2025-08-12 18:16:36.463 PDT [8973] LOG: redo starts at 0/1C65AA08
2025-08-12 18:16:36.463 PDT [8973] LOG: invalid record length at 0/1C65AA40:
wanted 24, got 0
2025-08-12 18:16:36.463 PDT [8973] LOG: redo done at 0/1C65AA08
2025-08-12 18:16:36.465 PDT [8973] LOG: checkpoint starting: end-of-recovery
immediate
2025-08-12 18:16:36.467 PDT [8973] LOG: checkpoint complete: wrote 0 buffers
(0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; writ
e=0.000 s, sync=0.000 s, total=0.002 s; sync files=0, longest=0.000 s,
average=0.000 s; distance=0 kB, estimate=0 kB
2025-08-12 18:16:36.471 PDT [8971] LOG: database system is ready to accept
connections
2025-08-12 18:21:09.500 PDT [8971] LOG: WAL writer process (PID 8976) was
terminated by signal 9: Killed
2025-08-12 18:21:09.500 PDT [8971] LOG: terminating any other active server
processes
2025-08-12 18:21:09.511 PDT [8977] WARNING: terminating connection because of
crash of another server process
2025-08-12 18:21:09.511 PDT [8977] DETAIL: The postmaster has commanded this
server process to roll back the current transaction and
exit, because another server process exited abnormally and possibly corrupted
shared memory.
2025-08-12 18:21:09.511 PDT [8977] HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2025-08-12 18:21:09.525 PDT [8971] LOG: all server processes terminated;
reinitializing
2025-08-12 18:21:09.543 PDT [9136] LOG: database system was interrupted; last
known up at 2025-08-12 18:16:36 PDT
2025-08-12 18:21:09.670 PDT [9136] LOG: database system was not properly shut
down; automatic recovery in progress
2025-08-12 18:21:09.671 PDT [9136] LOG: redo starts at 0/1C65AAB0
2025-08-12 18:21:09.671 PDT [9136] LOG: invalid record length at 0/1C65AAE8:
wanted 24, got 0
2025-08-12 18:21:09.671 PDT [9136] LOG: redo done at 0/1C65AAB0
2025-08-12 18:21:09.673 PDT [9136] LOG: checkpoint starting: end-of-recovery
immediate
2025-08-12 18:21:09.677 PDT [9136] LOG: checkpoint complete: wrote 0 buffers
(0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; writ
e=0.000 s, sync=0.000 s, total=0.004 s; sync files=0, longest=0.000 s,
average=0.000 s; distance=0 kB, estimate=0 kB
2025-08-12 18:21:09.683 PDT [8971] LOG: database system is ready to accept
connections
[postgres@localhost log]$
[postgres@localhost log]$ more postgresql-Tue.log
2025-07-22 22:31:15.869 PDT [8938] LOG: checkpoint complete: wrote 1 buffers
(0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; writ
e=0.166 s, sync=0.000 s, total=0.188 s; sync files=1, longest=0.000 s,
average=0.000 s; distance=6 kB, estimate=298 kB
2025-08-12 18:16:36.231 PDT [8973] LOG: database system was interrupted; last
known up at 2025-08-11 18:50:31 PDT
2025-08-12 18:16:36.461 PDT [8973] LOG: database system was not properly shut
down; automatic recovery in progress
2025-08-12 18:16:36.463 PDT [8973] LOG: redo starts at 0/1C65AA08
2025-08-12 18:16:36.463 PDT [8973] LOG: invalid record length at 0/1C65AA40:
wanted 24, got 0
2025-08-12 18:16:36.463 PDT [8973] LOG: redo done at 0/1C65AA08
2025-08-12 18:16:36.465 PDT [8973] LOG: checkpoint starting: end-of-recovery
immediate
2025-08-12 18:16:36.467 PDT [8973] LOG: checkpoint complete: wrote 0 buffers
(0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; writ
e=0.000 s, sync=0.000 s, total=0.002 s; sync files=0, longest=0.000 s,
average=0.000 s; distance=0 kB, estimate=0 kB
2025-08-12 18:16:36.471 PDT [8971] LOG: database system is ready to accept
connections
2025-08-12 18:21:09.500 PDT [8971] LOG: WAL writer process (PID 8976) was
terminated by signal 9: Killed
2025-08-12 18:21:09.500 PDT [8971] LOG: terminating any other active server
processes
2025-08-12 18:21:09.511 PDT [8977] WARNING: terminating connection because of
crash of another server process
2025-08-12 18:21:09.511 PDT [8977] DETAIL: The postmaster has commanded this
server process to roll back the current transaction and
exit, because another server process exited abnormally and possibly corrupted
shared memory.
2025-08-12 18:21:09.511 PDT [8977] HINT: In a moment you should be able to
reconnect to the database and repeat your command.
2025-08-12 18:21:09.525 PDT [8971] LOG: all server processes terminated;
reinitializing
2025-08-12 18:21:09.543 PDT [9136] LOG: database system was interrupted; last
known up at 2025-08-12 18:16:36 PDT
2025-08-12 18:21:09.670 PDT [9136] LOG: database system was not properly shut
down; automatic recovery in progress
2025-08-12 18:21:09.671 PDT [9136] LOG: redo starts at 0/1C65AAB0
2025-08-12 18:21:09.671 PDT [9136] LOG: invalid record length at 0/1C65AAE8:
wanted 24, got 0
2025-08-12 18:21:09.671 PDT [9136] LOG: redo done at 0/1C65AAB0
2025-08-12 18:21:09.673 PDT [9136] LOG: checkpoint starting: end-of-recovery
immediate
2025-08-12 18:21:09.677 PDT [9136] LOG: checkpoint complete: wrote 0 buffers
(0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; writ
e=0.000 s, sync=0.000 s, total=0.004 s; sync files=0, longest=0.000 s,
average=0.000 s; distance=0 kB, estimate=0 kB
2025-08-12 18:21:09.683 PDT [8971] LOG: database system is ready to accept
connections
[postgres@localhost log]$ date
Tue Aug 12 18:22:40 PDT 2025
[postgres@localhost log]$ cd ,,
-bash: cd: ,,: No such file or directory
[postgres@localhost log]$ cd ..
[postgres@localhost app03]$ ls -ltr
total 64
drwx------. 2 postgres postgres 6 Jun 17 10:07 pg_twophase
drwx------. 2 postgres postgres 6 Jun 17 10:07 pg_tblspc
drwx------. 2 postgres postgres 6 Jun 17 10:07 pg_snapshots
drwx------. 2 postgres postgres 6 Jun 17 10:07 pg_serial
drwx------. 2 postgres postgres 6 Jun 17 10:07 pg_replslot
drwx------. 4 postgres postgres 36 Jun 17 10:07 pg_multixact
drwx------. 2 postgres postgres 6 Jun 17 10:07 pg_dynshmem
drwx------. 2 postgres postgres 6 Jun 17 10:07 pg_commit_ts
-rw-------. 1 postgres postgres 3 Jun 17 10:07 PG_VERSION
-rw-------. 1 postgres postgres 1636 Jun 17 10:07 pg_ident.conf
drwx------. 2 postgres postgres 18 Jun 17 10:07 pg_xact
drwx------. 2 postgres postgres 18 Jun 17 10:07 pg_subtrans
-rw-------. 1 postgres postgres 1018 Jun 17 10:10 logfile
drwx------. 3 postgres postgres 92 Jul 2 08:13 pg_wal_bkp
lrwxrwxrwx. 1 postgres postgres 30 Jul 2 09:14 pg_wal ->
/home/postgres/app04/wal_files
-rw-------. 1 postgres postgres 134 Jul 13 09:16 postgresql.auto.conf
drwx------. 2 postgres postgres 188 Jul 14 06:10 log
-rw-------. 1 postgres postgres 24009 Jul 14 06:15 postgresql.conf
-rw-------. 1 postgres postgres 4581 Jul 14 06:37 pg_hba.conf
drwx------. 12 postgres postgres 136 Aug 6 09:34 base
-rw-------. 1 postgres postgres 55 Aug 12 18:16 postmaster.opts
-rw-------. 1 postgres postgres 30 Aug 12 18:16 current_logfiles
drwx------. 2 postgres postgres 4096 Aug 12 18:16 global
drwx------. 2 postgres postgres 18 Aug 12 18:21 pg_notify
drwx------. 2 postgres postgres 6 Aug 12 18:21 pg_stat
drwx------. 4 postgres postgres 68 Aug 12 18:21 pg_logical
-rw-------. 1 postgres postgres 93 Aug 12 18:21 postmaster.pid
drwx------. 2 postgres postgres 25 Aug 12 18:24 pg_stat_tmp
[postgres@localhost app03]$ ls -ltr *.conf
-rw-------. 1 postgres postgres 1636 Jun 17 10:07 pg_ident.conf
-rw-------. 1 postgres postgres 134 Jul 13 09:16 postgresql.auto.conf
-rw-------. 1 postgres postgres 24009 Jul 14 06:15 postgresql.conf
-rw-------. 1 postgres postgres 4581 Jul 14 06:37 pg_hba.conf
[postgres@localhost app03]$ more postgresql.conf
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
# name = value
#
# (The "=" is optional.) Whitespace may be used. Comments are introduced with
# "#" anywhere on a line. The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal. If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, run "pg_ctl reload", or execute
# "SELECT pg_reload_conf()". Some parameters, which are marked below,
# require a server shutdown and restart to take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on". Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units: kB = kilobytes Time units: ms = milliseconds
# MB = megabytes s = seconds
# GB = gigabytes min = minutes
# TB = terabytes h = hours
# d = days

#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------

# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.

#data_directory = 'ConfigDir' # use data in another directory


# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
# (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.


#external_pid_file = '' # write an extra PID file
# (change requires restart)

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*' # what IP address(es) to listen on;


# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 9999 # (change requires restart)
max_connections = 100 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '/var/run/postgresql, /tmp' # comma-separated list of
directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)

# - TCP Keepalives -
# see "man 7 tcp" for details

#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;


# 0 selects the system default
#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
# 0 selects the system default
#tcp_keepalives_count = 0 # TCP_KEEPCNT;
# 0 selects the system default

# - Authentication -
#authentication_timeout = 1min # 1s-600s
#password_encryption = md5 # md5 or scram-sha-256
#db_user_namespace = off

# GSSAPI using Kerberos


#krb_server_keyfile = ''
#krb_caseins_users = off

# - SSL -

#ssl = off
#ssl_ca_file = ''
#ssl_cert_file = 'server.crt'
#ssl_crl_file = ''
#ssl_key_file = 'server.key'
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
#ssl_prefer_server_ciphers = on
#ssl_ecdh_curve = 'prime256v1'
#ssl_dh_params_file = ''
#ssl_passphrase_command = ''
#ssl_passphrase_command_supports_reload = off

#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------

# - Memory -

shared_buffers = 128MB # min 128kB


# (change requires restart)
#huge_pages = try # on, off, or try
# (change requires restart)
#temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Caution: it is not advisable to set max_prepared_transactions nonzero unless
# you actively intend to use prepared transactions.
#work_mem = 4MB # min 64kB
#maintenance_work_mem = 64MB # min 1MB
#autovacuum_work_mem = -1 # min 1MB, or -1 to use
maintenance_work_mem
#max_stack_depth = 2MB # min 100kB
dynamic_shared_memory_type = posix # the default is the first option
# supported by the operating system:
# posix
# sysv
# windows
# mmap
# use none to disable dynamic shared memory
# (change requires restart)

# - Disk -

#temp_file_limit = -1 # limits per-process temp file space


# in kB, or -1 for no limit

# - Kernel Resources -
#max_files_per_process = 1000 # min 25
# (change requires restart)

# - Cost-Based Vacuum Delay -

#vacuum_cost_delay = 0 # 0-100 milliseconds


#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
#vacuum_cost_limit = 200 # 1-10000 credits

# - Background Writer -

#bgwriter_delay = 200ms # 10-10000ms between rounds


#bgwriter_lru_maxpages = 100 # max buffers written/round, 0 disables
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multiplier on buffers
scanned/round
#bgwriter_flush_after = 512kB # measured in pages, 0 disables

# - Asynchronous Behavior -

#effective_io_concurrency = 1 # 1-1000; 0 disables prefetching


#max_worker_processes = 8 # (change requires restart)
#max_parallel_maintenance_workers = 2 # taken from max_parallel_workers
#max_parallel_workers_per_gather = 2 # taken from max_parallel_workers
#parallel_leader_participation = on
#max_parallel_workers = 8 # maximum number of max_worker_processes
that
# can be used in parallel operations
#old_snapshot_threshold = -1 # 1min-60d; -1 disables; 0 is immediate
# (change requires restart)
#backend_flush_after = 0 # measured in pages, 0 disables

#------------------------------------------------------------------------------
# WRITE-AHEAD LOG
#------------------------------------------------------------------------------

# - Settings -

#wal_level = replica # minimal, replica, or logical


# (change requires restart)
#fsync = on # flush data to disk for crash safety
# (turning this off can cause
# unrecoverable data corruption)
#synchronous_commit = on # synchronization level;
# off, local, remote_write, remote_apply,
or on
#wal_sync_method = fsync # the default is the first option
# supported by the operating system:
# open_datasync
# fdatasync (default on Linux)
# fsync
# fsync_writethrough
# open_sync
#full_page_writes = on # recover from partial page writes
#wal_compression = off # enable compression of full-page writes
#wal_log_hints = off # also do full page writes of non-critical
updates
# (change requires restart)
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
# (change requires restart)
#wal_writer_delay = 200ms # 1-10000 milliseconds
#wal_writer_flush_after = 1MB # measured in pages, 0 disables

#commit_delay = 0 # range 0-100000, in microseconds


#commit_siblings = 5 # range 1-1000

# - Checkpoints -

#checkpoint_timeout = 5min # range 30s-1d


max_wal_size = 1GB
min_wal_size = 80MB
#checkpoint_completion_target = 0.5 # checkpoint target duration, 0.0 - 1.0
#checkpoint_flush_after = 256kB # measured in pages, 0 disables
#checkpoint_warning = 30s # 0 disables

# - Archiving -

#archive_mode = off # enables archiving; off, on, or always


# (change requires restart)
#archive_command = '' # command to use to archive a logfile segment
# placeholders: %p = path of file to archive
# %f = file name only
# e.g. 'test ! -f /mnt/server/archivedir/%f && cp
%p /mnt/server/archivedir/%f'
#archive_timeout = 0 # force a logfile segment switch after this
# number of seconds; 0 disables

#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------

# - Sending Servers -

# Set these on the master and on any standby that will send replication data.

#max_wal_senders = 10 # max number of walsender processes


# (change requires restart)
#wal_keep_segments = 0 # in logfile segments; 0 disables
#wal_sender_timeout = 60s # in milliseconds; 0 disables

#max_replication_slots = 10 # max number of replication slots


# (change requires restart)
#track_commit_timestamp = off # collect timestamp of transaction commit
# (change requires restart)

# - Master Server -

# These settings are ignored on a standby server.

#synchronous_standby_names = '' # standby servers that provide sync rep


# method to choose sync standbys, number of sync
standbys,
# and comma-separated list of application_name
# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0 # number of xacts by which cleanup is delayed

# - Standby Servers -

# These settings are ignored on a master server.

#hot_standby = on # "off" disallows queries during recovery


# (change requires restart)
#max_standby_archive_delay = 30s # max delay before canceling queries
# when reading WAL from archive;
# -1 allows indefinite delay
#max_standby_streaming_delay = 30s # max delay before canceling queries
# when reading streaming WAL;
# -1 allows indefinite delay
#wal_receiver_status_interval = 10s # send replies at least this often
# 0 disables
#hot_standby_feedback = off # send info from standby to prevent
# query conflicts
#wal_receiver_timeout = 60s # time that receiver waits for
# communication from master
# in milliseconds; 0 disables
#wal_retrieve_retry_interval = 5s # time to wait before retrying to
# retrieve WAL after a failed attempt

# - Subscribers -

# These settings are ignored on a publisher.

#max_logical_replication_workers = 4 # taken from max_worker_processes


# (change requires restart)
#max_sync_workers_per_subscription = 2 # taken from
max_logical_replication_workers

#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_parallel_append = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on
#enable_partitionwise_join = off
#enable_partitionwise_aggregate = off
#enable_parallel_hash = on
#enable_partition_pruning = on

# - Planner Cost Constants -


#seq_page_cost = 1.0 # measured on an arbitrary scale
#random_page_cost = 4.0 # same scale as above
#cpu_tuple_cost = 0.01 # same scale as above
#cpu_index_tuple_cost = 0.005 # same scale as above
#cpu_operator_cost = 0.0025 # same scale as above
#parallel_tuple_cost = 0.1 # same scale as above
#parallel_setup_cost = 1000.0 # same scale as above

#jit_above_cost = 100000 # perform JIT compilation if available


# and query more expensive than this;
# -1 disables
#jit_inline_above_cost = 500000 # inline small functions if query is
# more expensive than this; -1 disables
#jit_optimize_above_cost = 500000 # use expensive JIT optimizations if
# query is more expensive than this;
# -1 disables

#min_parallel_table_scan_size = 8MB
#min_parallel_index_scan_size = 512kB
#effective_cache_size = 4GB

# - Genetic Query Optimizer -

#geqo = on
#geqo_threshold = 12
#geqo_effort = 5 # range 1-10
#geqo_pool_size = 0 # selects default based on effort
#geqo_generations = 0 # selects default based on effort
#geqo_selection_bias = 2.0 # range 1.5-2.0
#geqo_seed = 0.0 # range 0.0-1.0

# - Other Planner Options -

#default_statistics_target = 100 # range 1-10000


#constraint_exclusion = partition # on, off, or partition
#cursor_tuple_fraction = 0.1 # range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8 # 1 disables collapsing of explicit
# JOIN clauses
#force_parallel_mode = off
#jit = off # allow JIT compilation

#------------------------------------------------------------------------------
# REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'stderr' # Valid values are combinations of


# stderr, csvlog, syslog, and eventlog,
# depending on platform. csvlog
# requires logging_collector to be on.

# This is used when logging to stderr:


logging_collector = on # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = 'log' # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%a.log' # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600 # creation mode for log files,
# begin with 0 to use octal notation
log_truncate_on_rotation = on # If on, an existing log file with the
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation. Default is
# off, meaning append to existing files
# in all cases.
log_rotation_age = 1d # Automatic rotation of logfiles will
# happen after that time. 0 disables.
log_rotation_size = 0 # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.

# These are relevant when logging to syslog:


#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
#syslog_sequence_numbers = on
#syslog_split_messages = on

# This is only relevant when logging to eventlog (win32):


# (change requires restart)
#event_source = 'PostgreSQL'

# - When to Log -

#log_min_messages = warning # values in order of decreasing detail:


# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic

#log_min_error_statement = error # values in order of decreasing detail:


# debug5
# debug4
# debug3
# debug2
# debug1
# info
# notice
# warning
# error
# log
# fatal
# panic (effectively off)

#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements


# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds

# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '%m [%p] ' # special values:
# %a = application name
# %u = user name
# %d = database name
# %r = remote host and port
# %h = remote host
# %p = process ID
# %t = timestamp without milliseconds
# %m = timestamp with milliseconds
# %n = timestamp with milliseconds (as a
Unix epoch)
# %i = command tag
# %e = SQL state
# %c = session ID
# %l = session line number
# %s = session start timestamp
# %v = virtual transaction ID
# %x = transaction ID (0 if none)
# %q = stop here in non-session
# processes
# %% = '%'
# e.g. '<%u%%%d> '
#log_lock_waits = off # log lock waits >= deadlock_timeout
#log_statement = 'none' # none, ddl, mod, all
#log_replication_commands = off
#log_temp_files = -1 # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'America/Los_Angeles'

#------------------------------------------------------------------------------
# PROCESS TITLE
#------------------------------------------------------------------------------

#cluster_name = '' # added to process titles if nonempty


# (change requires restart)
#update_process_title = on
#------------------------------------------------------------------------------
# STATISTICS
#------------------------------------------------------------------------------

# - Query and Index Statistics Collector -

#track_activities = on
#track_counts = on
#track_io_timing = off
#track_functions = none # none, pl, all
#track_activity_query_size = 1024 # (change requires restart)
#stats_temp_directory = 'pg_stat_tmp'

# - Monitoring -

#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off

#------------------------------------------------------------------------------
# AUTOVACUUM
#------------------------------------------------------------------------------

#autovacuum = on # Enable autovacuum subprocess? 'on'


# requires track_counts to also be on.
#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_multixact_freeze_max_age = 400000000 # maximum multixact age
# before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit

#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------
# - Statement Behavior -

#client_min_messages = notice # values in order of decreasing detail:


# debug5
# debug4
# debug3
# debug2
# debug1
# log
# notice
# warning
# error
#search_path = '"$user", public' # schema names
#row_security = on
#default_tablespace = '' # a tablespace name, '' uses the default
#temp_tablespaces = '' # a list of tablespace names, '' uses
# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
#statement_timeout = 0 # in milliseconds, 0 is disabled
#lock_timeout = 0 # in milliseconds, 0 is disabled
#idle_in_transaction_session_timeout = 0 # in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#vacuum_multixact_freeze_min_age = 5000000
#vacuum_multixact_freeze_table_age = 150000000
#vacuum_cleanup_index_scale_factor = 0.1 # fraction of total number of
tuples
# before index cleanup, 0 always
performs
# index cleanup
#bytea_output = 'hex' # hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'
#gin_fuzzy_search_limit = 0
#gin_pending_list_limit = 4MB

# - Locale and Formatting -

datestyle = 'iso, mdy'


#intervalstyle = 'postgres'
timezone = 'America/Los_Angeles'
#timezone_abbreviations = 'Default' # Select the set of available time zone
# abbreviations. Currently, there are
# Default
# Australia (historical usage)
# India
# You can create your own file in
# share/timezonesets/.
#extra_float_digits = 0 # min -15, max 3
#client_encoding = sql_ascii # actually, defaults to database
# encoding

# These settings are initialized by initdb, but they can be changed.


lc_messages = 'en_US.UTF-8' # locale for system error message
# strings
lc_monetary = 'en_US.UTF-8' # locale for monetary formatting
lc_numeric = 'en_US.UTF-8' # locale for number formatting
lc_time = 'en_US.UTF-8' # locale for time formatting

# default configuration for text search


default_text_search_config = 'pg_catalog.english'

# - Shared Library Preloading -

#shared_preload_libraries = '' # (change requires restart)


#local_preload_libraries = ''
#session_preload_libraries = ''
#jit_provider = 'llvmjit' # JIT library to use

# - Other Defaults -

#dynamic_library_path = '$libdir'

#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------

#deadlock_timeout = 1s
#max_locks_per_transaction = 64 # min 10
# (change requires restart)
#max_pred_locks_per_transaction = 64 # min 10
# (change requires restart)
#max_pred_locks_per_relation = -2 # negative values mean
# (max_pred_locks_per_transaction
# / -max_pred_locks_per_relation) - 1
#max_pred_locks_per_page = 2 # min 0

#------------------------------------------------------------------------------
# VERSION AND PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------

# - Previous PostgreSQL Versions -

#array_nulls = on
#backslash_quote = safe_encoding # on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#lo_compat_privileges = off
#operator_precedence_warning = off
#quote_all_identifiers = off
#standard_conforming_strings = on
#synchronize_seqscans = on

# - Other Platforms and Clients -

#transform_null_equals = off

#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------
#exit_on_error = off # terminate session on any error?
#restart_after_crash = on # reinitialize after backend crash?
#data_sync_retry = off # retry or panic on failure to fsync
# data?
# (change requires restart)

#------------------------------------------------------------------------------
# CONFIG FILE INCLUDES
#------------------------------------------------------------------------------

# These options allow settings to be loaded from files other than the
# default postgresql.conf. Note that these are directives, not variable
# assignments, so they can usefully be given more than once.

#include_dir = '...' # include files ending in '.conf' from


# a directory, e.g., 'conf.d'
#include_if_exists = '...' # include file only if it exists
#include = '...' # include file

#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

# Add settings for extensions here


[postgres@localhost app03]$ vi postgresql.conf
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.

postgres=# show max_connections


postgres-# show max_connections;
ERROR: syntax error at or near "show"
LINE 2: show max_connections;
^
postgres=# \q
[postgres@localhost app03]$ more postgresql.conf | grep max_xonn
[postgres@localhost app03]$ more postgresql.conf | grep max_conn
max_connections = 10 # (change requires restart)
[postgres@localhost app03]$ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.

postgres=# show max_connections;


max_connections
-----------------
100
(1 row)

postgres=# exit
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.
postgres=# select pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)

postgres=# show max_connections;


max_connections
-----------------
100
(1 row)

postgres=# show work_mem;


work_mem
----------
4MB
(1 row)

postgres=# alter system set work_mem=10MB;


ERROR: syntax error at or near "MB"
LINE 1: alter system set work_mem=10MB;
^
postgres=# alter system set work_mem='10MB';
ALTER SYSTEM
postgres=# show work_mem;
work_mem
----------
4MB
(1 row)

postgres=# select pg_reload_conf();


pg_reload_conf
----------------
t
(1 row)

postgres=# show work_mem;


work_mem
----------
10MB
(1 row)

postgres=# \a
Output format is unaligned.
postgres=# \q
[postgres@localhost app03]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03
restart
waiting for server to shut down.... done
server stopped
waiting for server to start....postgres: superuser_reserved_connections (3) plus
max_wal_senders (10) must be less than max_connections (10)
stopped waiting
pg_ctl: could not start server
Examine the log output.
[postgres@localhost app03]$ vi postgresql.conf
[postgres@localhost app03]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03
restart
pg_ctl: PID file "/home/postgres/app03/postmaster.pid" does not exist
Is server running?
trying to start server anyway
waiting for server to start....2025-08-12 18:33:54.844 PDT [9519] LOG: listening
on IPv4 address "0.0.0.0", port 9999
2025-08-12 18:33:54.844 PDT [9519] LOG: listening on IPv6 address "::", port 9999
2025-08-12 18:33:54.845 PDT [9519] LOG: listening on Unix socket
"/var/run/postgresql/.s.PGSQL.9999"
2025-08-12 18:33:54.847 PDT [9519] LOG: listening on Unix socket
"/tmp/.s.PGSQL.9999"
2025-08-12 18:33:54.864 PDT [9519] LOG: redirecting log output to logging
collector process
2025-08-12 18:33:54.864 PDT [9519] HINT: Future log output will appear in
directory "log".
done
server started
[postgres@localhost app03]$ vi postgresql.conf
[postgres@localhost app03]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03
restart
waiting for server to shut down.... done
server stopped
waiting for server to start....postgres: superuser_reserved_connections (3) plus
max_wal_senders (10) must be less than max_connections (13)
stopped waiting
pg_ctl: could not start server
Examine the log output.
[postgres@localhost app03]$ vi postgresql.conf
[postgres@localhost app03]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03
restart
pg_ctl: PID file "/home/postgres/app03/postmaster.pid" does not exist
Is server running?
trying to start server anyway
waiting for server to start....2025-08-12 18:35:21.887 PDT [9587] LOG: listening
on IPv4 address "0.0.0.0", port 9999
2025-08-12 18:35:21.887 PDT [9587] LOG: listening on IPv6 address "::", port 9999
2025-08-12 18:35:21.888 PDT [9587] LOG: listening on Unix socket
"/var/run/postgresql/.s.PGSQL.9999"
2025-08-12 18:35:21.890 PDT [9587] LOG: listening on Unix socket
"/tmp/.s.PGSQL.9999"
2025-08-12 18:35:21.901 PDT [9587] LOG: redirecting log output to logging
collector process
2025-08-12 18:35:21.901 PDT [9587] HINT: Future log output will appear in
directory "log".
done
server started
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.

postgres=# show max_connections;


max_connections
-----------------
20
(1 row)

postgres=# exit
[postgres@localhost app03]$ more postgresql.conf | grep max_conn
max_connections = 20 # (change requires restart)
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.
postgres=# exit
[postgres@localhost app03]$ ls -ltr *.conf
-rw-------. 1 postgres postgres 1636 Jun 17 10:07 pg_ident.conf
-rw-------. 1 postgres postgres 4581 Jul 14 06:37 pg_hba.conf
-rw-------. 1 postgres postgres 152 Aug 12 18:31 postgresql.auto.conf
-rw-------. 1 postgres postgres 24008 Aug 12 18:35 postgresql.conf
[postgres@localhost app03]$ more postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
max_wal_size = '200MB'
log_checkpoints = 'on'
work_mem = '10MB'
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.

postgres=# show work_mem;


work_mem
----------
10MB
(1 row)

postgres=# alter system set work_mem='20MB';


ALTER SYSTEM
postgres=# show work_mem;
work_mem
----------
10MB
(1 row)

postgres=# exit
[postgres@localhost app03]$ more postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
max_wal_size = '200MB'
log_checkpoints = 'on'
work_mem = '20MB'
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.

postgres=# select pg_reload_conf();


pg_reload_conf
----------------
t
(1 row)

postgres=# show work_mem;


work_mem
----------
20MB
(1 row)

postgres=# \q
[postgres@localhost app03]$ more postgresql.conf | grep shared
shared_buffers = 128MB # min 128kB
dynamic_shared_memory_type = posix # the default is the first option
# use none to disable dynamic shared memory
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
#shared_preload_libraries = '' # (change requires restart)
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.

postgres=# show shared_buffers;


shared_buffers
----------------
128MB
(1 row)

postgres=# alter system set shared_buffers='200MB';


ALTER SYSTEM
postgres=# show shared_buffers;
shared_buffers
----------------
128MB
(1 row)

postgres=# select pg_reload_conf();


pg_reload_conf
----------------
t
(1 row)

postgres=# show shared_buffers;


shared_buffers
----------------
128MB
(1 row)

postgres=# exit
[postgres@localhost app03]$ more postgresql.conf | grep shared
shared_buffers = 128MB # min 128kB
dynamic_shared_memory_type = posix # the default is the first option
# use none to disable dynamic shared memory
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
#shared_preload_libraries = '' # (change requires restart)
[postgres@localhost app03]$ more postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
max_wal_size = '200MB'
log_checkpoints = 'on'
work_mem = '20MB'
shared_buffers = '200MB'
[postgres@localhost app03]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03
restart
waiting for server to shut down.... done
server stopped
waiting for server to start....2025-08-12 18:43:51.701 PDT [9842] LOG: listening
on IPv4 address "0.0.0.0", port 9999
2025-08-12 18:43:51.702 PDT [9842] LOG: listening on IPv6 address "::", port 9999
2025-08-12 18:43:51.704 PDT [9842] LOG: listening on Unix socket
"/var/run/postgresql/.s.PGSQL.9999"
2025-08-12 18:43:51.705 PDT [9842] LOG: listening on Unix socket
"/tmp/.s.PGSQL.9999"
2025-08-12 18:43:51.726 PDT [9842] LOG: redirecting log output to logging
collector process
2025-08-12 18:43:51.726 PDT [9842] HINT: Future log output will appear in
directory "log".
done
server started
[postgres@localhost app03]$ more postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
max_wal_size = '200MB'
log_checkpoints = 'on'
work_mem = '20MB'
shared_buffers = '200MB'
[postgres@localhost app03]$ more postgresql.conf | grep shared
shared_buffers = 128MB # min 128kB
dynamic_shared_memory_type = posix # the default is the first option
# use none to disable dynamic shared memory
#wal_buffers = -1 # min 32kB, -1 sets based on shared_buffers
#shared_preload_libraries = '' # (change requires restart)
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.

postgres=# show shared_buffers;


shared_buffers
----------------
200MB
(1 row)

postgres=# exit
[postgres@localhost app03]$ more pg_hba.conf
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file. A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: "local" is a Unix-domain
# socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
# plain TCP/IP socket.
#
# DATABASE can be "all", "sameuser", "samerole", "replication", a
# database name, or a comma-separated list thereof. The "all"
# keyword does not match "replication". Access to replication
# must be enabled in a separate record (see example below).
#
# USER can be "all", a user name, a group name prefixed with "+", or a
# comma-separated list thereof. In both the DATABASE and USER fields
# you can also write a file name prefixed with "@" to include names
# from a separate file.
#
# ADDRESS specifies the set of hosts the record matches. It can be a
# host name, or it is made up of an IP address and a CIDR mask that is
# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that
# specifies the number of significant bits in the mask. A host name
# that starts with a dot (.) matches a suffix of the actual host name.
# Alternatively, you can write an IP address and netmask in separate
# columns to specify the set of hosts. Instead of a CIDR-address, you
# can write "samehost" to match any of the server's own IP addresses,
# or "samenet" to match any address in any subnet that the server is
# directly connected to.
#
# METHOD can be "trust", "reject", "md5", "password", "scram-sha-256",
# "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert".
# Note that "password" sends passwords in clear text; "md5" or
# "scram-sha-256" are preferred since they send encrypted passwords.
#
# OPTIONS are a set of options for the authentication in the format
# NAME=VALUE. The available options depend on the different
# authentication methods -- refer to the "Client Authentication"
# section in the documentation for a list of which options are
# available for which authentication methods.
#
# Database and user names containing spaces, commas, quotes and other
# special characters must be quoted. Quoting one of the keywords
# "all", "sameuser", "samerole" or "replication" makes the name lose
# its special character, and just match a database or username with
# that name.
#
# This file is read on server startup and when the server receives a
# SIGHUP signal. If you edit the file on a running system, you have to
# SIGHUP the server for the changes to take effect, run "pg_ctl reload",
# or execute "SELECT pg_reload_conf()".
#
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.

# CAUTION: Configuring the system for local "trust" authentication


# allows any local user to connect as any PostgreSQL user, including
# the database superuser. If you do not trust all your local users,
# use another authentication method.

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only


local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
host all all 192.168.181.0/24 md5
[postgres@localhost app03]$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.181.147 netmask 255.255.255.0 broadcast 192.168.181.255
inet6 fe80::eccf:2f2e:da00:17d0 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:2d:76:c4 txqueuelen 1000 (Ethernet)
RX packets 3234 bytes 527970 (515.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1881 bytes 302228 (295.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536


inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 220 bytes 74300 (72.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 220 bytes 74300 (72.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500


inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:2a:77:1f txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[postgres@localhost app03]$ psql -p 9999


psql (11.7)
Type "help" for help.

postgres=# alter user postgres with password 'postgres';


ALTER ROLE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------
+-----------------------
ansar | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
ansar1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
ansar2 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
dvdrental | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
kkkkk | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
+
| | | | |
postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
+
| | | | |
postgres=CTc/postgres
test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(9 rows)
postgres=# exit
[postgres@localhost app03]$ more pg_hba.conf
# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file. A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: "local" is a Unix-domain
# socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
# plain TCP/IP socket.
#
# DATABASE can be "all", "sameuser", "samerole", "replication", a
# database name, or a comma-separated list thereof. The "all"
# keyword does not match "replication". Access to replication
# must be enabled in a separate record (see example below).
#
# USER can be "all", a user name, a group name prefixed with "+", or a
# comma-separated list thereof. In both the DATABASE and USER fields
# you can also write a file name prefixed with "@" to include names
# from a separate file.
#
# ADDRESS specifies the set of hosts the record matches. It can be a
# host name, or it is made up of an IP address and a CIDR mask that is
# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that
# specifies the number of significant bits in the mask. A host name
# that starts with a dot (.) matches a suffix of the actual host name.
# Alternatively, you can write an IP address and netmask in separate
# columns to specify the set of hosts. Instead of a CIDR-address, you
# can write "samehost" to match any of the server's own IP addresses,
# or "samenet" to match any address in any subnet that the server is
# directly connected to.
#
# METHOD can be "trust", "reject", "md5", "password", "scram-sha-256",
# "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert".
# Note that "password" sends passwords in clear text; "md5" or
# "scram-sha-256" are preferred since they send encrypted passwords.
#
# OPTIONS are a set of options for the authentication in the format
# NAME=VALUE. The available options depend on the different
# authentication methods -- refer to the "Client Authentication"
# section in the documentation for a list of which options are
# available for which authentication methods.
#
# Database and user names containing spaces, commas, quotes and other
# special characters must be quoted. Quoting one of the keywords
# "all", "sameuser", "samerole" or "replication" makes the name lose
# its special character, and just match a database or username with
# that name.
#
# This file is read on server startup and when the server receives a
# SIGHUP signal. If you edit the file on a running system, you have to
# SIGHUP the server for the changes to take effect, run "pg_ctl reload",
# or execute "SELECT pg_reload_conf()".
#
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.

# CAUTION: Configuring the system for local "trust" authentication


# allows any local user to connect as any PostgreSQL user, including
# the database superuser. If you do not trust all your local users,
# use another authentication method.

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only


local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
host all all 192.168.181.0/24 md5
[postgres@localhost app03]$ vi pg_hba.conf
[postgres@localhost app03]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03
reload
server signaled
[postgres@localhost app03]$ vi pg_hba.conf
[postgres@localhost app03]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03
reload
server signaled
[postgres@localhost app03]$ more postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
max_wal_size = '200MB'
log_checkpoints = 'on'
work_mem = '20MB'
shared_buffers = '200MB'
[postgres@localhost app03]$ vi postgresql.auto.conf
[postgres@localhost app03]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03
restart
waiting for server to shut down.... done
server stopped
waiting for server to start....2025-08-12 19:02:15.954 PDT [10410] LOG: listening
on IPv4 address "0.0.0.0", port 9999
2025-08-12 19:02:15.954 PDT [10410] LOG: listening on IPv6 address "::", port 9999
2025-08-12 19:02:15.955 PDT [10410] LOG: listening on Unix socket
"/var/run/postgresql/.s.PGSQL.9999"
2025-08-12 19:02:15.957 PDT [10410] LOG: listening on Unix socket
"/tmp/.s.PGSQL.9999"
2025-08-12 19:02:15.982 PDT [10410] LOG: redirecting log output to logging
collector process
2025-08-12 19:02:15.982 PDT [10410] HINT: Future log output will appear in
directory "log".
done
server started
[postgres@localhost app03]$ psql -p 9999
psql (11.7)
Type "help" for help.

postgres=# show shared_buffers;


shared_buffers
----------------
250MB
(1 row)

postgres=# exit
[postgres@localhost app03]$ id
uid=1005(postgres) gid=1005(postgres) groups=1005(postgres)
context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[postgres@localhost app03]$ more /etc/passwd | grep ansar
ansar:x:1007:1007::/home/ansar:/bin/bash
[postgres@localhost app03]$ more /etc/passwd | grep ansar1
[postgres@localhost app03]$ useradd ansar1
-bash: /usr/sbin/useradd: Permission denied
[postgres@localhost app03]$ exit
logout
[root@localhost ~]# useradd ansar1
[root@localhost ~]# more /etc/passwd | grep ansa*
ansar:x:1007:1007::/home/ansar:/bin/bash
ansar1:x:1008:1008::/home/ansar1:/bin/bash
[root@localhost ~]# su - postgres
Last login: Tue Aug 12 18:16:26 PDT 2025 on pts/1
[postgres@localhost ~]$ psql -p 9999
psql (11.7)
Type "help" for help.

postgres=# create user ansar1;


CREATE ROLE
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------
+-----------------------
abcd | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
abcde | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
ansar | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
ansar1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
ansar2 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
dvdrental | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
kkkkk | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
+
| | | | |
postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres
+
| | | | |
postgres=CTc/postgres
test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(11 rows)

postgres=# grant connect on database ansar1 to ansar1;


GRANT
postgres=# \q
[postgres@localhost ~]$ ps -ef | grep postgres
postgres 10410 1 0 19:02 pts/1 00:00:00 /usr/pgsql-11/bin/postgres -D
/home/postgres/app03
postgres 10411 10410 0 19:02 ? 00:00:00 postgres: logger
postgres 10413 10410 0 19:02 ? 00:00:00 postgres: checkpointer
postgres 10414 10410 0 19:02 ? 00:00:00 postgres: background writer
postgres 10415 10410 0 19:02 ? 00:00:00 postgres: walwriter
postgres 10416 10410 0 19:02 ? 00:00:00 postgres: autovacuum launcher
postgres 10417 10410 0 19:02 ? 00:00:00 postgres: stats collector
postgres 10418 10410 0 19:02 ? 00:00:00 postgres: logical replication
launcher
root 10637 8893 0 19:08 pts/1 00:00:00 su - postgres
postgres 10638 10637 0 19:08 pts/1 00:00:00 -bash
postgres 10765 10638 0 19:09 pts/1 00:00:00 ps -ef
postgres 10766 10638 0 19:09 pts/1 00:00:00 grep --color=auto postgres
[postgres@localhost ~]$ cd /home/postgres/app03
[postgres@localhost app03]$ vi pg_ident.conf
[postgres@localhost app03]$ vi pg_hba.conf
[postgres@localhost app03]$ /usr/pgsql-11/bin/pg_ctl -D /home/postgres/app03
reload
server signaled
[postgres@localhost app03]$

You might also like