Miscellaneous updates and minor copy-editing.

This commit is contained in:
Tom Lane 2001-03-24 00:24:26 +00:00
parent 3311e250cd
commit 27b5a8ef0f
1 changed files with 40 additions and 32 deletions

View File

@ -1,5 +1,5 @@
<!--
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.57 2001/03/16 05:44:33 tgl Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/runtime.sgml,v 1.58 2001/03/24 00:24:26 tgl Exp $
-->
<Chapter Id="runtime">
@ -165,7 +165,7 @@ NOTICE: Initializing database with en_US collation order.
</para>
<para>
This shells syntax can get tedious quickly. Therefore the shell
This shell syntax can get tedious quickly. Therefore the shell
script wrapper <application>pg_ctl</application> is provided that
encapsulates some of the tasks. E.g.,
<programlisting>
@ -266,10 +266,10 @@ su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgs
</para>
<para>
While the <application>postmaster</application> is running, it's
While the <application>postmaster</application> is running, its
PID is in the file <filename>postmaster.pid</filename> in the data
directory. This is used as in interlock against multiple running
postmaster on the same data directory and can also be used for
directory. This is used as an interlock against multiple postmasters
running in the same data directory, and can also be used for
shutting down the postmaster.
</para>
@ -364,8 +364,9 @@ IpcSemaphoreCreate: semget(key=5440026, num=16, 01600) failed: No space left on
<para>
<screen>
connectDB() -- connect() failed: Connection refused
Is the postmaster running (with -i) at 'server.joe.com' and accepting connections on TCP/IP port 5432?
PQconnectPoll() -- connect() failed: Connection refused
Is the postmaster running (with -i) at 'server.joe.com'
and accepting connections on TCP/IP port 5432?
</screen>
This is the generic <quote>I couldn't find a server to talk
to</quote> failure. It looks like the above when TCP/IP
@ -378,8 +379,9 @@ Is the postmaster running (with -i) at 'server.joe.com' and accepting connection
Alternatively, you'll get this when attempting
Unix-socket communication to a local postmaster:
<screen>
connectDB() -- connect() failed: No such file or directory
Is the postmaster running locally and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'?
connectDBstart() -- connect() failed: No such file or directory
Is the postmaster running locally
and accepting connections on Unix socket '/tmp/.s.PGSQL.5432'?
</screen>
</para>
@ -454,6 +456,8 @@ syslog = 2
postmaster -c log_connections=yes -c syslog=2
</programlisting>
which would have the same effect as the previous example.
Command-line options override any conflicting settings in
<filename>postgresql.conf</filename>.
</para>
<para>
@ -1066,7 +1070,9 @@ env PGOPTIONS='-c geqo=off' psql
that for a complex query, several sorts and/or hashes might be
running in parallel, and each one will be allowed to use as
much memory as this value specifies before it starts to put
data into temporary files.
data into temporary files. And don't forget that each running
backend could be doing one or more sorts. So the total memory
space needed could be many times the value of SORT_MEM.
</para>
</listitem>
</varlistentry>
@ -1396,7 +1402,7 @@ env PGOPTIONS='-c geqo=off' psql
not relevant for <productname>Postgres</>). Almost all modern
operating systems provide these features, but not all of them have
them turned on or sufficiently sized by default, especially
systems with BSD heritage. (For the QNX port,
systems with BSD heritage. (For the QNX and BeOS ports,
<productname>Postgres</> provides its own replacement
implementation of these facilities.)
</para>
@ -1510,7 +1516,7 @@ env PGOPTIONS='-c geqo=off' psql
estimate the required segment size as the number of buffers times
the block size (8192 kB by default) plus ample overhead (at least
half a megabyte). Any error message you might get will contain the
size of the failed allocation.
size of the failed allocation request.
</para>
<para>
@ -1533,7 +1539,7 @@ env PGOPTIONS='-c geqo=off' psql
is set by <varname>SEMMNS</>, which consequently must be at least
as high as the connection setting plus one extra for each 16
allowed connections (see the formula in <xref
linkend="sysvipc-parameters">. The parameter <varname>SEMMNI</>
linkend="sysvipc-parameters">). The parameter <varname>SEMMNI</>
determines the limit on the number of semaphore sets that can
exist on the system at one time. Hence this parameter must be at
least <literal>ceil(max_connections / 16)</>. Lowering the number
@ -1588,7 +1594,7 @@ env PGOPTIONS='-c geqo=off' psql
#define SHMALL /* max amount of shared memory (pages) */
</programlisting>
To increase the number of buffers supported by the postmaseter, add the
To increase the number of buffers supported by the postmaster, add the
following to your kernel config file. A <varname>SHMALL</> value of 1024
represents 4MB of shared memory. Increase it accordingly:
<programlisting>
@ -1621,9 +1627,8 @@ options "SYSPTSIZE=13"
<title>Semaphores</>
<para>
You may need to increase the number of semaphores. By
default, <productname>Postgres</> allocates 32 semaphores,
one for each backend connection. This is just over half the
default system total of 60.
default, <productname>Postgres</> allocates 34 semaphores,
which is over half the default system total of 60.
</para>
</formalpara>
@ -1845,7 +1850,7 @@ set semsys:seminfo_semmsl=32
counts but it can be changed by the user up to the hard limit.
The hard limit can only be changed by the root user. The system
call <function>setrlimit</function> is responsible for setting
these parameters. The shell the built-in command
these parameters. The shell's built-in command
<command>ulimit</command> (Bourne shells) or
<command>limit</command> (csh) is used to control the resource
limits from the command line. On BSD-derived systems the file
@ -1922,8 +1927,9 @@ default:\
<listitem>
<para>
After receiving SIGTERM, the postmaster disallows new
connections but lets active backend end their work and shuts
down only after all of them terminated (by client request).
connections, but lets existing backends end their work normally.
It shuts down only after all of the backends terminate by client
request.
This is the <firstterm>Smart Shutdown</firstterm>.
</para>
</listitem>
@ -1933,10 +1939,11 @@ default:\
<term>SIGINT</term>
<listitem>
<para>
The postmaster disallows new connections, sends all active
backends SIGTERM (which will cause them to abort immediately),
waits for children to exit and shuts down the data base. This
is the <firstterm>Fast Shutdown</firstterm>.
The postmaster disallows new connections and sends all existing
backends SIGTERM, which will cause them to abort their current
transactions and exit promptly. It then waits for the backends to exit
and finally shuts down the data base.
This is the <firstterm>Fast Shutdown</firstterm>.
</para>
</listitem>
</varlistentry>
@ -1948,8 +1955,9 @@ default:\
This is the <firstterm>Immediate Shutdown</firstterm> which
will cause the postmaster to send a SIGQUIT to all backends and
exit immediately (without properly shutting down the database
system). When WAL is implemented, this will lead to recovery on
start-up. Right now it's not recommendable to use this option.
system). The backends likewise exit immediately upon receiving
SIGQUIT. This will lead to recovery (by replaying the WAL log)
upon next start-up. This is recommended only in emergencies.
</para>
</listitem>
</varlistentry>
@ -1957,10 +1965,9 @@ default:\
<caution>
<para>
If at all possible, do not use SIGKILL to shut down the
postmaster. This can cause data corruption and will prevent the
cleaning up of shared memory resources, which you will have to
do yourself in that case.
It is best not to use SIGKILL to shut down the postmaster. This
will prevent the postmaster from releasing shared memory and
semaphores, which you may then have to do by hand.
</para>
</caution>
@ -1969,12 +1976,13 @@ default:\
<filename>postmaster.pid</filename> in the data directory. So for
example, to do a fast shutdown:
<screen>
&gt; <userinput>kill -INT `cat /usr/local/pgsql/data/postmaster.pid`</userinput>
&gt; <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput>
</screen>
</para>
<para>
The program <application>pg_ctl</application> is a shell script
wrapper that provides a convenient interface to these functions.
that provides a more convenient interface for shutting down the
postmaster.
</para>
</sect1>