| | man : postgres(1)
POSTGRES(1) PostgreSQL Server Applications POSTGRES(1)
NAME
postgres - run a PostgreSQL server in single-user mode
SYNOPSIS
postgres [ -A [ 0 ] [ 1 ] ] [ -B nbuffers ] [ -c
name=value ] [ -d debug-level ] [ --describe-config ] [
-D datadir ] [ -e ] [ -E ] [ -f [ s ] [ i ] [ t ] [
n ] [ m ] [ h ] ] [ -F ] [ -N ] [ -o filename ] [
-O ] [ -P ] [ [ -s ] [ -t [ pa ] [ pl ] [ ex ] ]
] [ -S work-mem ] [ -W seconds ] [ --name=value ]
database
postgres [ -A [ 0 ] [ 1 ] ] [ -B nbuffers ] [ -c
name=value ] [ -d debug-level ] [ -D datadir ] [ -e ]
[ -f [ s ] [ i ] [ t ] [ n ] [ m ] [ h ] ] [ -F ]
[ -o filename ] [ -O ] [ -p database ] [ -P ] [ [ -s
] [ -t [ pa ] [ pl ] [ ex ] ] ] [ -S work-mem ] [
-v protocol ] [ -W seconds ] [ --name=value ]
DESCRIPTION
The postgres executable is the actual PostgreSQL server
process that processes queries. It is normally not called
directly; instead a postmaster(1) multiuser server is
started.
The second form above is how postgres is invoked by the
postmaster(1) (only conceptually, since both postmaster
and postgres are in fact the same program); it should not
be invoked directly this way. The first form invokes the
server directly in interactive single-user mode. The pri-
mary use for this mode is during bootstrapping by
initdb(1). Sometimes it is used for debugging or disaster
recovery.
When invoked in interactive mode from the shell, the user
can enter queries and the results will be printed to the
screen, but in a form that is more useful for developers
than end users. But note that running a single-user server
is not truly suitable for debugging the server since no
realistic interprocess communication and locking will hap-
pen.
When running a stand-alone server, the session user will
be set to the user with ID 1. This user does not actually
have to exist, so a stand-alone server can be used to man-
ually recover from certain kinds of accidental damage to
the system catalogs. Implicit superuser powers are granted
to the user with ID 1 in stand-alone mode.
OPTIONS
When postgres is started by a postmaster(1) then it inher-
its all options set by the latter. Additionally, postgres-
specific options can be passed from the postmaster with
Application 2005-11-05 1
POSTGRES(1) PostgreSQL Server Applications POSTGRES(1)
the -o switch.
You can avoid having to type these options by setting up a
configuration file. See the documentation for details.
Some (safe) options can also be set from the connecting
client in an application-dependent way. For example, if
the environment variable PGOPTIONS is set, then libpq-
based clients will pass that string to the server, which
will interpret it as postgres command-line options.
GENERAL PURPOSE
The options -A, -B, -c, -d, -D, -F, and --name have the
same meanings as the postmaster(1) except that -d 0 pre-
vents the server log level of the postmaster from being
propagated to postgres.
-e Sets the default date style to ``European'', that
is DMY ordering of input date fields. This also
causes the day to be printed before the month in
certain date output formats. See the documentation
for more information.
-o filename
Send all server log output to filename. If post-
gres is running under the postmaster, this option
is ignored, and the stderr inherited from the post-
master is used.
-P Ignore system indexes when reading system tables
(but still update the indexes when modifying the
tables). This is useful when recovering from dam-
aged system indexes.
-s Print time information and other statistics at the
end of each command. This is useful for benchmark-
ing or for use in tuning the number of buffers.
-S work-mem
Specifies the amount of memory to be used by inter-
nal sorts and hashes before resorting to temporary
disk files. See the description of the work_mem
configuration parameter in the documentation.
OPTIONS FOR STAND-ALONE MODE
database
Specifies the name of the database to be accessed.
If it is omitted it defaults to the user name.
-E Echo all commands.
-N Disables use of newline as a statement delimiter.
SEMI-INTERNAL OPTIONS
There are several other options that may be specified,
Application 2005-11-05 2
POSTGRES(1) PostgreSQL Server Applications POSTGRES(1)
used mainly for debugging purposes. These are listed here
only for the use by PostgreSQL system developers. Use of
any of these options is highly discouraged. Furthermore,
any of these options may disappear or change in a future
release without notice.
-f { s | i | m | n | h }
Forbids the use of particular scan and join meth-
ods: s and i disable sequential and index scans
respectively, while n, m, and h disable nested-
loop, merge and hash joins respectively.
Note: Neither sequential scans nor nested-loop
joins can be disabled completely; the -fs and -fn
options simply discourage the optimizer from using
those plan types if it has any other alternative.
-O Allows the structure of system tables to be modi-
fied. This is used by initdb.
-p database
Indicates that this process has been started by a
postmaster and specifies the database to use. etc.
-t pa[rser] | pl[anner] | e[xecutor]
Print timing statistics for each query relating to
each of the major system modules. This option can-
not be used together with the -s option.
-v protocol
Specifies the version number of the frontend/back-
end protocol to be used for this particular ses-
sion.
-W seconds
As soon as this option is encountered, the process
sleeps for the specified amount of seconds. This
gives developers time to attach a debugger to the
server process.
--describe-config
This option dumps out the server's internal config-
uration variables, descriptions, and defaults in
tab-delimited COPY format. It is designed primar-
ily for use by administration tools.
ENVIRONMENT
PGDATA Default data directory location
For others, which have little influence during single-user
mode, see postmaster(1).
Application 2005-11-05 3
POSTGRES(1) PostgreSQL Server Applications POSTGRES(1)
NOTES
To cancel a running query, send the SIGINT signal to the
postgres process running that command.
To tell postgres to reload the configuration files, send a
SIGHUP signal. Normally it's best to SIGHUP the postmaster
instead; the postmaster will in turn SIGHUP each of its
children. But in some cases it might be desirable to have
only one postgres process reload the configuration files.
The postmaster uses SIGTERM to tell a postgres process to
quit normally and SIGQUIT to terminate without the normal
cleanup. These signals should not be used by users. It is
also unwise to send SIGKILL to a postgres process -- the
postmaster will interpret this as a crash in postgres, and
will force all the sibling postgres processes to quit as
part of its standard crash-recovery procedure.
USAGE
Start a stand-alone server with a command like
postgres -D /usr/local/pgsql/data other-options my_database
Provide the correct path to the database directory with
-D, or make sure that the environment variable PGDATA is
set. Also specify the name of the particular database you
want to work in.
Normally, the stand-alone server treats newline as the
command entry terminator; there is no intelligence about
semicolons, as there is in psql. To continue a command
across multiple lines, you must type backslash just before
each newline except the last one.
But if you use the -N command line switch, then newline
does not terminate command entry. In this case, the server
will read the standard input until the end-of-file (EOF)
marker, then process the input as a single command string.
Backslash-newline is not treated specially in this case.
To quit the session, type EOF (Control+D, usually). If
you've used -N, two consecutive EOFs are needed to exit.
Note that the stand-alone server does not provide sophis-
ticated line-editing features (no command history, for
example).
SEE ALSO
initdb(1), ipcclean(1), postmaster(1)
Application 2005-11-05 4
|