|
|
|
|
The
postmaster
program is the multi-user PostgreSQL database server backend itself. This is the
process that your PostgreSQL clients actually connect to, where a connection to a
postgres
backend is
negotiated.
This binary is typically not called manually, but is indirectly executed through either the
pg_ctl
or SysV script discussed earlier in this section. However, these scripts at some point call
the
postmaster
binary directly, and it can be helpful in configuring your PostgreSQL system to know
what the
postmaster
is, and what it does.
The
postmaster
can only access one database cluster at a time, though you may have several
concurrent
postmaster
applications running on different ports with a different database cluster for
each.
Here is the syntax for the
postmaster
program:
postmaster [ -A { 0 | 1 } ] [ -B
buffers
] [ -c
name
=
value
] [ -d
debug_level
]
[ -D
datadir
] [ -F ] [ -h
hostname
] [ -i ] [ -k
directory
] [ -l ]
[ -N
max_connections
] [ -o
options
] [ -p
port
] [ -S ] [ -n | -s ]
The following are each of the parameters available to the
postmaster
program, as of PostgreSQL 7.1.x:
- -A { 0 | 1 }
-
The run-time assertion check flag. This enables debugging, if this option was enabled during compilation
of PostgreSQL. This flag should only be used by knowledgeable developers working on PostgreSQL itself.
- -B
buffers
-
The number of shared-memory disk buffers that
postmaster
will allocate for
use by the backend. By default, this is 64.
Note: The value passed to
-B
must be at least twice the number supplied for the
-N
parameter.
- -c
name
=
value
-
An arbitrary run-time configuration, setting
name
to
value
. Any
configuration settings found in the
postgresql.conf
file (within the database cluster's data
directory) may be over-ridden with this option.
- -d
debug_level
-
The debug level, which determines the amount of debugging output that will be logged by the backend. The
default is 0. The higher the number, the more output will be generated. Values as high as
4 are reasonable for normal use, though a value of 4 will quickly take up disk space if you are logging the debug output.
Note: Unless the standard output and standard error streams from
postmaster
are redirected
to a file (e.g., from the shell, or with the
-l
option to
pg_ctl
) all
debugging information will be displayed to the controlling terminal session of the
postmaster
process.
- -D
datadir
-
The data directory of the intended database cluster. If this is not supplied,
postmaster
will use either the value of the PGDATA
environment variable, or the
/data
path off of the path defined in the
POSTGRESHOME environment variable. If neither environment variable is set, the
default compile-time directory is used (e.g.,
/usr/local/pgsql/data
).
- -F
-
The fsync-disabling option. Using this increases performance, at the risk of
data corruption, in the event that the operating system or physical hardware crashes unexpectedly. Be sure you know
what you are doing before you use this flag!
- -h
host
-
The host address to listen on; by default, PostgreSQL's backends will listen on all configured addresses,
including
localhost
.
- -i
-
The TCP/IP client-connection flag, which allows connections via TCP/IP. If this option is not specified, the
backend will accept only local domain socket connections.
- -k
directory
-
The directory for the UNIX domain socket, which
postmaster
will listen on for local
connections. This defaults to
/tmp/
.
- -l
-
The SSL flag. Use this to enable SSL connections. The
-i
parameter must also be
given.
Note: You must have compiled PostgreSQL with SSL enabled to use the
-I
option.
- -N
max_connections
-
The maximum number of concurrent backend processes that
postmaster
can start. By
default, this value is set to 32. The maximum allowed number for this value is
1024. Make sure that your allocated
buffers
are configured for the
maximum number of concurrent backends (the
-B
parameter, which must be at least twice the
max_connections
value).
- -o
options
-
Any
options
that
postmaster
should send to the
postgres
backends when they are first started. These options are listed in Appendix B. Surround the
options
string with quotes, if more than
one option is passed.
- -p
port
-
The TCP/IP
port
number (or socket file extension) that this instance of
postmaster
should listen for connections on. If this is left unspecified, the default is taken from the
PGPORT environment variable, or the compile-time default (usually
5432).
- -S
-
The
silent mode
flag. This will cause PostgreSQL to disassociate from the user's
terminal session, start its own process group, and redirect its standard output and standard error to
/dev/null
.
Warning
|
Using the
-S
switch makes it very difficult to troubleshoot problems, since all tracing
and logging output that would normally be generated by the postmaster and its child backend processes will be
discarded.
|
The
postmaster
also accepts the following two debugging options, for interested developers:
- -n
-
The
-n
flag stops
postmaster
from re-initializing shared data
structures. A debugging tool can then be used to gain information about the memory's state at the time of the
crash.
- -s
-
The
-s
flag causes
postmaster
to use the
SIGSTOP
signal to stop backend processes, without terminating the processes.
Using this signal will keep the backend processes in memory instead of terminating them, which allows a developer
to collect a core dump from each backend process manually. Each core dump can then be individually examined for
debugging information.
|
|
|