Merge postmaster and postgres command into just postgres. postmaster
symlink is kept for now for compatibility. To call single-user mode, use postgres --single.
This commit is contained in:
parent
44cb3ae7ef
commit
5266f221a2
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/arch-dev.sgml,v 2.26 2006/03/10 19:10:46 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/arch-dev.sgml,v 2.27 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="overview">
|
<chapter id="overview">
|
||||||
<title>Overview of PostgreSQL Internals</title>
|
<title>Overview of PostgreSQL Internals</title>
|
||||||
|
@ -124,13 +124,11 @@
|
||||||
know ahead of time how many connections will be made, we have to
|
know ahead of time how many connections will be made, we have to
|
||||||
use a <firstterm>master process</firstterm> that spawns a new
|
use a <firstterm>master process</firstterm> that spawns a new
|
||||||
server process every time a connection is requested. This master
|
server process every time a connection is requested. This master
|
||||||
process is called <literal>postmaster</literal> and listens at a
|
process is called <literal>postgres</literal> and listens at a
|
||||||
specified TCP/IP port for incoming connections. Whenever a request
|
specified TCP/IP port for incoming connections. Whenever a request
|
||||||
for a connection is detected the <literal>postmaster</literal>
|
for a connection is detected the <literal>postgres</literal>
|
||||||
process spawns a new server process called
|
process spawns a new server process. The server tasks
|
||||||
<literal>postgres</literal>. The server tasks
|
communicate with each other using <firstterm>semaphores</firstterm> and
|
||||||
(<literal>postgres</literal> processes) communicate with each
|
|
||||||
other using <firstterm>semaphores</firstterm> and
|
|
||||||
<firstterm>shared memory</firstterm> to ensure data integrity
|
<firstterm>shared memory</firstterm> to ensure data integrity
|
||||||
throughout concurrent data access.
|
throughout concurrent data access.
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.80 2006/04/23 03:39:48 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.81 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="backup">
|
<chapter id="backup">
|
||||||
<title>Backup and Restore</title>
|
<title>Backup and Restore</title>
|
||||||
|
@ -296,7 +296,7 @@ tar -cf backup.tar /usr/local/pgsql/data
|
||||||
(mainly because <command>tar</command> and similar tools do not take an
|
(mainly because <command>tar</command> and similar tools do not take an
|
||||||
atomic snapshot of the state of the file system at a point in
|
atomic snapshot of the state of the file system at a point in
|
||||||
time). Information about stopping the server can be found in
|
time). Information about stopping the server can be found in
|
||||||
<xref linkend="postmaster-shutdown">. Needless to say that you
|
<xref linkend="server-shutdown">. Needless to say that you
|
||||||
also need to shut down the server before restoring the data.
|
also need to shut down the server before restoring the data.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -778,7 +778,7 @@ SELECT pg_stop_backup();
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
It is also possible to make a backup dump while the postmaster is
|
It is also possible to make a backup dump while the server is
|
||||||
stopped. In this case, you obviously cannot use
|
stopped. In this case, you obviously cannot use
|
||||||
<function>pg_start_backup</> or <function>pg_stop_backup</>, and
|
<function>pg_start_backup</> or <function>pg_stop_backup</>, and
|
||||||
you will therefore be left to your own devices to keep track of which
|
you will therefore be left to your own devices to keep track of which
|
||||||
|
@ -796,7 +796,7 @@ SELECT pg_stop_backup();
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Stop the postmaster, if it's running.
|
Stop the server, if it's running.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -853,9 +853,9 @@ SELECT pg_stop_backup();
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Start the postmaster. The postmaster will go into recovery mode and
|
Start the server. The server will go into recovery mode and
|
||||||
proceed to read through the archived WAL files it needs. Upon completion
|
proceed to read through the archived WAL files it needs. Upon completion
|
||||||
of the recovery process, the postmaster will rename
|
of the recovery process, the server will rename
|
||||||
<filename>recovery.conf</> to <filename>recovery.done</> (to prevent
|
<filename>recovery.conf</> to <filename>recovery.done</> (to prevent
|
||||||
accidentally re-entering recovery mode in case of a crash later) and then
|
accidentally re-entering recovery mode in case of a crash later) and then
|
||||||
commence normal database operations.
|
commence normal database operations.
|
||||||
|
@ -1269,7 +1269,7 @@ mv /usr/local/pgsql /usr/local/pgsql.old
|
||||||
cd ~/postgresql-&version;
|
cd ~/postgresql-&version;
|
||||||
gmake install
|
gmake install
|
||||||
initdb -D /usr/local/pgsql/data
|
initdb -D /usr/local/pgsql/data
|
||||||
postmaster -D /usr/local/pgsql/data
|
postgres -D /usr/local/pgsql/data
|
||||||
psql -f backup postgres
|
psql -f backup postgres
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/client-auth.sgml,v 1.90 2006/06/16 15:16:16 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/client-auth.sgml,v 1.91 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="client-authentication">
|
<chapter id="client-authentication">
|
||||||
<title>Client Authentication</title>
|
<title>Client Authentication</title>
|
||||||
|
@ -436,10 +436,10 @@ hostnossl <replaceable>database</replaceable> <replaceable>user</replaceable>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The <filename>pg_hba.conf</filename> file is read on start-up and when
|
The <filename>pg_hba.conf</filename> file is read on start-up and when
|
||||||
the main server process (<command>postmaster</>) receives a
|
the main server process receives a
|
||||||
<systemitem>SIGHUP</systemitem><indexterm><primary>SIGHUP</primary></indexterm>
|
<systemitem>SIGHUP</systemitem><indexterm><primary>SIGHUP</primary></indexterm>
|
||||||
signal. If you edit the file on an
|
signal. If you edit the file on an
|
||||||
active system, you will need to signal the <command>postmaster</>
|
active system, you will need to signal the server
|
||||||
(using <literal>pg_ctl reload</> or <literal>kill -HUP</>) to make it
|
(using <literal>pg_ctl reload</> or <literal>kill -HUP</>) to make it
|
||||||
re-read the file.
|
re-read the file.
|
||||||
</para>
|
</para>
|
||||||
|
@ -866,10 +866,10 @@ local db1,db2,@demodbs all md5
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The <filename>pg_ident.conf</filename> file is read on start-up and
|
The <filename>pg_ident.conf</filename> file is read on start-up and
|
||||||
when the main server process (<command>postmaster</>) receives a
|
when the main server process receives a
|
||||||
<systemitem>SIGHUP</systemitem><indexterm><primary>SIGHUP</primary></indexterm>
|
<systemitem>SIGHUP</systemitem><indexterm><primary>SIGHUP</primary></indexterm>
|
||||||
signal. If you edit the file on an
|
signal. If you edit the file on an
|
||||||
active system, you will need to signal the <command>postmaster</>
|
active system, you will need to signal the server
|
||||||
(using <literal>pg_ctl reload</> or <literal>kill -HUP</>) to make it
|
(using <literal>pg_ctl reload</> or <literal>kill -HUP</>) to make it
|
||||||
re-read the file.
|
re-read the file.
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.64 2006/06/16 12:47:49 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.65 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter Id="runtime-config">
|
<chapter Id="runtime-config">
|
||||||
<title>Server Configuration</title>
|
<title>Server Configuration</title>
|
||||||
|
@ -69,10 +69,9 @@ include 'filename'
|
||||||
<indexterm>
|
<indexterm>
|
||||||
<primary>SIGHUP</primary>
|
<primary>SIGHUP</primary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
The configuration file is reread whenever the
|
The configuration file is reread whenever the main server process receives a
|
||||||
<command>postmaster</command> process receives a
|
|
||||||
<systemitem>SIGHUP</> signal (which is most easily sent by means
|
<systemitem>SIGHUP</> signal (which is most easily sent by means
|
||||||
of <literal>pg_ctl reload</>). The <command>postmaster</command>
|
of <literal>pg_ctl reload</>). The main server process
|
||||||
also propagates this signal to all currently running server
|
also propagates this signal to all currently running server
|
||||||
processes so that existing sessions also get the new
|
processes so that existing sessions also get the new
|
||||||
value. Alternatively, you can send the signal to a single server
|
value. Alternatively, you can send the signal to a single server
|
||||||
|
@ -83,9 +82,9 @@ include 'filename'
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
A second way to set these configuration parameters is to give them
|
A second way to set these configuration parameters is to give them
|
||||||
as a command line option to the <command>postmaster</command>, such as:
|
as a command-line option to the <command>postgres</command> command, such as:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
postmaster -c log_connections=yes -c log_destination='syslog'
|
postgres -c log_connections=yes -c log_destination='syslog'
|
||||||
</programlisting>
|
</programlisting>
|
||||||
Command-line options override any conflicting settings in
|
Command-line options override any conflicting settings in
|
||||||
<filename>postgresql.conf</filename>. Note that this means you won't
|
<filename>postgresql.conf</filename>. Note that this means you won't
|
||||||
|
@ -116,7 +115,7 @@ env PGOPTIONS='-c geqo=off' psql
|
||||||
and <xref linkend="sql-alterdatabase" endterm="sql-alterdatabase-title">,
|
and <xref linkend="sql-alterdatabase" endterm="sql-alterdatabase-title">,
|
||||||
respectively, are used to configure these settings. Per-database
|
respectively, are used to configure these settings. Per-database
|
||||||
settings override anything received from the
|
settings override anything received from the
|
||||||
<command>postmaster</command> command-line or the configuration
|
<command>postgres</command> command-line or the configuration
|
||||||
file, and in turn are overridden by per-user settings; both are
|
file, and in turn are overridden by per-user settings; both are
|
||||||
overridden by per-session settings.
|
overridden by per-session settings.
|
||||||
</para>
|
</para>
|
||||||
|
@ -192,7 +191,7 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||||
<para>
|
<para>
|
||||||
Specifies the main server configuration file
|
Specifies the main server configuration file
|
||||||
(customarily called <filename>postgresql.conf</>).
|
(customarily called <filename>postgresql.conf</>).
|
||||||
This parameter can only be set on the postmaster command line.
|
This parameter can only be set on the postgres command line.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -234,8 +233,7 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Specifies the name of an additional process-id (PID) file that the
|
Specifies the name of an additional process-id (PID) file that the
|
||||||
<application>postmaster</> should create for use by server
|
server should create for use by server administration programs.
|
||||||
administration programs.
|
|
||||||
This parameter can only be set at server start.
|
This parameter can only be set at server start.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -252,7 +250,7 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
If you wish to keep the configuration files elsewhere than the
|
If you wish to keep the configuration files elsewhere than the
|
||||||
data directory, the postmaster's <option>-D</option>
|
data directory, the postgres <option>-D</option>
|
||||||
command-line option or <envar>PGDATA</envar> environment variable
|
command-line option or <envar>PGDATA</envar> environment variable
|
||||||
must point to the directory containing the configuration files,
|
must point to the directory containing the configuration files,
|
||||||
and the <varname>data_directory</> parameter must be set in
|
and the <varname>data_directory</> parameter must be set in
|
||||||
|
@ -269,7 +267,7 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||||
individually using the parameters <varname>config_file</>,
|
individually using the parameters <varname>config_file</>,
|
||||||
<varname>hba_file</> and/or <varname>ident_file</>.
|
<varname>hba_file</> and/or <varname>ident_file</>.
|
||||||
<varname>config_file</> can only be specified on the
|
<varname>config_file</> can only be specified on the
|
||||||
<command>postmaster</command> command line, but the others can be
|
<command>postgres</command> command line, but the others can be
|
||||||
set within the main configuration file. If all three parameters plus
|
set within the main configuration file. If all three parameters plus
|
||||||
<varname>data_directory</> are explicitly set, then it is not necessary
|
<varname>data_directory</> are explicitly set, then it is not necessary
|
||||||
to specify <option>-D</option> or <envar>PGDATA</envar>.
|
to specify <option>-D</option> or <envar>PGDATA</envar>.
|
||||||
|
@ -277,7 +275,7 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
When setting any of these parameters, a relative path will be interpreted
|
When setting any of these parameters, a relative path will be interpreted
|
||||||
with respect to the directory in which the <command>postmaster</command>
|
with respect to the directory in which <command>postgres</command>
|
||||||
is started.
|
is started.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
@ -2679,7 +2677,7 @@ SELECT * FROM parent WHERE key = 2400;
|
||||||
below - anything else that looks like an escape is ignored. Other
|
below - anything else that looks like an escape is ignored. Other
|
||||||
characters are copied straight to the log line. Some escapes are
|
characters are copied straight to the log line. Some escapes are
|
||||||
only recognized by session processes, and do not apply to
|
only recognized by session processes, and do not apply to
|
||||||
background processes such as the postmaster. <application>Syslog</>
|
background processes such as the main server process. <application>Syslog</>
|
||||||
produces its own
|
produces its own
|
||||||
time stamp and process ID information, so you probably do not want to
|
time stamp and process ID information, so you probably do not want to
|
||||||
use those escapes if you are using <application>syslog</>.
|
use those escapes if you are using <application>syslog</>.
|
||||||
|
@ -3467,7 +3465,7 @@ SELECT * FROM parent WHERE key = 2400;
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Only superusers can change this setting, because it affects the
|
Only superusers can change this setting, because it affects the
|
||||||
messages sent to the postmaster log as well as to the client.
|
messages sent to the server log as well as to the client.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.167 2006/04/23 03:39:49 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.168 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="datatype">
|
<chapter id="datatype">
|
||||||
<title id="datatype-title">Data Types</title>
|
<title id="datatype-title">Data Types</title>
|
||||||
|
@ -2153,7 +2153,7 @@ January 8 04:05:06 1999 PST
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
If <varname>timezone</> is not specified in
|
If <varname>timezone</> is not specified in
|
||||||
<filename>postgresql.conf</> nor as a postmaster command-line switch,
|
<filename>postgresql.conf</> nor as a server command-line option,
|
||||||
the server attempts to use the value of the <envar>TZ</envar>
|
the server attempts to use the value of the <envar>TZ</envar>
|
||||||
environment variable as the default time zone. If <envar>TZ</envar>
|
environment variable as the default time zone. If <envar>TZ</envar>
|
||||||
is not defined or is not any of the time zone names known to
|
is not defined or is not any of the time zone names known to
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.321 2006/06/15 17:52:48 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.322 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="functions">
|
<chapter id="functions">
|
||||||
<title>Functions and Operators</title>
|
<title>Functions and Operators</title>
|
||||||
|
@ -8935,7 +8935,7 @@ select current_date + s.a as dates from generate_series(0,14,7) as s(a);
|
||||||
<row>
|
<row>
|
||||||
<entry><literal><function>pg_postmaster_start_time</function>()</literal></entry>
|
<entry><literal><function>pg_postmaster_start_time</function>()</literal></entry>
|
||||||
<entry><type>timestamp with time zone</type></entry>
|
<entry><type>timestamp with time zone</type></entry>
|
||||||
<entry><command>postmaster</> start time</entry>
|
<entry>server start time</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
|
@ -9044,7 +9044,7 @@ SET search_path TO <replaceable>schema</> <optional>, <replaceable>schema</>, ..
|
||||||
<para>
|
<para>
|
||||||
<function>pg_postmaster_start_time</function> returns the
|
<function>pg_postmaster_start_time</function> returns the
|
||||||
<type>timestamp with time zone</type> when the
|
<type>timestamp with time zone</type> when the
|
||||||
<command>postmaster</> started.
|
server started.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<indexterm zone="functions-info">
|
<indexterm zone="functions-info">
|
||||||
|
@ -9850,7 +9850,7 @@ SELECT set_config('log_statement_stats', 'off', false);
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<function>pg_reload_conf</> sends a <systemitem>SIGHUP</> signal
|
<function>pg_reload_conf</> sends a <systemitem>SIGHUP</> signal
|
||||||
to the <application>postmaster</>, causing the configuration files
|
to the server, causing the configuration files
|
||||||
to be reloaded by all server processes.
|
to be reloaded by all server processes.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.257 2006/06/16 15:16:16 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/installation.sgml,v 1.258 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="installation">
|
<chapter id="installation">
|
||||||
<title><![%standalone-include[<productname>PostgreSQL</>]]>
|
<title><![%standalone-include[<productname>PostgreSQL</>]]>
|
||||||
|
@ -33,7 +33,7 @@ mkdir /usr/local/pgsql/data
|
||||||
chown postgres /usr/local/pgsql/data
|
chown postgres /usr/local/pgsql/data
|
||||||
su - postgres
|
su - postgres
|
||||||
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
|
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
|
||||||
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
|
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
|
||||||
/usr/local/pgsql/bin/createdb test
|
/usr/local/pgsql/bin/createdb test
|
||||||
/usr/local/pgsql/bin/psql test
|
/usr/local/pgsql/bin/psql test
|
||||||
</synopsis>
|
</synopsis>
|
||||||
|
@ -463,7 +463,7 @@ su - postgres
|
||||||
(which you already have if you are upgrading).
|
(which you already have if you are upgrading).
|
||||||
<programlisting>
|
<programlisting>
|
||||||
<userinput>/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</>
|
<userinput>/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</>
|
||||||
<userinput>/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data</>
|
<userinput>/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data</>
|
||||||
</programlisting>
|
</programlisting>
|
||||||
Finally, restore your data with
|
Finally, restore your data with
|
||||||
<screen>
|
<screen>
|
||||||
|
@ -1638,12 +1638,12 @@ postgres$ <userinput>/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data</>
|
||||||
database server. Do so now. The command should look something
|
database server. Do so now. The command should look something
|
||||||
like
|
like
|
||||||
<programlisting>
|
<programlisting>
|
||||||
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
|
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
|
||||||
</programlisting>
|
</programlisting>
|
||||||
This will start the server in the foreground. To put the server
|
This will start the server in the foreground. To put the server
|
||||||
in the background use something like
|
in the background use something like
|
||||||
<programlisting>
|
<programlisting>
|
||||||
nohup /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data \
|
nohup /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data \
|
||||||
</dev/null >>server.log 2>&1 </dev/null &
|
</dev/null >>server.log 2>&1 </dev/null &
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
@ -1654,12 +1654,6 @@ nohup /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data \
|
||||||
kill `cat /usr/local/pgsql/data/postmaster.pid`
|
kill `cat /usr/local/pgsql/data/postmaster.pid`
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
|
||||||
In order to allow TCP/IP connections (rather than only Unix
|
|
||||||
domain socket ones) you need to pass the <option>-i</> option to
|
|
||||||
<filename>postmaster</>.
|
|
||||||
</para>
|
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.55 2006/04/23 03:39:52 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.56 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="maintenance">
|
<chapter id="maintenance">
|
||||||
<title>Routine Database Maintenance Tasks</title>
|
<title>Routine Database Maintenance Tasks</title>
|
||||||
|
@ -403,10 +403,10 @@ HINT: Stop the postmaster and use a standalone backend to VACUUM in "mydb".
|
||||||
administrator recover without data loss, by manually executing the
|
administrator recover without data loss, by manually executing the
|
||||||
required <command>VACUUM</> commands. However, since the system will not
|
required <command>VACUUM</> commands. However, since the system will not
|
||||||
execute commands once it has gone into the safety shutdown mode,
|
execute commands once it has gone into the safety shutdown mode,
|
||||||
the only way to do this is to stop the postmaster and use a standalone
|
the only way to do this is to stop the server and use a single-user
|
||||||
backend to execute <command>VACUUM</>. The shutdown mode is not enforced
|
backend to execute <command>VACUUM</>. The shutdown mode is not enforced
|
||||||
by a standalone backend. See the <xref linkend="app-postgres"> reference
|
by a single-user backend. See the <xref linkend="app-postgres"> reference
|
||||||
page for details about using a standalone backend.
|
page for details about using a single-user backend.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -628,17 +628,17 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
If you simply direct the <systemitem>stderr</> of the
|
If you simply direct the <systemitem>stderr</> of
|
||||||
<command>postmaster</command> into a
|
<command>postgres</command> into a
|
||||||
file, you will have log output, but
|
file, you will have log output, but
|
||||||
the only way to truncate the log file is to stop and restart
|
the only way to truncate the log file is to stop and restart
|
||||||
the <command>postmaster</command>. This may be OK if you are using
|
the server. This may be OK if you are using
|
||||||
<productname>PostgreSQL</productname> in a development environment,
|
<productname>PostgreSQL</productname> in a development environment,
|
||||||
but few production servers would find this behavior acceptable.
|
but few production servers would find this behavior acceptable.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
A better approach is to send the <command>postmaster</>'s
|
A better approach is to send the server's
|
||||||
<systemitem>stderr</> output to some type of log rotation program.
|
<systemitem>stderr</> output to some type of log rotation program.
|
||||||
There is a built-in log rotation program, which you can use by
|
There is a built-in log rotation program, which you can use by
|
||||||
setting the configuration parameter <literal>redirect_stderr</> to
|
setting the configuration parameter <literal>redirect_stderr</> to
|
||||||
|
@ -653,7 +653,7 @@ analyze threshold = analyze base threshold + analyze scale factor * number of tu
|
||||||
server software. For example, the <application>rotatelogs</application>
|
server software. For example, the <application>rotatelogs</application>
|
||||||
tool included in the <productname>Apache</productname> distribution
|
tool included in the <productname>Apache</productname> distribution
|
||||||
can be used with <productname>PostgreSQL</productname>. To do this,
|
can be used with <productname>PostgreSQL</productname>. To do this,
|
||||||
just pipe the <command>postmaster</>'s
|
just pipe the server's
|
||||||
<systemitem>stderr</> output to the desired program.
|
<systemitem>stderr</> output to the desired program.
|
||||||
If you start the server with
|
If you start the server with
|
||||||
<command>pg_ctl</>, then <systemitem>stderr</>
|
<command>pg_ctl</>, then <systemitem>stderr</>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/manage-ag.sgml,v 2.46 2006/05/04 16:07:28 tgl Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/manage-ag.sgml,v 2.47 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="managing-databases">
|
<chapter id="managing-databases">
|
||||||
<title>Managing Databases</title>
|
<title>Managing Databases</title>
|
||||||
|
@ -81,7 +81,7 @@ SELECT datname FROM pg_database;
|
||||||
<para>
|
<para>
|
||||||
In order to create a database, the <productname>PostgreSQL</>
|
In order to create a database, the <productname>PostgreSQL</>
|
||||||
server must be up and running (see <xref
|
server must be up and running (see <xref
|
||||||
linkend="postmaster-start">).
|
linkend="server-start">).
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -491,7 +491,7 @@ SELECT spcname FROM pg_tablespace;
|
||||||
point to each of the non-built-in tablespaces defined in the cluster.
|
point to each of the non-built-in tablespaces defined in the cluster.
|
||||||
Although not recommended, it is possible to adjust the tablespace
|
Although not recommended, it is possible to adjust the tablespace
|
||||||
layout by hand by redefining these links. Two warnings: do not do so
|
layout by hand by redefining these links. Two warnings: do not do so
|
||||||
while the postmaster is running; and after you restart the postmaster,
|
while the server is running; and after you restart the server,
|
||||||
update the <structname>pg_tablespace</> catalog to show the new
|
update the <structname>pg_tablespace</> catalog to show the new
|
||||||
locations. (If you do not, <literal>pg_dump</> will continue to show
|
locations. (If you do not, <literal>pg_dump</> will continue to show
|
||||||
the old tablespace locations.)
|
the old tablespace locations.)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/monitoring.sgml,v 1.32 2006/05/19 19:08:26 alvherre Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/monitoring.sgml,v 1.33 2006/06/18 15:38:35 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="monitoring">
|
<chapter id="monitoring">
|
||||||
<title>Monitoring Database Activity</title>
|
<title>Monitoring Database Activity</title>
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
$ ps auxww | grep ^postgres
|
$ ps auxww | grep ^postgres
|
||||||
postgres 960 0.0 1.1 6104 1480 pts/1 SN 13:17 0:00 postmaster -i
|
postgres 960 0.0 1.1 6104 1480 pts/1 SN 13:17 0:00 postgres -i
|
||||||
postgres 963 0.0 1.1 7084 1472 pts/1 SN 13:17 0:00 postgres: stats buffer process
|
postgres 963 0.0 1.1 7084 1472 pts/1 SN 13:17 0:00 postgres: stats buffer process
|
||||||
postgres 965 0.0 1.1 6152 1512 pts/1 SN 13:17 0:00 postgres: stats collector process
|
postgres 965 0.0 1.1 6152 1512 pts/1 SN 13:17 0:00 postgres: stats collector process
|
||||||
postgres 998 0.0 2.3 6532 2992 pts/1 SN 13:18 0:00 postgres: tgl runbug 127.0.0.1 idle
|
postgres 998 0.0 2.3 6532 2992 pts/1 SN 13:18 0:00 postgres: tgl runbug 127.0.0.1 idle
|
||||||
|
@ -60,7 +60,7 @@ postgres 1016 0.1 2.4 6532 3080 pts/1 SN 13:19 0:00 postgres: tgl reg
|
||||||
(The appropriate invocation of <command>ps</> varies across different
|
(The appropriate invocation of <command>ps</> varies across different
|
||||||
platforms, as do the details of what is shown. This example is from a
|
platforms, as do the details of what is shown. This example is from a
|
||||||
recent Linux system.) The first process listed here is the
|
recent Linux system.) The first process listed here is the
|
||||||
<application>postmaster</>, the master server process. The command arguments
|
the master server process. The command arguments
|
||||||
shown for it are the same ones given when it was launched. The next two
|
shown for it are the same ones given when it was launched. The next two
|
||||||
processes implement the statistics collector, which will be described in
|
processes implement the statistics collector, which will be described in
|
||||||
detail in the next section. (These will not be present if you have set
|
detail in the next section. (These will not be present if you have set
|
||||||
|
@ -89,10 +89,10 @@ postgres: <replaceable>user</> <replaceable>database</> <replaceable>host</> <re
|
||||||
use <command>/usr/ucb/ps</command>, rather than
|
use <command>/usr/ucb/ps</command>, rather than
|
||||||
<command>/bin/ps</command>. You also must use two <option>w</option>
|
<command>/bin/ps</command>. You also must use two <option>w</option>
|
||||||
flags, not just one. In addition, your original invocation of the
|
flags, not just one. In addition, your original invocation of the
|
||||||
<command>postmaster</command> command must have a shorter
|
<command>postgres</command> command must have a shorter
|
||||||
<command>ps</command> status display than that provided by each
|
<command>ps</command> status display than that provided by each
|
||||||
server process. If you fail to do all three things, the <command>ps</>
|
server process. If you fail to do all three things, the <command>ps</>
|
||||||
output for each server process will be the original <command>postmaster</>
|
output for each server process will be the original <command>postgres</>
|
||||||
command line.
|
command line.
|
||||||
</para>
|
</para>
|
||||||
</tip>
|
</tip>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/problems.sgml,v 2.25 2006/03/10 19:10:48 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/problems.sgml,v 2.26 2006/06/18 15:38:36 petere Exp $ -->
|
||||||
|
|
||||||
<sect1 id="bug-reporting">
|
<sect1 id="bug-reporting">
|
||||||
<title>Bug Reporting Guidelines</title>
|
<title>Bug Reporting Guidelines</title>
|
||||||
|
@ -223,7 +223,7 @@
|
||||||
<literal>SELECT version();</literal> to
|
<literal>SELECT version();</literal> to
|
||||||
find out the version of the server you are connected to. Most executable
|
find out the version of the server you are connected to. Most executable
|
||||||
programs also support a <option>--version</option> option; at least
|
programs also support a <option>--version</option> option; at least
|
||||||
<literal>postmaster --version</literal> and <literal>psql --version</literal>
|
<literal>postgres --version</literal> and <literal>psql --version</literal>
|
||||||
should work.
|
should work.
|
||||||
If the function or the options do not exist then your version is
|
If the function or the options do not exist then your version is
|
||||||
more than old enough to warrant an upgrade.
|
more than old enough to warrant an upgrade.
|
||||||
|
@ -283,7 +283,7 @@
|
||||||
are specifically talking about the backend server, mention that, do not
|
are specifically talking about the backend server, mention that, do not
|
||||||
just say <quote>PostgreSQL crashes</quote>. A crash of a single
|
just say <quote>PostgreSQL crashes</quote>. A crash of a single
|
||||||
backend server process is quite different from crash of the parent
|
backend server process is quite different from crash of the parent
|
||||||
<quote>postmaster</> process; please don't say <quote>the postmaster
|
<quote>postgres</> process; please don't say <quote>the server
|
||||||
crashed</> when you mean a single backend process went down, nor vice versa.
|
crashed</> when you mean a single backend process went down, nor vice versa.
|
||||||
Also, client programs such as the interactive frontend <quote><application>psql</application></quote>
|
Also, client programs such as the interactive frontend <quote><application>psql</application></quote>
|
||||||
are completely separate from the backend. Please try to be specific
|
are completely separate from the backend. Please try to be specific
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/protocol.sgml,v 1.64 2006/03/03 19:54:09 tgl Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/protocol.sgml,v 1.65 2006/06/18 15:38:36 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="protocol">
|
<chapter id="protocol">
|
||||||
<title>Frontend/Backend Protocol</title>
|
<title>Frontend/Backend Protocol</title>
|
||||||
|
@ -1044,7 +1044,7 @@
|
||||||
this case is effectively synchronous — but it is also possible
|
this case is effectively synchronous — but it is also possible
|
||||||
for parameter status changes to occur because the administrator
|
for parameter status changes to occur because the administrator
|
||||||
changed a configuration file and then sent the
|
changed a configuration file and then sent the
|
||||||
<systemitem>SIGHUP</systemitem> signal to the postmaster. Also,
|
<systemitem>SIGHUP</systemitem> signal to the server. Also,
|
||||||
if a <command>SET</command> command is rolled back, an appropriate
|
if a <command>SET</command> command is rolled back, an appropriate
|
||||||
ParameterStatus message will be generated to report the current
|
ParameterStatus message will be generated to report the current
|
||||||
effective value.
|
effective value.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_database.sgml,v 1.17 2005/10/13 22:44:51 tgl Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_database.sgml,v 1.18 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ ALTER DATABASE <replaceable class="PARAMETER">name</replaceable> OWNER TO <repla
|
||||||
database, the specified value becomes the session default value.
|
database, the specified value becomes the session default value.
|
||||||
The database-specific default overrides whatever setting is present
|
The database-specific default overrides whatever setting is present
|
||||||
in <filename>postgresql.conf</> or has been received from the
|
in <filename>postgresql.conf</> or has been received from the
|
||||||
<command>postmaster</command> command line. Only the database
|
<command>postgres</command> command line. Only the database
|
||||||
owner or a superuser can change the session defaults for a
|
owner or a superuser can change the session defaults for a
|
||||||
database. Certain variables cannot be set this way, or can only be
|
database. Certain variables cannot be set this way, or can only be
|
||||||
set by a superuser.
|
set by a superuser.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_role.sgml,v 1.5 2006/04/25 14:56:04 momjian Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_role.sgml,v 1.6 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ ALTER ROLE <replaceable class="PARAMETER">name</replaceable> RESET <replaceable>
|
||||||
a specified configuration variable. Whenever the role subsequently
|
a specified configuration variable. Whenever the role subsequently
|
||||||
starts a new session, the specified value becomes the session default,
|
starts a new session, the specified value becomes the session default,
|
||||||
overriding whatever setting is present in <filename>postgresql.conf</>
|
overriding whatever setting is present in <filename>postgresql.conf</>
|
||||||
or has been received from the <command>postmaster</command> command line.
|
or has been received from the <command>postgres</command> command line.
|
||||||
(For a role without <literal>LOGIN</> privilege, session defaults have
|
(For a role without <literal>LOGIN</> privilege, session defaults have
|
||||||
no effect.)
|
no effect.)
|
||||||
Ordinary roles can change their own session defaults.
|
Ordinary roles can change their own session defaults.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/initdb.sgml,v 1.35 2005/06/21 04:02:31 tgl Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/initdb.sgml,v 1.36 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ PostgreSQL documentation
|
||||||
<command>initdb</command>, but you can avoid writing it by
|
<command>initdb</command>, but you can avoid writing it by
|
||||||
setting the <envar>PGDATA</envar> environment variable, which
|
setting the <envar>PGDATA</envar> environment variable, which
|
||||||
can be convenient since the database server
|
can be convenient since the database server
|
||||||
(<command>postmaster</command>) can find the database
|
(<command>postgres</command>) can find the database
|
||||||
directory later by the same variable.
|
directory later by the same variable.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -287,7 +287,6 @@ PostgreSQL documentation
|
||||||
|
|
||||||
<simplelist type="inline">
|
<simplelist type="inline">
|
||||||
<member><xref linkend="app-postgres"></member>
|
<member><xref linkend="app-postgres"></member>
|
||||||
<member><xref linkend="app-postmaster"></member>
|
|
||||||
</simplelist>
|
</simplelist>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/ipcclean.sgml,v 1.11 2005/01/04 03:58:16 tgl Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/ipcclean.sgml,v 1.12 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ PostgreSQL documentation
|
||||||
semaphore sets owned by the current user. It is intended to be
|
semaphore sets owned by the current user. It is intended to be
|
||||||
used for cleaning up after a crashed
|
used for cleaning up after a crashed
|
||||||
<productname>PostgreSQL</productname> server (<xref
|
<productname>PostgreSQL</productname> server (<xref
|
||||||
linkend="app-postmaster">). Note that immediately restarting the
|
linkend="app-postgres">). Note that immediately restarting the
|
||||||
server will also clean up shared memory and semaphores, so this
|
server will also clean up shared memory and semaphores, so this
|
||||||
command is of little real utility.
|
command is of little real utility.
|
||||||
</para>
|
</para>
|
||||||
|
@ -53,7 +53,7 @@ PostgreSQL documentation
|
||||||
<para>
|
<para>
|
||||||
This script is a hack, but in the many years since it was written,
|
This script is a hack, but in the many years since it was written,
|
||||||
no one has come up with an equally effective and portable solution.
|
no one has come up with an equally effective and portable solution.
|
||||||
Since the <command>postmaster</command> can now clean up by
|
Since <command>postgres</command> can now clean up by
|
||||||
itself, it is unlikely that <command>ipcclean</command> will be
|
itself, it is unlikely that <command>ipcclean</command> will be
|
||||||
improved upon in the future.
|
improved upon in the future.
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.32 2005/11/04 23:14:02 petere Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.33 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ PostgreSQL documentation
|
||||||
<para>
|
<para>
|
||||||
<application>pg_ctl</application> is a utility for starting,
|
<application>pg_ctl</application> is a utility for starting,
|
||||||
stopping, or restarting the <productname>PostgreSQL</productname>
|
stopping, or restarting the <productname>PostgreSQL</productname>
|
||||||
backend server (<xref linkend="app-postmaster">), or displaying the
|
backend server (<xref linkend="app-postgres">), or displaying the
|
||||||
status of a running server. Although the server can be started
|
status of a running server. Although the server can be started
|
||||||
manually, <application>pg_ctl</application> encapsulates tasks such
|
manually, <application>pg_ctl</application> encapsulates tasks such
|
||||||
as redirecting log output and properly detaching from the terminal
|
as redirecting log output and properly detaching from the terminal
|
||||||
|
@ -109,7 +109,7 @@ PostgreSQL documentation
|
||||||
standard output (not standard error). If no log file is chosen, the
|
standard output (not standard error). If no log file is chosen, the
|
||||||
standard output of <application>pg_ctl</application> should be redirected
|
standard output of <application>pg_ctl</application> should be redirected
|
||||||
to a file or piped to another process such as a log rotating program
|
to a file or piped to another process such as a log rotating program
|
||||||
like <application>rotatelogs</>; otherwise the <command>postmaster</command>
|
like <application>rotatelogs</>; otherwise <command>postgres</command>
|
||||||
will write its output to the controlling terminal (from the background)
|
will write its output to the controlling terminal (from the background)
|
||||||
and will not leave the shell's process group.
|
and will not leave the shell's process group.
|
||||||
</para>
|
</para>
|
||||||
|
@ -129,13 +129,13 @@ PostgreSQL documentation
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<option>restart</option> mode effectively executes a stop followed
|
<option>restart</option> mode effectively executes a stop followed
|
||||||
by a start. This allows changing the <command>postmaster</command>
|
by a start. This allows changing the <command>postgres</command>
|
||||||
command-line options.
|
command-line options.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<option>reload</option> mode simply sends the
|
<option>reload</option> mode simply sends the
|
||||||
<command>postmaster</command> process a <systemitem>SIGHUP</>
|
<command>postgres</command> process a <systemitem>SIGHUP</>
|
||||||
signal, causing it to reread its configuration files
|
signal, causing it to reread its configuration files
|
||||||
(<filename>postgresql.conf</filename>,
|
(<filename>postgresql.conf</filename>,
|
||||||
<filename>pg_hba.conf</filename>, etc.). This allows changing of
|
<filename>pg_hba.conf</filename>, etc.). This allows changing of
|
||||||
|
@ -215,7 +215,7 @@ PostgreSQL documentation
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Specifies options to be passed directly to the
|
Specifies options to be passed directly to the
|
||||||
<command>postmaster</command> command.
|
<command>postgres</command> command.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The options are usually surrounded by single or double
|
The options are usually surrounded by single or double
|
||||||
|
@ -228,12 +228,12 @@ PostgreSQL documentation
|
||||||
<term><option>-p <replaceable class="parameter">path</replaceable></option></term>
|
<term><option>-p <replaceable class="parameter">path</replaceable></option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Specifies the location of the <filename>postmaster</filename>
|
Specifies the location of the <filename>postgres</filename>
|
||||||
executable. By default the <filename>postmaster</filename> executable is taken from the same
|
executable. By default the <filename>postgres</filename> executable is taken from the same
|
||||||
directory as <command>pg_ctl</command>, or failing that, the hard-wired
|
directory as <command>pg_ctl</command>, or failing that, the hard-wired
|
||||||
installation directory. It is not necessary to use this
|
installation directory. It is not necessary to use this
|
||||||
option unless you are doing something unusual and get errors
|
option unless you are doing something unusual and get errors
|
||||||
that the <filename>postmaster</filename> executable was not found.
|
that the <filename>postgres</filename> executable was not found.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -344,7 +344,7 @@ PostgreSQL documentation
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
For others, see <xref linkend="app-postmaster">.
|
For others, see <xref linkend="app-postgres">.
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
@ -373,7 +373,7 @@ PostgreSQL documentation
|
||||||
If this file exists in the data directory,
|
If this file exists in the data directory,
|
||||||
<application>pg_ctl</application> (in <option>start</option>
|
<application>pg_ctl</application> (in <option>start</option>
|
||||||
mode) will pass the contents of the file as options to the
|
mode) will pass the contents of the file as options to the
|
||||||
<command>postmaster</command> command, unless overridden by the
|
<command>postgres</command> command, unless overridden by the
|
||||||
<option>-o</option> option.
|
<option>-o</option> option.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -385,8 +385,8 @@ PostgreSQL documentation
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>If this file exists in the data directory,
|
<para>If this file exists in the data directory,
|
||||||
<application>pg_ctl</application> (in <option>restart</option> mode)
|
<application>pg_ctl</application> (in <option>restart</option> mode)
|
||||||
will pass the contents of the file as options to the
|
will pass the contents of the file as options to
|
||||||
<application>postmaster</application>, unless overridden
|
<application>postgres</application>, unless overridden
|
||||||
by the <option>-o</option> option. The contents of this file
|
by the <option>-o</option> option. The contents of this file
|
||||||
are also displayed in <option>status</option> mode.
|
are also displayed in <option>status</option> mode.
|
||||||
</para>
|
</para>
|
||||||
|
@ -500,9 +500,9 @@ PostgreSQL documentation
|
||||||
<screen>
|
<screen>
|
||||||
<prompt>$</prompt> <userinput>pg_ctl status</userinput>
|
<prompt>$</prompt> <userinput>pg_ctl status</userinput>
|
||||||
<computeroutput>
|
<computeroutput>
|
||||||
pg_ctl: postmaster is running (pid: 13718)
|
pg_ctl: server is running (pid: 13718)
|
||||||
Command line was:
|
Command line was:
|
||||||
/usr/local/pgsql/bin/postmaster '-D' '/usr/local/pgsql/data' '-p' '5433' '-B' '128'
|
/usr/local/pgsql/bin/postgres '-D' '/usr/local/pgsql/data' '-p' '5433' '-B' '128'
|
||||||
</computeroutput>
|
</computeroutput>
|
||||||
</screen>
|
</screen>
|
||||||
This is the command line that would be invoked in restart mode.
|
This is the command line that would be invoked in restart mode.
|
||||||
|
@ -515,7 +515,7 @@ Command line was:
|
||||||
<title>See Also</title>
|
<title>See Also</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<xref linkend="app-postmaster">
|
<xref linkend="app-postgres">
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_resetxlog.sgml,v 1.15 2006/06/03 02:19:24 momjian Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/pg_resetxlog.sgml,v 1.16 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -168,8 +168,7 @@ PostgreSQL documentation
|
||||||
server crashed then a lock file may have been left
|
server crashed then a lock file may have been left
|
||||||
behind; in that case you can remove the lock file to allow
|
behind; in that case you can remove the lock file to allow
|
||||||
<command>pg_resetxlog</command> to run. But before you do
|
<command>pg_resetxlog</command> to run. But before you do
|
||||||
so, make doubly certain that there
|
so, make doubly certain that there is no server process still alive.
|
||||||
is no <command>postmaster</command> nor any backend server process still alive.
|
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,28 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/postgres-ref.sgml,v 1.46 2006/01/05 10:07:44 petere Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/postgres-ref.sgml,v 1.47 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<refentry id="APP-POSTGRES">
|
<refentry id="app-postgres">
|
||||||
<refmeta>
|
<refmeta>
|
||||||
<refentrytitle id="APP-POSTGRES-TITLE"><application>postgres</application></refentrytitle>
|
<refentrytitle><application>postgres</application></refentrytitle>
|
||||||
<manvolnum>1</manvolnum>
|
<manvolnum>1</manvolnum>
|
||||||
<refmiscinfo>Application</refmiscinfo>
|
<refmiscinfo>Application</refmiscinfo>
|
||||||
</refmeta>
|
</refmeta>
|
||||||
|
|
||||||
<refnamediv>
|
<refnamediv>
|
||||||
<refname>postgres</refname>
|
<refname>postgres</refname>
|
||||||
<refpurpose>run a <productname>PostgreSQL</productname> server in single-user mode</refpurpose>
|
<refpurpose><productname>PostgreSQL</productname> database server</refpurpose>
|
||||||
</refnamediv>
|
</refnamediv>
|
||||||
|
|
||||||
<indexterm zone="app-postgres">
|
<indexterm zone="app-postgres">
|
||||||
<primary>postgres (the program)</primary>
|
<primary>postgres</primary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<refsynopsisdiv>
|
<refsynopsisdiv>
|
||||||
<cmdsynopsis>
|
<cmdsynopsis>
|
||||||
<command>postgres</command>
|
<command>postgres</command>
|
||||||
<arg rep="repeat"><replaceable>option</></arg>
|
<arg rep="repeat"><replaceable>option</></arg>
|
||||||
<arg choice="plain"><replaceable>database</replaceable></arg>
|
|
||||||
</cmdsynopsis>
|
</cmdsynopsis>
|
||||||
</refsynopsisdiv>
|
</refsynopsisdiv>
|
||||||
|
|
||||||
|
@ -31,85 +30,500 @@ PostgreSQL documentation
|
||||||
<title>Description</title>
|
<title>Description</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The <command>postgres</command> executable is the actual
|
<command>postgres</command> is the
|
||||||
<productname>PostgreSQL</productname> server process that processes
|
<productname>PostgreSQL</productname> database server. In order
|
||||||
SQL statements. It is normally not called directly; instead a
|
for a client application to access a database it connects (over a
|
||||||
<xref linkend="app-postmaster"> multiuser server is started.
|
network or locally) to a running <command>postgres</command> process.
|
||||||
Conceptually, the <command>postmaster</command> starts a new
|
The <command>postgres</command> instance then starts a separate server
|
||||||
<command>postgres</command> process for each connection.
|
process to handle the connection.
|
||||||
(<filename>postmaster</filename> and <filename>postgres</filename>
|
|
||||||
are in fact the same program, and on most platforms the connection
|
|
||||||
process is forked).
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
If the <command>postgres</command> command is called directly, it
|
One <command>postgres</command> instance always manages the data from
|
||||||
invokes the server in interactive single-user mode. The primary
|
exactly one database cluster. A database cluster is a collection
|
||||||
use for this mode is during bootstrapping by <xref
|
of databases that is stored at a common file system location (the
|
||||||
linkend="app-initdb">. Sometimes it is used for debugging or
|
<quote>data area</quote>). More than one
|
||||||
disaster recovery.
|
<command>postgres</command> process can run on a system at one
|
||||||
When invoked in interactive mode from the shell, the user can enter
|
time, so long as they use different data areas and different
|
||||||
queries and the results will be printed to the screen, but in a
|
communication ports (see below). When
|
||||||
form that is more useful for developers than end users. But note
|
<command>postgres</command> starts it needs to know the location
|
||||||
that running a single-user server is not truly suitable for
|
of the data area. The location must be specified by the
|
||||||
debugging the server since no realistic interprocess communication
|
<option>-D</option> option or the <envar>PGDATA</envar> environment
|
||||||
and locking will happen.
|
variable; there is no default. Typically, <option>-D</option> or
|
||||||
|
<envar>PGDATA</envar> points directly to the data area directory
|
||||||
|
created by <application>initdb</>. Other possible file layouts are
|
||||||
|
discussed in <xref linkend="runtime-config-file-locations">. A
|
||||||
|
data area is created with <xref linkend="app-initdb">.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
When running a stand-alone server, the session user will be set to
|
By default <command>postgres</command> starts in the
|
||||||
the user with ID 1. This user does not actually have to exist, so
|
foreground and prints log messages to the standard error stream. In
|
||||||
a stand-alone server can be used to manually recover from certain
|
practical applications the <command>postgres</command>
|
||||||
|
should be started as a background process, perhaps at boot time.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <command>postgres</command> command can also be called in
|
||||||
|
single-user mode. The primary use for this mode is during
|
||||||
|
bootstrapping by <xref linkend="app-initdb">. 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 happen. 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 manually recover from certain
|
||||||
kinds of accidental damage to the system catalogs. Implicit
|
kinds of accidental damage to the system catalogs. Implicit
|
||||||
superuser powers are granted to the user with ID 1 in stand-alone
|
superuser powers are granted to the user with ID 1 in single-user
|
||||||
mode.
|
mode.
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1 id="app-postgres-options">
|
||||||
<title>Options</title>
|
<title>Options</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
When <command>postgres</command> is started by a <xref
|
<command>postgres</command> accepts the following command-line
|
||||||
linkend="app-postmaster"> then it inherits all options set by the
|
arguments. For a detailed discussion of the options consult <xref
|
||||||
latter. In single-user mode, <command>postgres</command> accepts
|
linkend="runtime-config">. You can save typing most of these
|
||||||
all the options that <command>postmaster</command> would accept.
|
options by setting up a configuration file. Some (safe) options
|
||||||
</para>
|
can also be set from the connecting client in an
|
||||||
|
application-dependent way to apply only for that session. For
|
||||||
<para>
|
example, if the environment variable <envar>PGOPTIONS</envar> is
|
||||||
You can avoid having to type these options by setting up a
|
set, then <application>libpq</>-based clients will pass that
|
||||||
configuration file. See <xref linkend="runtime-config"> for details. Some
|
string to the server, which will interpret it as
|
||||||
(safe) options can also be set from the connecting client in an
|
|
||||||
application-dependent way. For example, if the environment
|
|
||||||
variable <envar>PGOPTIONS</envar> is set, then
|
|
||||||
<application>libpq</>-based clients will pass that string to the
|
|
||||||
server, which will interpret it as
|
|
||||||
<command>postgres</command> command-line options.
|
<command>postgres</command> command-line options.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<refsect2>
|
<refsect2>
|
||||||
<title>General Purpose</title>
|
<title>General Purpose</title>
|
||||||
|
|
||||||
<para>
|
<variablelist>
|
||||||
The options <option>-A</option>, <option>-B</option>,
|
<varlistentry>
|
||||||
<option>-c</option>, <option>-d</option>, <option>-D</option>,
|
<term><option>-A 0|1</option></term>
|
||||||
<option>-e</option>, <option>-F</option>, <option>-s</option>,
|
<listitem>
|
||||||
<option>-S</option>, and <option>--<replaceable>name</></option>
|
<para>
|
||||||
have the same meanings as with the <xref linkend="app-postmaster">
|
Enables run-time assertion checks, which is a debugging aid to
|
||||||
except that <literal>-d 0</> prevents the server log level of the
|
detect programming mistakes. This option is only available if
|
||||||
<command>postmaster</> from being propagated to
|
assertions were enabled when <productname>PostgreSQL</> was
|
||||||
<command>postgres</>. Other <command>postmaster</command>
|
compiled. If so, the default is on.
|
||||||
options are also accepted but will have no noticeable effect
|
</para>
|
||||||
because they only apply to the multiuser server mode, namely
|
</listitem>
|
||||||
<option>-h</option>, <option>-i</option>, <option>-k</option>,
|
</varlistentry>
|
||||||
<option>-l</option>, and <option>-n</option>.
|
|
||||||
</para>
|
<varlistentry>
|
||||||
|
<term><option>-B <replaceable class="parameter">nbuffers</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sets the number of shared buffers for use by the server
|
||||||
|
processes. The default value of this parameter is chosen
|
||||||
|
automatically by <application>initdb</application>; refer to <xref
|
||||||
|
linkend="runtime-config-resource-memory"> for more information.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-c <replaceable>name</replaceable>=<replaceable>value</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sets a named run-time parameter. The configuration parameters
|
||||||
|
supported by <productname>PostgreSQL</productname> are
|
||||||
|
described in <xref linkend="runtime-config">. Most of the
|
||||||
|
other command line options are in fact short forms of such a
|
||||||
|
parameter assignment. <option>-c</> can appear multiple times
|
||||||
|
to set multiple parameters.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-d <replaceable>debug-level</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sets the debug level. The higher this value is set, the more
|
||||||
|
debugging output is written to the server log. Values are
|
||||||
|
from 1 to 5. It is also possible to pass <literal>-d
|
||||||
|
0</literal> for a specific session, which will prevent the
|
||||||
|
server log level of the <command>postgres</> from being
|
||||||
|
propagated to this session.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-D <replaceable class="parameter">datadir</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Specifies the file system location of the data directory or
|
||||||
|
configuration file(s). See
|
||||||
|
<xref linkend="runtime-config-file-locations"> for details.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-e</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sets the default date style to <quote>European</quote>, that is
|
||||||
|
<literal>DMY</> ordering of input date fields. This also causes
|
||||||
|
the day to be printed before the month in certain date output formats.
|
||||||
|
See <xref linkend="datatype-datetime"> for more information.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-F</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Disables <function>fsync</function> calls for improved
|
||||||
|
performance, at the risk of data corruption in the event of a
|
||||||
|
system crash. Specifying this option is equivalent to
|
||||||
|
disabling the <xref linkend="guc-fsync"> configuration
|
||||||
|
parameter. Read the detailed documentation before using this!
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<option>--fsync=true</option> has the opposite effect
|
||||||
|
of this option.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-h <replaceable class="parameter">hostname</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Specifies the IP host name or address on which
|
||||||
|
<command>postgres</command> is to listen for TCP/IP
|
||||||
|
connections from client applications. The value can also be a
|
||||||
|
comma-separated list of addresses, or <literal>*</> to specify
|
||||||
|
listening on all available interfaces. An empty value
|
||||||
|
specifies not listening on any IP addresses, in which case
|
||||||
|
only Unix-domain sockets can be used to connect to the
|
||||||
|
<command>postgres</command>. Defaults to listening only on
|
||||||
|
<systemitem class="systemname">localhost</systemitem>.
|
||||||
|
Specifying this option is equivalent to setting the <xref
|
||||||
|
linkend="guc-listen-addresses"> configuration parameter.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-i</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allows remote clients to connect via TCP/IP (Internet domain)
|
||||||
|
connections. Without this option, only local connections are
|
||||||
|
accepted. This option is equivalent to setting
|
||||||
|
<varname>listen_addresses</> to <literal>*</> in
|
||||||
|
<filename>postgresql.conf</> or via <option>-h</>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
This option is deprecated since it does not allow access to the
|
||||||
|
full functionality of <xref linkend="guc-listen-addresses">.
|
||||||
|
It's usually better to set <varname>listen_addresses</> directly.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-k <replaceable class="parameter">directory</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Specifies the directory of the Unix-domain socket on which
|
||||||
|
<command>postgres</command> is to listen for
|
||||||
|
connections from client applications. The default is normally
|
||||||
|
<filename>/tmp</filename>, but can be changed at build time.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-l</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Enables secure connections using <acronym>SSL</acronym>.
|
||||||
|
<productname>PostgreSQL</productname> must have been compiled with
|
||||||
|
support for <acronym>SSL</acronym> for this option to be
|
||||||
|
available. For more information on using <acronym>SSL</acronym>,
|
||||||
|
refer to <xref linkend="ssl-tcp">.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-N <replaceable class="parameter">max-connections</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sets the maximum number of client connections that this
|
||||||
|
<command>postgres</command> will accept. By
|
||||||
|
default, this value is 32, but it can be set as high as your
|
||||||
|
system will support. (Note that
|
||||||
|
<option>-B</option> is required to be at least twice
|
||||||
|
<option>-N</option>. See <xref linkend="kernel-resources"> for a discussion of
|
||||||
|
system resource requirements for large numbers of client
|
||||||
|
connections.) Specifying this option is equivalent to setting the
|
||||||
|
<xref linkend="guc-max-connections"> configuration parameter.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-o <replaceable class="parameter">extra-options</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The command line-style options specified in <replaceable
|
||||||
|
class="parameter">extra-options</replaceable> are passed to
|
||||||
|
all server processes started by this
|
||||||
|
<command>postgres</command>. If the option string contains
|
||||||
|
any spaces, the entire string must be quoted.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The use of this option is obsolete; all command-line options
|
||||||
|
for server processes can be specified directly on the
|
||||||
|
<command>postgres</command> command line
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-p <replaceable class="parameter">port</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Specifies the TCP/IP port or local Unix domain socket file
|
||||||
|
extension on which <command>postgres</command>
|
||||||
|
is to listen for connections from client applications.
|
||||||
|
Defaults to the value of the <envar>PGPORT</envar> environment
|
||||||
|
variable, or if <envar>PGPORT</envar> is not set, then
|
||||||
|
defaults to the value established during compilation (normally
|
||||||
|
5432). If you specify a port other than the default port,
|
||||||
|
then all client applications must specify the same port using
|
||||||
|
either command-line options or <envar>PGPORT</envar>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-s</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Print time information and other statistics at the end of each command.
|
||||||
|
This is useful for benchmarking or for use in tuning the number of
|
||||||
|
buffers.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-S</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Specifies that the <command>postgres</command>
|
||||||
|
process should start up in silent mode. That is, it will
|
||||||
|
disassociate from the user's (controlling) terminal, start its
|
||||||
|
own process group, and redirect its standard output and
|
||||||
|
standard error to <filename>/dev/null</filename>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Using this switch discards all logging output, which is
|
||||||
|
probably not what you want, since it makes it very difficult
|
||||||
|
to troubleshoot problems. See below for a better way to start
|
||||||
|
<command>postgres</command> in the background.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<option>--silent-mode=false</option> has the opposite effect
|
||||||
|
of this option.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>--<replaceable>name</replaceable>=<replaceable>value</replaceable></option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sets a named run-time parameter; a shorter form of
|
||||||
|
<option>-c</>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>--describe-config</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This option dumps out the server's internal configuration variables,
|
||||||
|
descriptions, and defaults in tab-delimited <command>COPY</> format.
|
||||||
|
It is designed primarily for use by administration tools.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
</refsect2>
|
</refsect2>
|
||||||
|
|
||||||
<refsect2>
|
<refsect2>
|
||||||
<title>Options for stand-alone mode</title>
|
<title>Semi-internal Options</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
There are several other options that may be specified, used
|
||||||
|
mainly for debugging purposes and in some cases to assist with
|
||||||
|
recovery of severely damaged databases. There should be no reason
|
||||||
|
to use them in a production database setup. These are listed
|
||||||
|
here only for the use by <productname>PostgreSQL</productname>
|
||||||
|
system developers. Furthermore, any of these options may
|
||||||
|
disappear or change in a future release without notice.
|
||||||
|
</para>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-f</option> <literal>{ s | i | m | n | h }</literal></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Forbids the use of particular scan and join methods:
|
||||||
|
<literal>s</literal> and <literal>i</literal>
|
||||||
|
disable sequential and index scans respectively, while
|
||||||
|
<literal>n</literal>, <literal>m</literal>, and <literal>h</literal>
|
||||||
|
disable nested-loop, merge and hash joins respectively.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Neither sequential scans nor nested-loop joins can be disabled
|
||||||
|
completely; the <literal>-fs</literal> and
|
||||||
|
<literal>-fn</literal> options simply discourage the optimizer
|
||||||
|
from using those plan types if it has any other alternative.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-n</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This option is for debugging problems that cause a server
|
||||||
|
process to die abnormally. The ordinary strategy in this
|
||||||
|
situation is to notify all other server processes that they
|
||||||
|
must terminate and then reinitialize the shared memory and
|
||||||
|
semaphores. This is because an errant server process could
|
||||||
|
have corrupted some shared state before terminating. This
|
||||||
|
option specifies that <command>postgres</command> will
|
||||||
|
not reinitialize shared data structures. A knowledgeable
|
||||||
|
system programmer can then use a debugger to examine shared
|
||||||
|
memory and semaphore state.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-O</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Allows the structure of system tables to be modified. This is
|
||||||
|
used by <command>initdb</command>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-P</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Ignore system indexes when reading system tables (but still update
|
||||||
|
the indexes when modifying the tables). This is useful when
|
||||||
|
recovering from damaged system indexes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-t</option> <literal>pa[rser] | pl[anner] | e[xecutor]</literal></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Print timing statistics for each query relating to each of the
|
||||||
|
major system modules. This option cannot be used together
|
||||||
|
with the <option>-s</option> option.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-T</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
This option is for debugging problems that cause a server
|
||||||
|
process to die abnormally. The ordinary strategy in this
|
||||||
|
situation is to notify all other server processes that they
|
||||||
|
must terminate and then reinitialize the shared memory and
|
||||||
|
semaphores. This is because an errant server process could
|
||||||
|
have corrupted some shared state before terminating. This
|
||||||
|
option specifies that <command>postgres</command> will
|
||||||
|
stop all other server processes by sending the signal
|
||||||
|
<literal>SIGSTOP</literal>, but will not cause them to
|
||||||
|
terminate. This permits system programmers to collect core
|
||||||
|
dumps from all server processes by hand.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-v</option> <replaceable class="parameter">protocol</replaceable></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Specifies the version number of the frontend/backend protocol
|
||||||
|
to be used for a particular session. This option is for
|
||||||
|
internal use only.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-W</option> <replaceable class="parameter">seconds</replaceable></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
A delay of this many seconds occurs when a new server process
|
||||||
|
is started, after it conducts the authentication procedure.
|
||||||
|
This is intended to give an opportunity to attach to the
|
||||||
|
server process with a debugger.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>-y</option> <replaceable class="parameter">database</replaceable></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Indicates that this is a subprocess started by
|
||||||
|
<command>postgres</command> and specifies the database to
|
||||||
|
use. This option is for internal use only.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
|
</refsect2>
|
||||||
|
|
||||||
|
<refsect2>
|
||||||
|
<title>Options for single-user mode</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The following options only apply to the single-user mode.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>--single</option></term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Selects the single-user mode. This must be the first argument
|
||||||
|
on the command line.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><replaceable class="parameter">database</replaceable></term>
|
<term><replaceable class="parameter">database</replaceable></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -142,69 +556,33 @@ PostgreSQL documentation
|
||||||
<term><option>-r</option> <replaceable class="parameter">filename</replaceable></term>
|
<term><option>-r</option> <replaceable class="parameter">filename</replaceable></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Send all server log output to
|
Send all server log output to <replaceable
|
||||||
<replaceable class="parameter">filename</replaceable>.
|
class="parameter">filename</replaceable>. In normal multiuser
|
||||||
If <command>postgres</command> is running under the
|
mode, this option is ignored, and <systemitem>stderr</> is
|
||||||
<command>postmaster</command>, this option is ignored,
|
used by all processes.
|
||||||
and the <systemitem>stderr</> inherited from the
|
|
||||||
<command>postmaster</command> is used.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</refsect2>
|
</refsect2>
|
||||||
|
|
||||||
<refsect2>
|
|
||||||
<title>Semi-internal Options</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The options <option>-f</option>, <option>-O</option>,
|
|
||||||
<option>-P</option>, <option>-t</option>, and <option>-W</option>
|
|
||||||
have the same meanings as with the <xref
|
|
||||||
linkend="app-postmaster"> and are reserved for debugging and
|
|
||||||
disaster recovery. Further options for internal use are:
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-v</option> <replaceable class="parameter">protocol</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Specifies the version number of the frontend/backend protocol
|
|
||||||
to be used for this particular session.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-y</option> <replaceable class="parameter">database</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Indicates that this process has been started by a
|
|
||||||
<command>postmaster</command> and specifies the database to use.
|
|
||||||
etc.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>--describe-config</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
This option dumps out the server's internal configuration variables,
|
|
||||||
descriptions, and defaults in tab-delimited <command>COPY</> format.
|
|
||||||
It is designed primarily for use by administration tools.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</para>
|
|
||||||
</refsect2>
|
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Environment</title>
|
<title>Environment</title>
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term><envar>PGCLIENTENCODING</envar></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Default character encoding used by clients. (The clients may
|
||||||
|
override this individually.) This value can also be set in the
|
||||||
|
configuration file.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><envar>PGDATA</envar></term>
|
<term><envar>PGDATA</envar></term>
|
||||||
|
|
||||||
|
@ -214,47 +592,154 @@ PostgreSQL documentation
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><envar>PGDATESTYLE</envar></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Default value of the <xref linkend="guc-datestyle"> run-time
|
||||||
|
parameter. (The use of this environment variable is deprecated.)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><envar>PGPORT</envar></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Default port (preferably set in the configuration file)
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><envar>TZ</envar></term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Server time zone
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Diagnostics</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A failure message mentioning <literal>semget</> or
|
||||||
|
<literal>shmget</> probably indicates you need to configure your
|
||||||
|
kernel to provide adequate shared memory and semaphores. For more
|
||||||
|
discussion see <xref linkend="kernel-resources">. You may be able
|
||||||
|
to postpone reconfiguring your kernel by decreasing <xref
|
||||||
|
linkend="guc-shared-buffers"> to reduce the shared memory
|
||||||
|
consumption of <productname>PostgreSQL</>, and/or by reducing
|
||||||
|
<xref linkend="guc-max-connections"> to reduce the semaphore
|
||||||
|
consumption.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A failure message suggesting that another server is already running
|
||||||
|
should be checked carefully, for example by using the command
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>ps ax | grep postgres</userinput>
|
||||||
|
</screen>
|
||||||
|
or
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>ps -ef | grep postgres</userinput>
|
||||||
|
</screen>
|
||||||
|
depending on your system. If you are certain that no conflicting
|
||||||
|
server is running, you may remove the lock file mentioned in the
|
||||||
|
message and try again.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A failure message indicating inability to bind to a port may
|
||||||
|
indicate that that port is already in use by some
|
||||||
|
non-<productname>PostgreSQL</productname> process. You may also
|
||||||
|
get this error if you terminate <command>postgres</command>
|
||||||
|
and immediately restart it using the same port; in this case, you
|
||||||
|
must simply wait a few seconds until the operating system closes
|
||||||
|
the port before trying again. Finally, you may get this error if
|
||||||
|
you specify a port number that your operating system considers to
|
||||||
|
be reserved. For example, many versions of Unix consider port
|
||||||
|
numbers under 1024 to be <quote>trusted</quote> and only permit
|
||||||
|
the Unix superuser to access them.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Notes</title>
|
<title>Notes</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If at all possible, <emphasis>do not</emphasis> use
|
||||||
|
<literal>SIGKILL</literal> to kill the main
|
||||||
|
<command>postgres</command> server. Doing so will prevent
|
||||||
|
<command>postgres</command> from freeing the system
|
||||||
|
resources (e.g., shared memory and semaphores) that it holds before
|
||||||
|
terminating. This may cause problems for starting a fresh
|
||||||
|
<command>postgres</command> run.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To terminate the <command>postgres</command> server normally, the
|
||||||
|
signals <literal>SIGTERM</literal>, <literal>SIGINT</literal>, or
|
||||||
|
<literal>SIGQUIT</literal> can be used. The first will wait for
|
||||||
|
all clients to terminate before quitting, the second will
|
||||||
|
forcefully disconnect all clients, and the third will quit
|
||||||
|
immediately without proper shutdown, resulting in a recovery run
|
||||||
|
during restart. The <literal>SIGHUP</literal> signal will reload
|
||||||
|
the server configuration files. It is also possible to send
|
||||||
|
<literal>SIGHUP</literal> to an individual server process, but that
|
||||||
|
is usually not sensible.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The utility command <xref linkend="app-pg-ctl"> can be used to
|
||||||
|
start and shut down the <command>postgres</command> server
|
||||||
|
safely and comfortably.
|
||||||
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To cancel a running query, send the <literal>SIGINT</literal> signal
|
To cancel a running query, send the <literal>SIGINT</literal> signal
|
||||||
to the <command>postgres</command> process running that command.
|
to the process running that command.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
To tell <command>postgres</command> to reload the configuration files,
|
The <command>postgres</command> server uses <literal>SIGTERM</literal>
|
||||||
send a <literal>SIGHUP</literal> signal. Normally it's best to
|
to tell subordinate server processes to quit normally and
|
||||||
<literal>SIGHUP</literal> the <command>postmaster</command> instead;
|
|
||||||
the <command>postmaster</command> will in turn <literal>SIGHUP</literal>
|
|
||||||
each of its children. But in some cases it might be desirable to have only
|
|
||||||
one <command>postgres</command> process reload the configuration files.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The <command>postmaster</command> uses <literal>SIGTERM</literal>
|
|
||||||
to tell a <command>postgres</command> process to quit normally and
|
|
||||||
<literal>SIGQUIT</literal> to terminate without the normal cleanup.
|
<literal>SIGQUIT</literal> to terminate without the normal cleanup.
|
||||||
These signals <emphasis>should not</emphasis> be used by users. It is also
|
These signals <emphasis>should not</emphasis> be used by users. It
|
||||||
unwise to send <literal>SIGKILL</literal> to a <command>postgres</command>
|
is also unwise to send <literal>SIGKILL</literal> to a server
|
||||||
process — the <command>postmaster</command> will interpret this as
|
process — the main <command>postgres</command> process will
|
||||||
a crash in <command>postgres</command>, and will force all the sibling
|
interpret this as a crash and will force all the sibling processes
|
||||||
<command>postgres</command> processes to quit as part of its standard
|
to quit as part of its standard crash-recovery procedure.
|
||||||
crash-recovery procedure.
|
|
||||||
</para>
|
</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1 id="app-postgres-bugs">
|
||||||
|
<title>Bugs</title>
|
||||||
|
<para>
|
||||||
|
The <option>--</> options will not work on <systemitem
|
||||||
|
class="osname">FreeBSD</> or <systemitem class="osname">OpenBSD</>.
|
||||||
|
Use <option>-c</> instead. This is a bug in the affected operating
|
||||||
|
systems; a future release of <productname>PostgreSQL</productname>
|
||||||
|
will provide a workaround if this is not fixed.
|
||||||
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Usage</title>
|
<title>Usage</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Start a stand-alone server with a command like
|
To start a single-user mode server, use a command like
|
||||||
<screen>
|
<screen>
|
||||||
<userinput>postgres -D /usr/local/pgsql/data <replaceable>other-options</> my_database</userinput>
|
<userinput>postgres --single -D /usr/local/pgsql/data <replaceable>other-options</> my_database</userinput>
|
||||||
</screen>
|
</screen>
|
||||||
Provide the correct path to the database directory with <option>-D</>, or
|
Provide the correct path to the database directory with <option>-D</>, or
|
||||||
make sure that the environment variable <envar>PGDATA</> is set.
|
make sure that the environment variable <envar>PGDATA</> is set.
|
||||||
|
@ -262,7 +747,7 @@ PostgreSQL documentation
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Normally, the stand-alone server treats newline as the command
|
Normally, the single-user mode server treats newline as the command
|
||||||
entry terminator; there is no intelligence about semicolons,
|
entry terminator; there is no intelligence about semicolons,
|
||||||
as there is in <application>psql</>. To continue a command
|
as there is in <application>psql</>. To continue a command
|
||||||
across multiple lines, you must type backslash just before each
|
across multiple lines, you must type backslash just before each
|
||||||
|
@ -285,10 +770,57 @@ PostgreSQL documentation
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Note that the stand-alone server does not provide sophisticated
|
Note that the single-user mode server does not provide sophisticated
|
||||||
line-editing features (no command history, for example).
|
line-editing features (no command history, for example).
|
||||||
</para>
|
</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1 id="app-postgres-examples">
|
||||||
|
<title>Examples</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To start <command>postgres</command> in the background
|
||||||
|
using default values, type:
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>nohup postgres >logfile 2>&1 </dev/null &</userinput>
|
||||||
|
</screen>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To start <command>postgres</command> with a specific
|
||||||
|
port:
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>postgres -p 1234</userinput>
|
||||||
|
</screen>
|
||||||
|
This command will start up <command>postgres</command>
|
||||||
|
communicating through the port 1234. In order to connect to this
|
||||||
|
<command>postgres</command> using <application>psql</>, you would need to
|
||||||
|
run it as
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>psql -p 1234</userinput>
|
||||||
|
</screen>
|
||||||
|
or set the environment variable <envar>PGPORT</envar>:
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>export PGPORT=1234</userinput>
|
||||||
|
<prompt>$</prompt> <userinput>psql</userinput>
|
||||||
|
</screen>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Named run-time parameters can be set in either of these styles:
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>postgres -c work_mem=1234</userinput>
|
||||||
|
<prompt>$</prompt> <userinput>postgres --work-mem=1234</userinput>
|
||||||
|
</screen>
|
||||||
|
Either form overrides whatever setting might exist for
|
||||||
|
<varname>work_mem</> in <filename>postgresql.conf</>. Notice that
|
||||||
|
underscores in parameter names can be written as either underscore
|
||||||
|
or dash on the command line. Except for short-term experiments,
|
||||||
|
it's probably better practice to edit the setting in
|
||||||
|
<filename>postgresql.conf</> than to rely on a command-line switch
|
||||||
|
to set a parameter.
|
||||||
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
|
@ -296,26 +828,7 @@ PostgreSQL documentation
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<xref linkend="app-initdb">,
|
<xref linkend="app-initdb">,
|
||||||
<xref linkend="app-ipcclean">,
|
<xref linkend="app-pg-ctl">
|
||||||
<xref linkend="app-postmaster">
|
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
</refentry>
|
</refentry>
|
||||||
|
|
||||||
<!-- Keep this comment at the end of the file
|
|
||||||
Local variables:
|
|
||||||
mode: sgml
|
|
||||||
sgml-omittag:nil
|
|
||||||
sgml-shorttag:t
|
|
||||||
sgml-minimize-attributes:nil
|
|
||||||
sgml-always-quote-attributes:t
|
|
||||||
sgml-indent-step:1
|
|
||||||
sgml-indent-data:t
|
|
||||||
sgml-parent-document:nil
|
|
||||||
sgml-default-dtd-file:"../reference.ced"
|
|
||||||
sgml-exposed-tags:nil
|
|
||||||
sgml-local-catalogs:"/usr/lib/sgml/catalog"
|
|
||||||
sgml-local-ecat-files:nil
|
|
||||||
End:
|
|
||||||
-->
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.56 2006/01/06 01:35:09 tgl Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.57 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ PostgreSQL documentation
|
||||||
|
|
||||||
<refnamediv>
|
<refnamediv>
|
||||||
<refname id="postmaster-ref">postmaster</refname>
|
<refname id="postmaster-ref">postmaster</refname>
|
||||||
<refpurpose><productname>PostgreSQL</productname> multiuser database server</refpurpose>
|
<refpurpose><productname>PostgreSQL</productname> database server</refpurpose>
|
||||||
</refnamediv>
|
</refnamediv>
|
||||||
|
|
||||||
<indexterm zone="app-postmaster">
|
<indexterm zone="app-postmaster">
|
||||||
|
@ -30,659 +30,15 @@ PostgreSQL documentation
|
||||||
<title>Description</title>
|
<title>Description</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<command>postmaster</command> is the
|
<command>postmaster</command> is a deprecated alias of <command>postgres</command>.
|
||||||
<productname>PostgreSQL</productname> multiuser database server.
|
|
||||||
In order for a client application to access a database it connects
|
|
||||||
(over a network or locally) to a running
|
|
||||||
<command>postmaster</command>. The
|
|
||||||
<command>postmaster</command> then starts a separate server
|
|
||||||
process (<quote><xref linkend="app-postgres"></quote>) to handle
|
|
||||||
the connection. The <command>postmaster</command> also
|
|
||||||
manages the communication among server processes.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
|
||||||
By default the <command>postmaster</command> starts in the
|
|
||||||
foreground and prints log messages to the standard error stream. In
|
|
||||||
practical applications the <command>postmaster</command>
|
|
||||||
should be started as a background process, perhaps at boot time.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
One <command>postmaster</command> always manages the data
|
|
||||||
from exactly one database cluster. A database cluster is a
|
|
||||||
collection of databases that is stored at a common file system
|
|
||||||
location (the <quote>data area</quote>).
|
|
||||||
More than one <command>postmaster</command> process can run on a system
|
|
||||||
at one time, so long as they use different data areas and different
|
|
||||||
communication ports (see below).
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
When the <command>postmaster</command> starts it needs
|
|
||||||
to know the location of the data area.
|
|
||||||
The location must be specified by the <option>-D</option> option
|
|
||||||
or the <envar>PGDATA</envar> environment variable; there is no default.
|
|
||||||
Typically, <option>-D</option> or <envar>PGDATA</envar> points
|
|
||||||
directly to the data area directory created by <application>initdb</>.
|
|
||||||
Other possible file layouts are discussed in
|
|
||||||
<xref linkend="runtime-config-file-locations">.
|
|
||||||
A data area is created with <xref linkend="app-initdb">.
|
|
||||||
</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1 id="app-postmaster-options">
|
|
||||||
<title>Options</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<command>postmaster</command> accepts the following
|
|
||||||
command line arguments. For a detailed discussion of the options
|
|
||||||
consult <xref linkend="runtime-config">. You can save typing most of these
|
|
||||||
options by setting up a configuration file.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<refsect2>
|
|
||||||
<title>General Purpose</title>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-A 0|1</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Enables run-time assertion checks, which is a debugging aid to
|
|
||||||
detect programming mistakes. This option is only available if
|
|
||||||
assertions were enabled when <productname>PostgreSQL</> was
|
|
||||||
compiled. If so, the default is on.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-B <replaceable class="parameter">nbuffers</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Sets the number of shared buffers for use by the server
|
|
||||||
processes. The default value of this parameter is chosen
|
|
||||||
automatically by <application>initdb</application>; refer to <xref
|
|
||||||
linkend="runtime-config-resource-memory"> for more information.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-c <replaceable>name</replaceable>=<replaceable>value</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Sets a named run-time parameter. The configuration parameters
|
|
||||||
supported by <productname>PostgreSQL</productname> are
|
|
||||||
described in <xref linkend="runtime-config">. Most of the
|
|
||||||
other command line options are in fact short forms of such a
|
|
||||||
parameter assignment. <option>-c</> can appear multiple times
|
|
||||||
to set multiple parameters.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-d <replaceable>debug-level</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Sets the debug level. The higher this value is set, the more
|
|
||||||
debugging output is written to the server log. Values are from
|
|
||||||
1 to 5.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-D <replaceable class="parameter">datadir</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Specifies the file system location of the data directory or
|
|
||||||
configuration file(s). See
|
|
||||||
<xref linkend="runtime-config-file-locations"> for details.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-e</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Sets the default date style to <quote>European</quote>, that is
|
|
||||||
<literal>DMY</> ordering of input date fields. This also causes
|
|
||||||
the day to be printed before the month in certain date output formats.
|
|
||||||
See <xref linkend="datatype-datetime"> for more information.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-F</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Disables <function>fsync</function> calls for improved
|
|
||||||
performance, at the risk of data corruption in the event of a
|
|
||||||
system crash. Specifying this option is equivalent to
|
|
||||||
disabling the <xref linkend="guc-fsync"> configuration
|
|
||||||
parameter. Read the detailed documentation before using this!
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<option>--fsync=true</option> has the opposite effect
|
|
||||||
of this option.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-h <replaceable class="parameter">hostname</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Specifies the IP host name or address on which the
|
|
||||||
<command>postmaster</command> is to listen for TCP/IP
|
|
||||||
connections from client applications. The value can also be a
|
|
||||||
comma-separated list of addresses, or <literal>*</> to specify
|
|
||||||
listening on all available interfaces. An empty value
|
|
||||||
specifies not listening on any IP addresses, in which case
|
|
||||||
only Unix-domain sockets can be used to connect to the
|
|
||||||
<command>postmaster</command>. Defaults to listening only on
|
|
||||||
<systemitem class="systemname">localhost</systemitem>.
|
|
||||||
Specifying this option is equivalent to setting the <xref
|
|
||||||
linkend="guc-listen-addresses"> configuration parameter.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-i</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Allows remote clients to connect via TCP/IP (Internet domain)
|
|
||||||
connections. Without this option, only local connections are
|
|
||||||
accepted. This option is equivalent to setting
|
|
||||||
<varname>listen_addresses</> to <literal>*</> in
|
|
||||||
<filename>postgresql.conf</> or via <option>-h</>.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
This option is deprecated since it does not allow access to the
|
|
||||||
full functionality of <xref linkend="guc-listen-addresses">.
|
|
||||||
It's usually better to set <varname>listen_addresses</> directly.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-k <replaceable class="parameter">directory</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Specifies the directory of the Unix-domain socket on which the
|
|
||||||
<command>postmaster</command> is to listen for
|
|
||||||
connections from client applications. The default is normally
|
|
||||||
<filename>/tmp</filename>, but can be changed at build time.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-l</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Enables secure connections using <acronym>SSL</acronym>.
|
|
||||||
<productname>PostgreSQL</productname> must have been compiled with
|
|
||||||
support for <acronym>SSL</acronym> for this option to be
|
|
||||||
available. For more information on using <acronym>SSL</acronym>,
|
|
||||||
refer to <xref linkend="ssl-tcp">.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-N <replaceable class="parameter">max-connections</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Sets the maximum number of client connections that this
|
|
||||||
<command>postmaster</command> will accept. By
|
|
||||||
default, this value is 32, but it can be set as high as your
|
|
||||||
system will support. (Note that
|
|
||||||
<option>-B</option> is required to be at least twice
|
|
||||||
<option>-N</option>. See <xref linkend="kernel-resources"> for a discussion of
|
|
||||||
system resource requirements for large numbers of client
|
|
||||||
connections.) Specifying this option is equivalent to setting the
|
|
||||||
<xref linkend="guc-max-connections"> configuration parameter.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-o <replaceable class="parameter">extra-options</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
The command line-style options specified in <replaceable
|
|
||||||
class="parameter">extra-options</replaceable> are passed to
|
|
||||||
all server processes started by this
|
|
||||||
<command>postmaster</command>. See <xref
|
|
||||||
linkend="app-postgres"> for possibilities. If the option
|
|
||||||
string contains any spaces, the entire string must be quoted.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The use of this option is obsolete; all command-line options
|
|
||||||
for server processes can be specified directly on the
|
|
||||||
<command>postmaster</command> command line
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-p <replaceable class="parameter">port</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Specifies the TCP/IP port or local Unix domain socket file
|
|
||||||
extension on which the <command>postmaster</command>
|
|
||||||
is to listen for connections from client applications.
|
|
||||||
Defaults to the value of the <envar>PGPORT</envar> environment
|
|
||||||
variable, or if <envar>PGPORT</envar> is not set, then
|
|
||||||
defaults to the value established during compilation (normally
|
|
||||||
5432). If you specify a port other than the default port,
|
|
||||||
then all client applications must specify the same port using
|
|
||||||
either command-line options or <envar>PGPORT</envar>.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-s</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Print time information and other statistics at the end of each command.
|
|
||||||
This is useful for benchmarking or for use in tuning the number of
|
|
||||||
buffers.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-S</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Specifies that the <command>postmaster</command>
|
|
||||||
process should start up in silent mode. That is, it will
|
|
||||||
disassociate from the user's (controlling) terminal, start its
|
|
||||||
own process group, and redirect its standard output and
|
|
||||||
standard error to <filename>/dev/null</filename>.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Using this switch discards all logging output, which is
|
|
||||||
probably not what you want, since it makes it very difficult
|
|
||||||
to troubleshoot problems. See below for a better way to start
|
|
||||||
the <command>postmaster</command> in the background.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
<option>--silent-mode=false</option> has the opposite effect
|
|
||||||
of this option.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>--<replaceable>name</replaceable>=<replaceable>value</replaceable></option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Sets a named run-time parameter; a shorter form of
|
|
||||||
<option>-c</>.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
</variablelist>
|
|
||||||
</refsect2>
|
|
||||||
|
|
||||||
<refsect2>
|
|
||||||
<title>Semi-internal Options</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
There are several other options that may be specified, used
|
|
||||||
mainly for debugging purposes and in some cases to assist with
|
|
||||||
recovery of severely damaged databases. There should be no reason
|
|
||||||
to use them in a production database setup. These are listed
|
|
||||||
here only for the use by <productname>PostgreSQL</productname>
|
|
||||||
system developers. <emphasis>Use of any of these options is
|
|
||||||
highly discouraged.</emphasis> Furthermore, any of these options
|
|
||||||
may disappear or change in a future release without notice.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-f</option> <literal>{ s | i | m | n | h }</literal></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Forbids the use of particular scan and join methods:
|
|
||||||
<literal>s</literal> and <literal>i</literal>
|
|
||||||
disable sequential and index scans respectively, while
|
|
||||||
<literal>n</literal>, <literal>m</literal>, and <literal>h</literal>
|
|
||||||
disable nested-loop, merge and hash joins respectively.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Neither sequential scans nor nested-loop joins can be disabled
|
|
||||||
completely; the <literal>-fs</literal> and
|
|
||||||
<literal>-fn</literal> options simply discourage the optimizer
|
|
||||||
from using those plan types if it has any other alternative.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-n</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
This option is for debugging problems that cause a server
|
|
||||||
process to die abnormally. The ordinary strategy in this
|
|
||||||
situation is to notify all other server processes that they
|
|
||||||
must terminate and then reinitialize the shared memory and
|
|
||||||
semaphores. This is because an errant server process could
|
|
||||||
have corrupted some shared state before terminating. This
|
|
||||||
option specifies that the <command>postmaster</command> will
|
|
||||||
not reinitialize shared data structures. A knowledgeable
|
|
||||||
system programmer can then use a debugger to examine shared
|
|
||||||
memory and semaphore state.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-O</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Allows the structure of system tables to be modified. This is
|
|
||||||
used by <command>initdb</command>.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-P</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Ignore system indexes when reading system tables (but still update
|
|
||||||
the indexes when modifying the tables). This is useful when
|
|
||||||
recovering from damaged system indexes.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-t</option> <literal>pa[rser] | pl[anner] | e[xecutor]</literal></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Print timing statistics for each query relating to each of the
|
|
||||||
major system modules. This option cannot be used together
|
|
||||||
with the <option>-s</option> option.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-T</option></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
This option is for debugging problems that cause a server
|
|
||||||
process to die abnormally. The ordinary strategy in this
|
|
||||||
situation is to notify all other server processes that they
|
|
||||||
must terminate and then reinitialize the shared memory and
|
|
||||||
semaphores. This is because an errant server process could
|
|
||||||
have corrupted some shared state before terminating. This
|
|
||||||
option specifies that the <command>postmaster</command> will
|
|
||||||
stop all other server processes by sending the signal
|
|
||||||
<literal>SIGSTOP</literal>, but will not cause them to
|
|
||||||
terminate. This permits system programmers to collect core
|
|
||||||
dumps from all server processes by hand.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><option>-W</option> <replaceable class="parameter">seconds</replaceable></term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
A delay of this many seconds occurs when a new server process
|
|
||||||
is started, after it conducts the authentication procedure.
|
|
||||||
This is intended to give an opportunity to attach to the
|
|
||||||
server process with a debugger.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect2>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Environment</title>
|
|
||||||
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term><envar>PGCLIENTENCODING</envar></term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Default character encoding used by clients. (The clients may
|
|
||||||
override this individually.) This value can also be set in the
|
|
||||||
configuration file.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><envar>PGDATA</envar></term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Default data directory location
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><envar>PGDATESTYLE</envar></term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Default value of the <xref linkend="guc-datestyle"> run-time
|
|
||||||
parameter. (The use of this environment variable is deprecated.)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><envar>PGPORT</envar></term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Default port (preferably set in the configuration file)
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term><envar>TZ</envar></term>
|
|
||||||
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Server time zone
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Diagnostics</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
A failure message mentioning <literal>semget</> or <literal>shmget</>
|
|
||||||
probably indicates you need to configure your kernel to provide adequate
|
|
||||||
shared memory and semaphores. For more discussion see <xref
|
|
||||||
linkend="kernel-resources">.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<tip>
|
|
||||||
<para>
|
|
||||||
You may be able to postpone reconfiguring your kernel by
|
|
||||||
decreasing <xref linkend="guc-shared-buffers"> to reduce the
|
|
||||||
shared memory consumption of <productname>PostgreSQL</>, and/or
|
|
||||||
by reducing <xref linkend="guc-max-connections"> to reduce the
|
|
||||||
semaphore consumption.
|
|
||||||
</para>
|
|
||||||
</tip>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
A failure message suggesting that another postmaster is already running
|
|
||||||
should be checked carefully, for example by using the command
|
|
||||||
<screen>
|
|
||||||
<prompt>$</prompt> <userinput>ps ax | grep postmaster</userinput>
|
|
||||||
</screen>
|
|
||||||
or
|
|
||||||
<screen>
|
|
||||||
<prompt>$</prompt> <userinput>ps -ef | grep postmaster</userinput>
|
|
||||||
</screen>
|
|
||||||
depending on your system. If you are certain that no conflicting
|
|
||||||
postmaster is running, you may remove the lock file mentioned in the
|
|
||||||
message and try again.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
A failure message indicating inability to bind to a port may
|
|
||||||
indicate that that port is already in use by some
|
|
||||||
non-<productname>PostgreSQL</productname> process. You may also
|
|
||||||
get this error if you terminate the <command>postmaster</command>
|
|
||||||
and immediately restart it using the same port; in this case, you
|
|
||||||
must simply wait a few seconds until the operating system closes
|
|
||||||
the port before trying again. Finally, you may get this error if
|
|
||||||
you specify a port number that your operating system considers to
|
|
||||||
be reserved. For example, many versions of Unix consider port
|
|
||||||
numbers under 1024 to be <quote>trusted</quote> and only permit
|
|
||||||
the Unix superuser to access them.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Notes</title>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
If at all possible, <emphasis>do not</emphasis> use
|
|
||||||
<literal>SIGKILL</literal> to kill the
|
|
||||||
<command>postmaster</command>. Doing so will prevent
|
|
||||||
<command>postmaster</command> from freeing the system
|
|
||||||
resources (e.g., shared memory and semaphores) that it holds before
|
|
||||||
terminating. This may cause problems for starting a fresh
|
|
||||||
<command>postmaster</command> run.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To terminate the <command>postmaster</command> normally,
|
|
||||||
the signals <literal>SIGTERM</literal>, <literal>SIGINT</literal>,
|
|
||||||
or <literal>SIGQUIT</literal> can be used. The first will wait for
|
|
||||||
all clients to terminate before quitting, the second will
|
|
||||||
forcefully disconnect all clients, and the third will quit
|
|
||||||
immediately without proper shutdown, resulting in a recovery run
|
|
||||||
during restart. The <literal>SIGHUP</literal> signal will
|
|
||||||
reload the server configuration files.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The utility command <xref linkend="app-pg-ctl"> can be used to
|
|
||||||
start and shut down the <command>postmaster</command>
|
|
||||||
safely and comfortably.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The <option>--</> options will not work on <systemitem
|
|
||||||
class="osname">FreeBSD</> or <systemitem class="osname">OpenBSD</>.
|
|
||||||
Use <option>-c</> instead. This is a bug in the affected operating
|
|
||||||
systems; a future release of <productname>PostgreSQL</productname>
|
|
||||||
will provide a workaround if this is not fixed.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1 id="app-postmaster-examples">
|
|
||||||
<title>Examples</title>
|
|
||||||
<para>
|
|
||||||
To start <command>postmaster</command> in the background
|
|
||||||
using default values, type:
|
|
||||||
|
|
||||||
<screen>
|
|
||||||
<prompt>$</prompt> <userinput>nohup postmaster >logfile 2>&1 </dev/null &</userinput>
|
|
||||||
</screen>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
To start <command>postmaster</command> with a specific
|
|
||||||
port:
|
|
||||||
<screen>
|
|
||||||
<prompt>$</prompt> <userinput>postmaster -p 1234</userinput>
|
|
||||||
</screen>
|
|
||||||
This command will start up <command>postmaster</command>
|
|
||||||
communicating through the port 1234. In order to connect to this
|
|
||||||
<command>postmaster</command> using <application>psql</>, you would need to
|
|
||||||
run it as
|
|
||||||
<screen>
|
|
||||||
<prompt>$</prompt> <userinput>psql -p 1234</userinput>
|
|
||||||
</screen>
|
|
||||||
or set the environment variable <envar>PGPORT</envar>:
|
|
||||||
<screen>
|
|
||||||
<prompt>$</prompt> <userinput>export PGPORT=1234</userinput>
|
|
||||||
<prompt>$</prompt> <userinput>psql</userinput>
|
|
||||||
</screen>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
Named run-time parameters can be set in either of these styles:
|
|
||||||
<screen>
|
|
||||||
<prompt>$</prompt> <userinput>postmaster -c work_mem=1234</userinput>
|
|
||||||
<prompt>$</prompt> <userinput>postmaster --work-mem=1234</userinput>
|
|
||||||
</screen>
|
|
||||||
Either form overrides whatever setting might exist for <varname>work_mem</>
|
|
||||||
in <filename>postgresql.conf</>. Notice that underscores in parameter
|
|
||||||
names can be written as either underscore or dash on the command line.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<tip>
|
|
||||||
<para>
|
|
||||||
Except for short-term experiments,
|
|
||||||
it's probably better practice to edit the setting in
|
|
||||||
<filename>postgresql.conf</> than to rely on a command-line switch
|
|
||||||
to set a parameter.
|
|
||||||
</para>
|
|
||||||
</tip>
|
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>See Also</title>
|
<title>See Also</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<xref linkend="app-initdb">,
|
<xref linkend="app-postgres">
|
||||||
<xref linkend="app-pg-ctl">
|
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
</refentry>
|
</refentry>
|
||||||
|
|
||||||
<!-- Keep this comment at the end of the file
|
|
||||||
Local variables:
|
|
||||||
mode: sgml
|
|
||||||
sgml-omittag:nil
|
|
||||||
sgml-shorttag:t
|
|
||||||
sgml-minimize-attributes:nil
|
|
||||||
sgml-always-quote-attributes:t
|
|
||||||
sgml-indent-step:1
|
|
||||||
sgml-indent-data:t
|
|
||||||
sgml-parent-document:nil
|
|
||||||
sgml-default-dtd-file:"../reference.ced"
|
|
||||||
sgml-exposed-tags:nil
|
|
||||||
sgml-local-catalogs:"/usr/lib/sgml/catalog"
|
|
||||||
sgml-local-ecat-files:nil
|
|
||||||
End:
|
|
||||||
-->
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/reindex.sgml,v 1.29 2005/09/12 16:43:29 tgl Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/reindex.sgml,v 1.30 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ REINDEX { INDEX | TABLE | DATABASE | SYSTEM } <replaceable class="PARAMETER">nam
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
One way to do this is to shut down the postmaster and start a stand-alone
|
One way to do this is to shut down the server and start a single-user
|
||||||
<productname>PostgreSQL</productname> server
|
<productname>PostgreSQL</productname> server
|
||||||
with the <option>-P</option> option included on its command line.
|
with the <option>-P</option> option included on its command line.
|
||||||
Then, <command>REINDEX DATABASE</>, <command>REINDEX SYSTEM</>,
|
Then, <command>REINDEX DATABASE</>, <command>REINDEX SYSTEM</>,
|
||||||
|
@ -156,9 +156,9 @@ REINDEX { INDEX | TABLE | DATABASE | SYSTEM } <replaceable class="PARAMETER">nam
|
||||||
issued, depending on how much you want to reconstruct. If in
|
issued, depending on how much you want to reconstruct. If in
|
||||||
doubt, use <command>REINDEX SYSTEM</> to select
|
doubt, use <command>REINDEX SYSTEM</> to select
|
||||||
reconstruction of all system indexes in the database. Then quit
|
reconstruction of all system indexes in the database. Then quit
|
||||||
the standalone server session and restart the regular server.
|
the single-user server session and restart the regular server.
|
||||||
See the <xref linkend="app-postgres"> reference page for more
|
See the <xref linkend="app-postgres"> reference page for more
|
||||||
information about how to interact with the stand-alone server
|
information about how to interact with the single-user server
|
||||||
interface.
|
interface.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
$PostgreSQL: pgsql/doc/src/sgml/ref/show.sgml,v 1.39 2005/06/14 20:42:52 momjian Exp $
|
$PostgreSQL: pgsql/doc/src/sgml/ref/show.sgml,v 1.40 2006/06/18 15:38:36 petere Exp $
|
||||||
PostgreSQL documentation
|
PostgreSQL documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ SHOW ALL
|
||||||
the <envar>PGOPTIONS</envar> environmental variable (when using
|
the <envar>PGOPTIONS</envar> environmental variable (when using
|
||||||
<application>libpq</> or a <application>libpq</>-based
|
<application>libpq</> or a <application>libpq</>-based
|
||||||
application), or through command-line flags when starting the
|
application), or through command-line flags when starting the
|
||||||
<command>postmaster</command>. See <xref
|
<command>postgres</command>. See <xref
|
||||||
linkend="runtime-config"> for details.
|
linkend="runtime-config"> for details.
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/regress.sgml,v 1.51 2006/04/06 18:54:36 petere Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/regress.sgml,v 1.52 2006/06/18 15:38:36 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="regress">
|
<chapter id="regress">
|
||||||
<title id="regress-title">Regression Tests</title>
|
<title id="regress-title">Regression Tests</title>
|
||||||
|
@ -316,7 +316,7 @@ exclusion of those that don't.
|
||||||
<![%standalone-ignore;[<xref linkend="guc-max-stack-depth">]]>
|
<![%standalone-ignore;[<xref linkend="guc-max-stack-depth">]]>
|
||||||
<![%standalone-include;[<literal>max_stack_depth</literal>]]>
|
<![%standalone-include;[<literal>max_stack_depth</literal>]]>
|
||||||
parameter indicates. This
|
parameter indicates. This
|
||||||
can be fixed by running the postmaster under a higher stack
|
can be fixed by running the server under a higher stack
|
||||||
size limit (4MB is recommended with the default value of
|
size limit (4MB is recommended with the default value of
|
||||||
<varname>max_stack_depth</>). If you are unable to do that, an
|
<varname>max_stack_depth</>). If you are unable to do that, an
|
||||||
alternative is to reduce the value of <varname>max_stack_depth</>.
|
alternative is to reduce the value of <varname>max_stack_depth</>.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.371 2006/04/27 02:29:14 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.372 2006/06/18 15:38:36 petere Exp $ -->
|
||||||
|
|
||||||
<chapter Id="runtime">
|
<chapter Id="runtime">
|
||||||
<title>Operating System Environment</title>
|
<title>Operating System Environment</title>
|
||||||
|
@ -161,19 +161,19 @@ postgres$ <userinput>initdb -D /usr/local/pgsql/data</userinput>
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="postmaster-start">
|
<sect1 id="server-start">
|
||||||
<title>Starting the Database Server</title>
|
<title>Starting the Database Server</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Before anyone can access the database, you must start the database
|
Before anyone can access the database, you must start the database
|
||||||
server. The database server program is called
|
server. The database server program is called
|
||||||
<command>postmaster</command>.<indexterm><primary>postmaster</></>
|
<command>postgres</command>.<indexterm><primary>postgres</></>
|
||||||
The <command>postmaster</command> must know where to
|
The <command>postgres</command> program must know where to
|
||||||
find the data it is supposed to use. This is done with the
|
find the data it is supposed to use. This is done with the
|
||||||
<option>-D</option> option. Thus, the simplest way to start the
|
<option>-D</option> option. Thus, the simplest way to start the
|
||||||
server is:
|
server is:
|
||||||
<screen>
|
<screen>
|
||||||
$ <userinput>postmaster -D /usr/local/pgsql/data</userinput>
|
$ <userinput>postgres -D /usr/local/pgsql/data</userinput>
|
||||||
</screen>
|
</screen>
|
||||||
which will leave the server running in the foreground. This must be
|
which will leave the server running in the foreground. This must be
|
||||||
done while logged into the <productname>PostgreSQL</productname> user
|
done while logged into the <productname>PostgreSQL</productname> user
|
||||||
|
@ -183,10 +183,10 @@ $ <userinput>postmaster -D /usr/local/pgsql/data</userinput>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Normally it is better to start the <command>postmaster</command> in the
|
Normally it is better to start <command>postgres</command> in the
|
||||||
background. For this, use the usual shell syntax:
|
background. For this, use the usual shell syntax:
|
||||||
<screen>
|
<screen>
|
||||||
$ <userinput>postmaster -D /usr/local/pgsql/data >logfile 2>&1 &</userinput>
|
$ <userinput>postgres -D /usr/local/pgsql/data >logfile 2>&1 &</userinput>
|
||||||
</screen>
|
</screen>
|
||||||
It is important to store the server's <systemitem>stdout</> and
|
It is important to store the server's <systemitem>stdout</> and
|
||||||
<systemitem>stderr</> output somewhere, as shown above. It will help
|
<systemitem>stderr</> output somewhere, as shown above. It will help
|
||||||
|
@ -196,9 +196,9 @@ $ <userinput>postmaster -D /usr/local/pgsql/data >logfile 2>&1 &</
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The <command>postmaster</command> also takes a number of other
|
The <command>postgres</command> program also takes a number of other
|
||||||
command line options. For more information, see the
|
command-line options. For more information, see the
|
||||||
<xref linkend="app-postmaster"> reference page
|
<xref linkend="app-postgres"> reference page
|
||||||
and <xref linkend="runtime-config"> below.
|
and <xref linkend="runtime-config"> below.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ pg_ctl start -l logfile
|
||||||
</programlisting>
|
</programlisting>
|
||||||
will start the server in the background and put the output into the
|
will start the server in the background and put the output into the
|
||||||
named log file. The <option>-D</option> option has the same meaning
|
named log file. The <option>-D</option> option has the same meaning
|
||||||
here as in the <command>postmaster</command>. <command>pg_ctl</command>
|
here as for <command>postgres</command>. <command>pg_ctl</command>
|
||||||
is also capable of stopping the server.
|
is also capable of stopping the server.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -262,7 +262,7 @@ su -c 'pg_ctl start -D /usr/local/pgsql/data -l serverlog' postgres
|
||||||
to the file <filename>/etc/rc.local</filename>:
|
to the file <filename>/etc/rc.local</filename>:
|
||||||
<indexterm><primary>OpenBSD</><secondary>start script</secondary></>
|
<indexterm><primary>OpenBSD</><secondary>start script</secondary></>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
if [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postmaster ]; then
|
if [ -x /usr/local/pgsql/bin/pg_ctl -a -x /usr/local/pgsql/bin/postgres ]; then
|
||||||
su - -c '/usr/local/pgsql/bin/pg_ctl start -l /var/postgresql/log -s' postgres
|
su - -c '/usr/local/pgsql/bin/pg_ctl start -l /var/postgresql/log -s' postgres
|
||||||
echo -n ' postgresql'
|
echo -n ' postgresql'
|
||||||
fi
|
fi
|
||||||
|
@ -310,15 +310,15 @@ su - postgres -c "/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgs
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
While the <command>postmaster</command> is running, its
|
While the server is running, its
|
||||||
<acronym>PID</acronym> is stored in the file
|
<acronym>PID</acronym> is stored in the file
|
||||||
<filename>postmaster.pid</filename> in the data directory. This is
|
<filename>postmaster.pid</filename> in the data directory. This is
|
||||||
used to prevent multiple <command>postmaster</command> processes
|
used to prevent multiple server instances from
|
||||||
running in the same data directory and can also be used for
|
running in the same data directory and can also be used for
|
||||||
shutting down the <command>postmaster</command> process.
|
shutting down the server.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<sect2 id="postmaster-start-failures">
|
<sect2 id="server-start-failures">
|
||||||
<title>Server Start-up Failures</title>
|
<title>Server Start-up Failures</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -336,13 +336,13 @@ HINT: Is another postmaster already running on port 5432? If not, wait a few se
|
||||||
FATAL: could not create TCP/IP listen socket
|
FATAL: could not create TCP/IP listen socket
|
||||||
</screen>
|
</screen>
|
||||||
This usually means just what it suggests: you tried to start
|
This usually means just what it suggests: you tried to start
|
||||||
another <command>postmaster</command> on the same port where one is already running.
|
another server on the same port where one is already running.
|
||||||
However, if the kernel error message is not <computeroutput>Address
|
However, if the kernel error message is not <computeroutput>Address
|
||||||
already in use</computeroutput> or some variant of that, there may
|
already in use</computeroutput> or some variant of that, there may
|
||||||
be a different problem. For example, trying to start a <command>postmaster</command>
|
be a different problem. For example, trying to start a server
|
||||||
on a reserved port number may draw something like:
|
on a reserved port number may draw something like:
|
||||||
<screen>
|
<screen>
|
||||||
$ <userinput>postmaster -p 666</userinput>
|
$ <userinput>postgres -p 666</userinput>
|
||||||
LOG: could not bind IPv4 socket: Permission denied
|
LOG: could not bind IPv4 socket: Permission denied
|
||||||
HINT: Is another postmaster already running on port 666? If not, wait a few seconds and retry.
|
HINT: Is another postmaster already running on port 666? If not, wait a few seconds and retry.
|
||||||
FATAL: could not create TCP/IP listen socket
|
FATAL: could not create TCP/IP listen socket
|
||||||
|
@ -495,7 +495,7 @@ psql: could not connect to server: No such file or directory
|
||||||
<acronym>IPC</> limits, the server will refuse to start and
|
<acronym>IPC</> limits, the server will refuse to start and
|
||||||
should leave an instructive error message describing the problem
|
should leave an instructive error message describing the problem
|
||||||
encountered and what to do about it. (See also <xref
|
encountered and what to do about it. (See also <xref
|
||||||
linkend="postmaster-start-failures">.) The relevant kernel
|
linkend="server-start-failures">.) The relevant kernel
|
||||||
parameters are named consistently across different systems; <xref
|
parameters are named consistently across different systems; <xref
|
||||||
linkend="sysvipc-parameters"> gives an overview. The methods to set
|
linkend="sysvipc-parameters"> gives an overview. The methods to set
|
||||||
them, however, vary. Suggestions for some platforms are given below.
|
them, however, vary. Suggestions for some platforms are given below.
|
||||||
|
@ -1181,7 +1181,7 @@ default:\
|
||||||
optimal for <productname>PostgreSQL</productname>. Because of the
|
optimal for <productname>PostgreSQL</productname>. Because of the
|
||||||
way that the kernel implements memory overcommit, the kernel may
|
way that the kernel implements memory overcommit, the kernel may
|
||||||
terminate the <productname>PostgreSQL</productname> server (the
|
terminate the <productname>PostgreSQL</productname> server (the
|
||||||
<filename>postmaster</filename> process) if the memory demands of
|
master server process) if the memory demands of
|
||||||
another process cause the system to run out of virtual memory.
|
another process cause the system to run out of virtual memory.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -1190,9 +1190,9 @@ default:\
|
||||||
this (consult your system documentation and configuration on where
|
this (consult your system documentation and configuration on where
|
||||||
to look for such a message):
|
to look for such a message):
|
||||||
<programlisting>
|
<programlisting>
|
||||||
Out of Memory: Killed process 12345 (postmaster).
|
Out of Memory: Killed process 12345 (postgres).
|
||||||
</programlisting>
|
</programlisting>
|
||||||
This indicates that the <filename>postmaster</filename> process
|
This indicates that the <filename>postgres</filename> process
|
||||||
has been terminated due to memory pressure.
|
has been terminated due to memory pressure.
|
||||||
Although existing database connections will continue to function
|
Although existing database connections will continue to function
|
||||||
normally, no new connections will be accepted. To recover,
|
normally, no new connections will be accepted. To recover,
|
||||||
|
@ -1237,17 +1237,17 @@ sysctl -w vm.overcommit_memory=2
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
<sect1 id="postmaster-shutdown">
|
<sect1 id="server-shutdown">
|
||||||
<title>Shutting Down the Server</title>
|
<title>Shutting Down the Server</title>
|
||||||
|
|
||||||
<indexterm zone="postmaster-shutdown">
|
<indexterm zone="server-shutdown">
|
||||||
<primary>shutdown</>
|
<primary>shutdown</>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
There are several ways to shut down the database server. You control
|
There are several ways to shut down the database server. You control
|
||||||
the type of shutdown by sending different signals to the
|
the type of shutdown by sending different signals to the master
|
||||||
<command>postmaster</command> process.
|
<command>postgres</command> process.
|
||||||
|
|
||||||
<variablelist>
|
<variablelist>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
@ -1281,7 +1281,7 @@ sysctl -w vm.overcommit_memory=2
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
This is the <firstterm>Immediate Shutdown</firstterm>, which
|
This is the <firstterm>Immediate Shutdown</firstterm>, which
|
||||||
will cause the <command>postmaster</command> process to send a
|
will cause the master <command>postgres</command> process to send a
|
||||||
<systemitem>SIGQUIT</systemitem> to all child processes and exit
|
<systemitem>SIGQUIT</systemitem> to all child processes and exit
|
||||||
immediately, without properly shutting itself down. The child processes
|
immediately, without properly shutting itself down. The child processes
|
||||||
likewise exit immediately upon receiving
|
likewise exit immediately upon receiving
|
||||||
|
@ -1301,7 +1301,7 @@ sysctl -w vm.overcommit_memory=2
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Alternatively, you can send the signal directly using <command>kill</>.
|
Alternatively, you can send the signal directly using <command>kill</>.
|
||||||
The <acronym>PID</> of the <command>postmaster</command> process can be
|
The <acronym>PID</> of the <command>postgres</command> process can be
|
||||||
found using the <command>ps</command> program, or from the file
|
found using the <command>ps</command> program, or from the file
|
||||||
<filename>postmaster.pid</filename> in the data directory. For
|
<filename>postmaster.pid</filename> in the data directory. For
|
||||||
example, to do a fast shutdown:
|
example, to do a fast shutdown:
|
||||||
|
@ -1316,7 +1316,7 @@ $ <userinput>kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`</userinput
|
||||||
the server. Doing so will prevent the server from releasing
|
the server. Doing so will prevent the server from releasing
|
||||||
shared memory and semaphores, which may then have to be done
|
shared memory and semaphores, which may then have to be done
|
||||||
manually before a new server can be started. Furthermore,
|
manually before a new server can be started. Furthermore,
|
||||||
<systemitem>SIGKILL</systemitem> kills the <command>postmaster</command>
|
<systemitem>SIGKILL</systemitem> kills the <command>postgres</command>
|
||||||
process without letting it relay the signal to its subprocesses,
|
process without letting it relay the signal to its subprocesses,
|
||||||
so it will be necessary to kill the individual subprocesses by hand as
|
so it will be necessary to kill the individual subprocesses by hand as
|
||||||
well.
|
well.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/start.sgml,v 1.40 2006/03/10 19:10:49 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/start.sgml,v 1.41 2006/06/18 15:38:36 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="tutorial-start">
|
<chapter id="tutorial-start">
|
||||||
<title>Getting Started</title>
|
<title>Getting Started</title>
|
||||||
|
@ -76,8 +76,8 @@
|
||||||
connections to the database from client applications, and
|
connections to the database from client applications, and
|
||||||
performs actions on the database on behalf of the clients. The
|
performs actions on the database on behalf of the clients. The
|
||||||
database server program is called
|
database server program is called
|
||||||
<filename>postmaster</filename>.
|
<filename>postgres</filename>.
|
||||||
<indexterm><primary>postmaster</primary></indexterm>
|
<indexterm><primary>postgres</primary></indexterm>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
@ -112,8 +112,8 @@
|
||||||
starts (<quote>forks</quote>) a new process for each connection.
|
starts (<quote>forks</quote>) a new process for each connection.
|
||||||
From that point on, the client and the new server process
|
From that point on, the client and the new server process
|
||||||
communicate without intervention by the original
|
communicate without intervention by the original
|
||||||
<filename>postmaster</filename> process. Thus, the
|
<filename>postgres</filename> process. Thus, the
|
||||||
<filename>postmaster</filename> is always running, waiting for
|
master server process is always running, waiting for
|
||||||
client connections, whereas client and associated server processes
|
client connections, whereas client and associated server processes
|
||||||
come and go. (All of this is of course invisible to the user. We
|
come and go. (All of this is of course invisible to the user. We
|
||||||
only mention it here for completeness.)
|
only mention it here for completeness.)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/storage.sgml,v 1.10 2006/04/23 03:39:52 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/storage.sgml,v 1.11 2006/06/18 15:38:36 petere Exp $ -->
|
||||||
|
|
||||||
<chapter id="storage">
|
<chapter id="storage">
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ All the data needed for a database cluster is stored within the cluster's data
|
||||||
directory, commonly referred to as <varname>PGDATA</> (after the name of the
|
directory, commonly referred to as <varname>PGDATA</> (after the name of the
|
||||||
environment variable that can be used to define it). A common location for
|
environment variable that can be used to define it). A common location for
|
||||||
<varname>PGDATA</> is <filename>/var/lib/pgsql/data</>. Multiple clusters,
|
<varname>PGDATA</> is <filename>/var/lib/pgsql/data</>. Multiple clusters,
|
||||||
managed by different postmasters, can exist on the same machine.
|
managed by different server instances, can exist on the same machine.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -99,14 +99,14 @@ Item
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
<entry><filename>postmaster.opts</></entry>
|
<entry><filename>postmaster.opts</></entry>
|
||||||
<entry>A file recording the command-line options the postmaster was
|
<entry>A file recording the command-line options the server was
|
||||||
last started with</entry>
|
last started with</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
<entry><filename>postmaster.pid</></entry>
|
<entry><filename>postmaster.pid</></entry>
|
||||||
<entry>A lock file recording the current postmaster PID and shared memory
|
<entry>A lock file recording the current server PID and shared memory
|
||||||
segment ID (not present after postmaster shutdown)</entry>
|
segment ID (not present after server shutdown)</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|
|
@ -4,11 +4,11 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 1994, Regents of the University of California
|
# Copyright (c) 1994, Regents of the University of California
|
||||||
#
|
#
|
||||||
# $PostgreSQL: pgsql/src/backend/Makefile,v 1.114 2006/01/05 01:56:29 momjian Exp $
|
# $PostgreSQL: pgsql/src/backend/Makefile,v 1.115 2006/06/18 15:38:36 petere Exp $
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
PGFILEDESC = "PostgreSQL Database Backend"
|
PGFILEDESC = "PostgreSQL Server"
|
||||||
subdir = src/backend
|
subdir = src/backend
|
||||||
top_builddir = ../..
|
top_builddir = ../..
|
||||||
include $(top_builddir)/src/Makefile.global
|
include $(top_builddir)/src/Makefile.global
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.216 2006/06/08 23:55:48 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.217 2006/06/18 15:38:36 petere Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -53,7 +53,6 @@ extern char *optarg;
|
||||||
|
|
||||||
#define ALLOC(t, c) ((t *) calloc((unsigned)(c), sizeof(t)))
|
#define ALLOC(t, c) ((t *) calloc((unsigned)(c), sizeof(t)))
|
||||||
|
|
||||||
static void usage(void);
|
|
||||||
static void bootstrap_signals(void);
|
static void bootstrap_signals(void);
|
||||||
static void ShutdownDummyProcess(int code, Datum arg);
|
static void ShutdownDummyProcess(int code, Datum arg);
|
||||||
static hashnode *AddStr(char *str, int strlength, int mderef);
|
static hashnode *AddStr(char *str, int strlength, int mderef);
|
||||||
|
@ -247,8 +246,8 @@ BootstrapMain(int argc, char *argv[])
|
||||||
if (!IsUnderPostmaster)
|
if (!IsUnderPostmaster)
|
||||||
InitializeGUCOptions();
|
InitializeGUCOptions();
|
||||||
|
|
||||||
/* Ignore the initial -boot argument, if present */
|
/* Ignore the initial --boot argument, if present */
|
||||||
if (argc > 1 && strcmp(argv[1], "-boot") == 0)
|
if (argc > 1 && strcmp(argv[1], "--boot") == 0)
|
||||||
{
|
{
|
||||||
argv++;
|
argv++;
|
||||||
argc--;
|
argc--;
|
||||||
|
@ -317,7 +316,9 @@ BootstrapMain(int argc, char *argv[])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
usage();
|
write_stderr("Try \"%s --help\" for more information.\n",
|
||||||
|
progname);
|
||||||
|
proc_exit(1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -328,7 +329,10 @@ BootstrapMain(int argc, char *argv[])
|
||||||
optind++;
|
optind++;
|
||||||
}
|
}
|
||||||
if (!dbname || argc != optind)
|
if (!dbname || argc != optind)
|
||||||
usage();
|
{
|
||||||
|
write_stderr("%s: invalid command-line arguments\n", progname);
|
||||||
|
proc_exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Identify myself via ps
|
* Identify myself via ps
|
||||||
|
@ -498,26 +502,6 @@ BootstrapMain(int argc, char *argv[])
|
||||||
* ----------------------------------------------------------------
|
* ----------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* usage:
|
|
||||||
* usage help for the bootstrap backend
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
usage(void)
|
|
||||||
{
|
|
||||||
fprintf(stderr, _("This is the PostgreSQL bootstrap process.\n\n"));
|
|
||||||
fprintf(stderr, _("Usage:\n postgres -boot [OPTION]... DBNAME\n\n"));
|
|
||||||
fprintf(stderr, _("Options:\n"));
|
|
||||||
fprintf(stderr, _(" -B NBUFFERS number of shared buffers\n"));
|
|
||||||
fprintf(stderr, _(" -c NAME=VALUE set run-time parameter\n"));
|
|
||||||
fprintf(stderr, _(" -d 1-5 debugging level\n"));
|
|
||||||
fprintf(stderr, _(" -D DATADIR database directory\n"));
|
|
||||||
fprintf(stderr, _(" -F turn fsync off\n"));
|
|
||||||
fprintf(stderr, _(" -r FILENAME send stdout and stderr to given file\n"));
|
|
||||||
fprintf(stderr, _(" -x NUM internal use\n"));
|
|
||||||
|
|
||||||
proc_exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set up signal handling for a bootstrap process
|
* Set up signal handling for a bootstrap process
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/main/main.c,v 1.102 2006/06/12 16:17:20 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/main/main.c,v 1.103 2006/06/18 15:38:37 petere Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -29,6 +29,7 @@
|
||||||
#include <sys/proc.h>
|
#include <sys/proc.h>
|
||||||
#undef ASSEMBLER
|
#undef ASSEMBLER
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__NetBSD__)
|
#if defined(__NetBSD__)
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -45,88 +46,26 @@
|
||||||
#include "libpq/pqsignal.h"
|
#include "libpq/pqsignal.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
const char *progname;
|
const char *progname;
|
||||||
|
|
||||||
|
|
||||||
|
static void startup_hacks(const char *progname);
|
||||||
|
static void help(const char *progname);
|
||||||
|
static void check_root(const char *progname);
|
||||||
|
static char *get_current_username(const char *progname);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
#ifndef WIN32
|
|
||||||
struct passwd *pw;
|
|
||||||
#endif
|
|
||||||
char *pw_name_persist;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Place platform-specific startup hacks here. This is the right place to
|
|
||||||
* put code that must be executed early in launch of either a postmaster,
|
|
||||||
* a standalone backend, or a standalone bootstrap run. Note that this
|
|
||||||
* code will NOT be executed when a backend or sub-bootstrap run is forked
|
|
||||||
* by the postmaster.
|
|
||||||
*
|
|
||||||
* XXX The need for code here is proof that the platform in question is
|
|
||||||
* too brain-dead to provide a standard C execution environment without
|
|
||||||
* help. Avoid adding more here, if you can.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if defined(__alpha) /* no __alpha__ ? */
|
|
||||||
#ifdef NOFIXADE
|
|
||||||
int buffer[] = {SSIN_UACPROC, UAC_SIGBUS | UAC_NOPRINT};
|
|
||||||
#endif
|
|
||||||
#endif /* __alpha */
|
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
char *env_locale;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
progname = get_progname(argv[0]);
|
progname = get_progname(argv[0]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* On some platforms, unaligned memory accesses result in a kernel trap;
|
* Platform-specific startup hacks
|
||||||
* the default kernel behavior is to emulate the memory access, but this
|
|
||||||
* results in a significant performance penalty. We ought to fix PG not to
|
|
||||||
* make such unaligned memory accesses, so this code disables the kernel
|
|
||||||
* emulation: unaligned accesses will result in SIGBUS instead.
|
|
||||||
*/
|
|
||||||
#ifdef NOFIXADE
|
|
||||||
|
|
||||||
#if defined(ultrix4)
|
|
||||||
syscall(SYS_sysmips, MIPS_FIXADE, 0, NULL, NULL, NULL);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__alpha) /* no __alpha__ ? */
|
|
||||||
if (setsysinfo(SSI_NVPAIRS, buffer, 1, (caddr_t) NULL,
|
|
||||||
(unsigned long) NULL) < 0)
|
|
||||||
write_stderr("%s: setsysinfo failed: %s\n",
|
|
||||||
argv[0], strerror(errno));
|
|
||||||
#endif
|
|
||||||
#endif /* NOFIXADE */
|
|
||||||
|
|
||||||
#if defined(WIN32)
|
|
||||||
{
|
|
||||||
WSADATA wsaData;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
/* Make output streams unbuffered by default */
|
|
||||||
setvbuf(stdout, NULL, _IONBF, 0);
|
|
||||||
setvbuf(stderr, NULL, _IONBF, 0);
|
|
||||||
|
|
||||||
/* Prepare Winsock */
|
|
||||||
err = WSAStartup(MAKEWORD(2, 2), &wsaData);
|
|
||||||
if (err != 0)
|
|
||||||
{
|
|
||||||
write_stderr("%s: WSAStartup failed: %d\n",
|
|
||||||
argv[0], err);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* In case of general protection fault, don't show GUI popup box */
|
|
||||||
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Not-quite-so-platform-specific startup environment checks. Still best
|
|
||||||
* to minimize these.
|
|
||||||
*/
|
*/
|
||||||
|
startup_hacks(progname);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Remember the physical location of the initially given argv[] array for
|
* Remember the physical location of the initially given argv[] array for
|
||||||
|
@ -153,23 +92,25 @@ main(int argc, char *argv[])
|
||||||
set_pglocale_pgservice(argv[0], "postgres");
|
set_pglocale_pgservice(argv[0], "postgres");
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Windows uses codepages rather than the environment, so we work around
|
* Windows uses codepages rather than the environment, so we work around
|
||||||
* that by querying the environment explicitly first for LC_COLLATE and
|
* that by querying the environment explicitly first for LC_COLLATE and
|
||||||
* LC_CTYPE. We have to do this because initdb passes those values in the
|
* LC_CTYPE. We have to do this because initdb passes those values in the
|
||||||
* environment. If there is nothing there we fall back on the codepage.
|
* environment. If there is nothing there we fall back on the codepage.
|
||||||
*/
|
*/
|
||||||
|
{
|
||||||
|
char *env_locale;
|
||||||
|
|
||||||
if ((env_locale = getenv("LC_COLLATE")) != NULL)
|
if ((env_locale = getenv("LC_COLLATE")) != NULL)
|
||||||
pg_perm_setlocale(LC_COLLATE, env_locale);
|
pg_perm_setlocale(LC_COLLATE, env_locale);
|
||||||
else
|
else
|
||||||
pg_perm_setlocale(LC_COLLATE, "");
|
pg_perm_setlocale(LC_COLLATE, "");
|
||||||
|
|
||||||
if ((env_locale = getenv("LC_CTYPE")) != NULL)
|
if ((env_locale = getenv("LC_CTYPE")) != NULL)
|
||||||
pg_perm_setlocale(LC_CTYPE, env_locale);
|
pg_perm_setlocale(LC_CTYPE, env_locale);
|
||||||
else
|
else
|
||||||
pg_perm_setlocale(LC_CTYPE, "");
|
pg_perm_setlocale(LC_CTYPE, "");
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
pg_perm_setlocale(LC_COLLATE, "");
|
pg_perm_setlocale(LC_COLLATE, "");
|
||||||
pg_perm_setlocale(LC_CTYPE, "");
|
pg_perm_setlocale(LC_CTYPE, "");
|
||||||
|
@ -195,80 +136,38 @@ main(int argc, char *argv[])
|
||||||
unsetenv("LC_ALL");
|
unsetenv("LC_ALL");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Skip permission checks if we're just trying to do --help or --version;
|
* Catch standard options before doing much else
|
||||||
* otherwise root will get unhelpful failure messages from initdb.
|
|
||||||
*/
|
*/
|
||||||
if (!(argc > 1
|
if (argc > 1)
|
||||||
&& (strcmp(argv[1], "--help") == 0 ||
|
|
||||||
strcmp(argv[1], "-?") == 0 ||
|
|
||||||
strcmp(argv[1], "--version") == 0 ||
|
|
||||||
strcmp(argv[1], "-V") == 0)))
|
|
||||||
{
|
{
|
||||||
#ifndef WIN32
|
if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
|
||||||
/*
|
|
||||||
* Make sure we are not running as root.
|
|
||||||
*/
|
|
||||||
if (geteuid() == 0)
|
|
||||||
{
|
{
|
||||||
write_stderr("\"root\" execution of the PostgreSQL server is not permitted.\n"
|
help(progname);
|
||||||
"The server must be started under an unprivileged user ID to prevent\n"
|
exit(0);
|
||||||
"possible system security compromise. See the documentation for\n"
|
|
||||||
"more information on how to properly start the server.\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
|
||||||
/*
|
|
||||||
* Also make sure that real and effective uids are the same. Executing
|
|
||||||
* Postgres as a setuid program from a root shell is a security hole,
|
|
||||||
* since on many platforms a nefarious subroutine could setuid back to
|
|
||||||
* root if real uid is root. (Since nobody actually uses Postgres as
|
|
||||||
* a setuid program, trying to actively fix this situation seems more
|
|
||||||
* trouble than it's worth; we'll just expend the effort to check for
|
|
||||||
* it.)
|
|
||||||
*/
|
|
||||||
if (getuid() != geteuid())
|
|
||||||
{
|
{
|
||||||
write_stderr("%s: real and effective user IDs must match\n",
|
puts("postgres (PostgreSQL) " PG_VERSION);
|
||||||
argv[0]);
|
exit(0);
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
#else /* WIN32 */
|
|
||||||
if (pgwin32_is_admin())
|
|
||||||
{
|
|
||||||
write_stderr("Execution of PostgreSQL by a user with administrative permissions is not\n"
|
|
||||||
"permitted.\n"
|
|
||||||
"The server must be started under an unprivileged user ID to prevent\n"
|
|
||||||
"possible system security compromises. See the documentation for\n"
|
|
||||||
"more information on how to properly start the server.\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
#endif /* !WIN32 */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now dispatch to one of PostmasterMain, PostgresMain, GucInfoMain,
|
* Make sure we are not running as root.
|
||||||
* SubPostmasterMain, or BootstrapMain depending on the program name (and
|
|
||||||
* possibly first argument) we were called with. The lack of consistency
|
|
||||||
* here is historical.
|
|
||||||
*/
|
*/
|
||||||
if (strcmp(progname, "postmaster") == 0)
|
check_root(progname);
|
||||||
{
|
|
||||||
/* Called as "postmaster" */
|
|
||||||
exit(PostmasterMain(argc, argv));
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the first argument begins with "-fork", then invoke
|
* Dispatch to one of various subprograms depending on first
|
||||||
* SubPostmasterMain. This is used for forking postmaster child processes
|
* argument.
|
||||||
* on systems where we can't simply fork.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef EXEC_BACKEND
|
#ifdef EXEC_BACKEND
|
||||||
if (argc > 1 && strncmp(argv[1], "-fork", 5) == 0)
|
if (argc > 1 && strncmp(argv[1], "--fork", 6) == 0)
|
||||||
exit(SubPostmasterMain(argc, argv));
|
exit(SubPostmasterMain(argc, argv));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Start our win32 signal implementation
|
* Start our win32 signal implementation
|
||||||
*
|
*
|
||||||
|
@ -278,47 +177,223 @@ main(int argc, char *argv[])
|
||||||
pgwin32_signal_initialize();
|
pgwin32_signal_initialize();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
if (argc > 1 && strcmp(argv[1], "--boot") == 0)
|
||||||
* If the first argument is "-boot", then invoke bootstrap mode. (This
|
|
||||||
* path is taken only for a standalone bootstrap process.)
|
|
||||||
*/
|
|
||||||
if (argc > 1 && strcmp(argv[1], "-boot") == 0)
|
|
||||||
exit(BootstrapMain(argc, argv));
|
exit(BootstrapMain(argc, argv));
|
||||||
|
|
||||||
/*
|
|
||||||
* If the first argument is "--describe-config", then invoke runtime
|
|
||||||
* configuration option display mode.
|
|
||||||
*/
|
|
||||||
if (argc > 1 && strcmp(argv[1], "--describe-config") == 0)
|
if (argc > 1 && strcmp(argv[1], "--describe-config") == 0)
|
||||||
exit(GucInfoMain());
|
exit(GucInfoMain());
|
||||||
|
|
||||||
|
if (argc > 1 && strcmp(argv[1], "--single") == 0)
|
||||||
|
exit(PostgresMain(argc, argv, get_current_username(progname)));
|
||||||
|
|
||||||
|
exit(PostmasterMain(argc, argv));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Place platform-specific startup hacks here. This is the right
|
||||||
|
* place to put code that must be executed early in launch of either a
|
||||||
|
* postmaster, a standalone backend, or a standalone bootstrap run.
|
||||||
|
* Note that this code will NOT be executed when a backend or
|
||||||
|
* sub-bootstrap run is forked by the server.
|
||||||
|
*
|
||||||
|
* XXX The need for code here is proof that the platform in question
|
||||||
|
* is too brain-dead to provide a standard C execution environment
|
||||||
|
* without help. Avoid adding more here, if you can.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
startup_hacks(const char *progname)
|
||||||
|
{
|
||||||
|
#if defined(__alpha) /* no __alpha__ ? */
|
||||||
|
#ifdef NOFIXADE
|
||||||
|
int buffer[] = {SSIN_UACPROC, UAC_SIGBUS | UAC_NOPRINT};
|
||||||
|
#endif
|
||||||
|
#endif /* __alpha */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Otherwise we're a standalone backend. Invoke PostgresMain, specifying
|
* On some platforms, unaligned memory accesses result in a kernel
|
||||||
* current userid as the "authenticated" Postgres user name.
|
* trap; the default kernel behavior is to emulate the memory
|
||||||
|
* access, but this results in a significant performance penalty.
|
||||||
|
* We ought to fix PG not to make such unaligned memory accesses,
|
||||||
|
* so this code disables the kernel emulation: unaligned accesses
|
||||||
|
* will result in SIGBUS instead.
|
||||||
*/
|
*/
|
||||||
|
#ifdef NOFIXADE
|
||||||
|
|
||||||
|
#if defined(ultrix4)
|
||||||
|
syscall(SYS_sysmips, MIPS_FIXADE, 0, NULL, NULL, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__alpha) /* no __alpha__ ? */
|
||||||
|
if (setsysinfo(SSI_NVPAIRS, buffer, 1, (caddr_t) NULL,
|
||||||
|
(unsigned long) NULL) < 0)
|
||||||
|
write_stderr("%s: setsysinfo failed: %s\n",
|
||||||
|
progname, strerror(errno));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NOFIXADE */
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
{
|
||||||
|
WSADATA wsaData;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
/* Make output streams unbuffered by default */
|
||||||
|
setvbuf(stdout, NULL, _IONBF, 0);
|
||||||
|
setvbuf(stderr, NULL, _IONBF, 0);
|
||||||
|
|
||||||
|
/* Prepare Winsock */
|
||||||
|
err = WSAStartup(MAKEWORD(2, 2), &wsaData);
|
||||||
|
if (err != 0)
|
||||||
|
{
|
||||||
|
write_stderr("%s: WSAStartup failed: %d\n",
|
||||||
|
progname, err);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* In case of general protection fault, don't show GUI popup box */
|
||||||
|
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
|
||||||
|
}
|
||||||
|
#endif /* WIN32 */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
help(const char *progname)
|
||||||
|
{
|
||||||
|
printf(_("%s is the PostgreSQL server.\n\n"), progname);
|
||||||
|
printf(_("Usage:\n %s [OPTION]...\n\n"), progname);
|
||||||
|
printf(_("Options:\n"));
|
||||||
|
#ifdef USE_ASSERT_CHECKING
|
||||||
|
printf(_(" -A 1|0 enable/disable run-time assert checking\n"));
|
||||||
|
#endif
|
||||||
|
printf(_(" -B NBUFFERS number of shared buffers\n"));
|
||||||
|
printf(_(" -c NAME=VALUE set run-time parameter\n"));
|
||||||
|
printf(_(" -d 1-5 debugging level\n"));
|
||||||
|
printf(_(" -D DATADIR database directory\n"));
|
||||||
|
printf(_(" -e use European date input format (DMY)\n"));
|
||||||
|
printf(_(" -F turn fsync off\n"));
|
||||||
|
printf(_(" -h HOSTNAME host name or IP address to listen on\n"));
|
||||||
|
printf(_(" -i enable TCP/IP connections\n"));
|
||||||
|
printf(_(" -k DIRECTORY Unix-domain socket location\n"));
|
||||||
|
#ifdef USE_SSL
|
||||||
|
printf(_(" -l enable SSL connections\n"));
|
||||||
|
#endif
|
||||||
|
printf(_(" -N MAX-CONNECT maximum number of allowed connections\n"));
|
||||||
|
printf(_(" -o OPTIONS pass \"OPTIONS\" to each server process (obsolete)\n"));
|
||||||
|
printf(_(" -p PORT port number to listen on\n"));
|
||||||
|
printf(_(" -s show statistics after each query\n"));
|
||||||
|
printf(_(" -S WORK-MEM set amount of memory for sorts (in kB)\n"));
|
||||||
|
printf(_(" --NAME=VALUE set run-time parameter\n"));
|
||||||
|
printf(_(" --describe-config describe configuration parameters, then exit\n"));
|
||||||
|
printf(_(" --help show this help, then exit\n"));
|
||||||
|
printf(_(" --version output version information, then exit\n"));
|
||||||
|
|
||||||
|
printf(_("\nDeveloper options:\n"));
|
||||||
|
printf(_(" -f s|i|n|m|h forbid use of some plan types\n"));
|
||||||
|
printf(_(" -n do not reinitialize shared memory after abnormal exit\n"));
|
||||||
|
printf(_(" -O allow system table structure changes\n"));
|
||||||
|
printf(_(" -P disable system indexes\n"));
|
||||||
|
printf(_(" -t pa|pl|ex show timings after each query\n"));
|
||||||
|
printf(_(" -T send SIGSTOP to all backend servers if one dies\n"));
|
||||||
|
printf(_(" -W NUM wait NUM seconds to allow attach from a debugger\n"));
|
||||||
|
|
||||||
|
printf(_("\nOptions for single-user mode:\n"));
|
||||||
|
printf(_(" --single selects single-user mode (must be first argument)\n"));
|
||||||
|
printf(_(" DBNAME database name (defaults to user name)\n"));
|
||||||
|
printf(_(" -d 0-5 override debugging level\n"));
|
||||||
|
printf(_(" -E echo statement before execution\n"));
|
||||||
|
printf(_(" -j do not use newline as interactive query delimiter\n"));
|
||||||
|
printf(_(" -r FILENAME send stdout and stderr to given file\n"));
|
||||||
|
|
||||||
|
printf(_("\nOptions for bootstrapping mode:\n"));
|
||||||
|
printf(_(" --boot selects bootstrapping mode (must be first argument)\n"));
|
||||||
|
printf(_(" DBNAME database name (mandatory argument in bootstrapping mode)\n"));
|
||||||
|
printf(_(" -r FILENAME send stdout and stderr to given file\n"));
|
||||||
|
printf(_(" -x NUM internal use\n"));
|
||||||
|
|
||||||
|
printf(_("\nPlease read the documentation for the complete list of run-time\n"
|
||||||
|
"configuration settings and how to set them on the command line or in\n"
|
||||||
|
"the configuration file.\n\n"
|
||||||
|
"Report bugs to <pgsql-bugs@postgresql.org>.\n"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
check_root(const char *progname)
|
||||||
|
{
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
|
if (geteuid() == 0)
|
||||||
|
{
|
||||||
|
write_stderr("\"root\" execution of the PostgreSQL server is not permitted.\n"
|
||||||
|
"The server must be started under an unprivileged user ID to prevent\n"
|
||||||
|
"possible system security compromise. See the documentation for\n"
|
||||||
|
"more information on how to properly start the server.\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Also make sure that real and effective uids are the same.
|
||||||
|
* Executing as a setuid program from a root shell is a security
|
||||||
|
* hole, since on many platforms a nefarious subroutine could
|
||||||
|
* setuid back to root if real uid is root. (Since nobody
|
||||||
|
* actually uses postgres as a setuid program, trying to
|
||||||
|
* actively fix this situation seems more trouble than it's worth;
|
||||||
|
* we'll just expend the effort to check for it.)
|
||||||
|
*/
|
||||||
|
if (getuid() != geteuid())
|
||||||
|
{
|
||||||
|
write_stderr("%s: real and effective user IDs must match\n",
|
||||||
|
progname);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
#else /* WIN32 */
|
||||||
|
if (pgwin32_is_admin())
|
||||||
|
{
|
||||||
|
write_stderr("Execution of PostgreSQL by a user with administrative permissions is not\n"
|
||||||
|
"permitted.\n"
|
||||||
|
"The server must be started under an unprivileged user ID to prevent\n"
|
||||||
|
"possible system security compromises. See the documentation for\n"
|
||||||
|
"more information on how to properly start the server.\n");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
#endif /* WIN32 */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static char *
|
||||||
|
get_current_username(const char *progname)
|
||||||
|
{
|
||||||
|
#ifndef WIN32
|
||||||
|
struct passwd *pw;
|
||||||
|
|
||||||
pw = getpwuid(geteuid());
|
pw = getpwuid(geteuid());
|
||||||
if (pw == NULL)
|
if (pw == NULL)
|
||||||
{
|
{
|
||||||
write_stderr("%s: invalid effective UID: %d\n",
|
write_stderr("%s: invalid effective UID: %d\n",
|
||||||
argv[0], (int) geteuid());
|
progname, (int) geteuid());
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
/* Allocate new memory because later getpwuid() calls can overwrite it */
|
/* Allocate new memory because later getpwuid() calls can overwrite it. */
|
||||||
pw_name_persist = strdup(pw->pw_name);
|
return strdup(pw->pw_name);
|
||||||
#else
|
#else
|
||||||
|
long namesize = 256 /* UNLEN */ + 1;
|
||||||
|
char *name;
|
||||||
|
|
||||||
|
name = malloc(namesize);
|
||||||
|
if (!GetUserName(name, &namesize))
|
||||||
{
|
{
|
||||||
long namesize = 256 /* UNLEN */ + 1;
|
write_stderr("%s: could not determine user name (GetUserName failed)\n",
|
||||||
|
progname);
|
||||||
pw_name_persist = malloc(namesize);
|
exit(1);
|
||||||
if (!GetUserName(pw_name_persist, &namesize))
|
|
||||||
{
|
|
||||||
write_stderr("%s: could not determine user name (GetUserName failed)\n",
|
|
||||||
argv[0]);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif /* WIN32 */
|
|
||||||
|
|
||||||
exit(PostgresMain(argc, argv, pw_name_persist));
|
return name;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.19 2006/05/19 15:15:37 alvherre Exp $
|
* $PostgreSQL: pgsql/src/backend/postmaster/autovacuum.c,v 1.20 2006/06/18 15:38:37 petere Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -208,7 +208,7 @@ autovac_forkexec(void)
|
||||||
int ac = 0;
|
int ac = 0;
|
||||||
|
|
||||||
av[ac++] = "postgres";
|
av[ac++] = "postgres";
|
||||||
av[ac++] = "-forkautovac";
|
av[ac++] = "--forkautovac";
|
||||||
av[ac++] = NULL; /* filled in by postmaster_forkexec */
|
av[ac++] = NULL; /* filled in by postmaster_forkexec */
|
||||||
av[ac] = NULL;
|
av[ac] = NULL;
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.22 2006/05/30 17:08:14 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.23 2006/06/18 15:38:37 petere Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -197,7 +197,7 @@ pgarch_forkexec(void)
|
||||||
|
|
||||||
av[ac++] = "postgres";
|
av[ac++] = "postgres";
|
||||||
|
|
||||||
av[ac++] = "-forkarch";
|
av[ac++] = "--forkarch";
|
||||||
|
|
||||||
av[ac++] = NULL; /* filled in by postmaster_forkexec */
|
av[ac++] = NULL; /* filled in by postmaster_forkexec */
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
*
|
*
|
||||||
* Copyright (c) 2001-2006, PostgreSQL Global Development Group
|
* Copyright (c) 2001-2006, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.127 2006/05/30 02:35:39 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.128 2006/06/18 15:38:37 petere Exp $
|
||||||
* ----------
|
* ----------
|
||||||
*/
|
*/
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
@ -491,11 +491,11 @@ pgstat_forkexec(STATS_PROCESS_TYPE procType)
|
||||||
switch (procType)
|
switch (procType)
|
||||||
{
|
{
|
||||||
case STAT_PROC_BUFFER:
|
case STAT_PROC_BUFFER:
|
||||||
av[ac++] = "-forkbuf";
|
av[ac++] = "--forkbuf";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case STAT_PROC_COLLECTOR:
|
case STAT_PROC_COLLECTOR:
|
||||||
av[ac++] = "-forkcol";
|
av[ac++] = "--forkcol";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.485 2006/06/07 22:24:44 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/postmaster/postmaster.c,v 1.486 2006/06/18 15:38:37 petere Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
*
|
*
|
||||||
|
@ -266,7 +266,6 @@ static void LogChildExit(int lev, const char *procname,
|
||||||
static void BackendInitialize(Port *port);
|
static void BackendInitialize(Port *port);
|
||||||
static int BackendRun(Port *port);
|
static int BackendRun(Port *port);
|
||||||
static void ExitPostmaster(int status);
|
static void ExitPostmaster(int status);
|
||||||
static void usage(const char *);
|
|
||||||
static int ServerLoop(void);
|
static int ServerLoop(void);
|
||||||
static int BackendStartup(Port *port);
|
static int BackendStartup(Port *port);
|
||||||
static int ProcessStartupPacket(Port *port, bool SSLdone);
|
static int ProcessStartupPacket(Port *port, bool SSLdone);
|
||||||
|
@ -384,29 +383,6 @@ PostmasterMain(int argc, char *argv[])
|
||||||
|
|
||||||
IsPostmasterEnvironment = true;
|
IsPostmasterEnvironment = true;
|
||||||
|
|
||||||
/*
|
|
||||||
* Catch standard options before doing much else. This even works on
|
|
||||||
* systems without getopt_long.
|
|
||||||
*/
|
|
||||||
if (argc > 1)
|
|
||||||
{
|
|
||||||
if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
|
|
||||||
{
|
|
||||||
usage(progname);
|
|
||||||
ExitPostmaster(0);
|
|
||||||
}
|
|
||||||
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
|
|
||||||
{
|
|
||||||
puts("postmaster (PostgreSQL) " PG_VERSION);
|
|
||||||
ExitPostmaster(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
/* Start our win32 signal implementation */
|
|
||||||
pgwin32_signal_initialize();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* for security, no dir or file created can be group or other accessible
|
* for security, no dir or file created can be group or other accessible
|
||||||
*/
|
*/
|
||||||
|
@ -1133,55 +1109,6 @@ pmdaemonize(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Print out help message
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
usage(const char *progname)
|
|
||||||
{
|
|
||||||
printf(_("%s is the PostgreSQL server.\n\n"), progname);
|
|
||||||
printf(_("Usage:\n %s [OPTION]...\n\n"), progname);
|
|
||||||
printf(_("Options:\n"));
|
|
||||||
#ifdef USE_ASSERT_CHECKING
|
|
||||||
printf(_(" -A 1|0 enable/disable run-time assert checking\n"));
|
|
||||||
#endif
|
|
||||||
printf(_(" -B NBUFFERS number of shared buffers\n"));
|
|
||||||
printf(_(" -c NAME=VALUE set run-time parameter\n"));
|
|
||||||
printf(_(" -d 1-5 debugging level\n"));
|
|
||||||
printf(_(" -D DATADIR database directory\n"));
|
|
||||||
printf(_(" -e use European date input format (DMY)\n"));
|
|
||||||
printf(_(" -F turn fsync off\n"));
|
|
||||||
printf(_(" -h HOSTNAME host name or IP address to listen on\n"));
|
|
||||||
printf(_(" -i enable TCP/IP connections\n"));
|
|
||||||
printf(_(" -k DIRECTORY Unix-domain socket location\n"));
|
|
||||||
#ifdef USE_SSL
|
|
||||||
printf(_(" -l enable SSL connections\n"));
|
|
||||||
#endif
|
|
||||||
printf(_(" -N MAX-CONNECT maximum number of allowed connections\n"));
|
|
||||||
printf(_(" -o OPTIONS pass \"OPTIONS\" to each server process (obsolete)\n"));
|
|
||||||
printf(_(" -p PORT port number to listen on\n"));
|
|
||||||
printf(_(" -s show statistics after each query\n"));
|
|
||||||
printf(_(" -S WORK-MEM set amount of memory for sorts (in kB)\n"));
|
|
||||||
printf(_(" --NAME=VALUE set run-time parameter\n"));
|
|
||||||
printf(_(" --help show this help, then exit\n"));
|
|
||||||
printf(_(" --version output version information, then exit\n"));
|
|
||||||
|
|
||||||
printf(_("\nDeveloper options:\n"));
|
|
||||||
printf(_(" -f s|i|n|m|h forbid use of some plan types\n"));
|
|
||||||
printf(_(" -n do not reinitialize shared memory after abnormal exit\n"));
|
|
||||||
printf(_(" -O allow system table structure changes\n"));
|
|
||||||
printf(_(" -P disable system indexes\n"));
|
|
||||||
printf(_(" -t pa|pl|ex show timings after each query\n"));
|
|
||||||
printf(_(" -T send SIGSTOP to all backend servers if one dies\n"));
|
|
||||||
printf(_(" -W NUM wait NUM seconds to allow attach from a debugger\n"));
|
|
||||||
|
|
||||||
printf(_("\nPlease read the documentation for the complete list of run-time\n"
|
|
||||||
"configuration settings and how to set them on the command line or in\n"
|
|
||||||
"the configuration file.\n\n"
|
|
||||||
"Report bugs to <pgsql-bugs@postgresql.org>.\n"));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Main idle loop of postmaster
|
* Main idle loop of postmaster
|
||||||
*/
|
*/
|
||||||
|
@ -2957,7 +2884,7 @@ backend_forkexec(Port *port)
|
||||||
int ac = 0;
|
int ac = 0;
|
||||||
|
|
||||||
av[ac++] = "postgres";
|
av[ac++] = "postgres";
|
||||||
av[ac++] = "-forkbackend";
|
av[ac++] = "--forkbackend";
|
||||||
av[ac++] = NULL; /* filled in by internal_forkexec */
|
av[ac++] = NULL; /* filled in by internal_forkexec */
|
||||||
|
|
||||||
av[ac] = NULL;
|
av[ac] = NULL;
|
||||||
|
@ -3030,10 +2957,10 @@ internal_forkexec(int argc, char *argv[], Port *port)
|
||||||
/* Make sure caller set up argv properly */
|
/* Make sure caller set up argv properly */
|
||||||
Assert(argc >= 3);
|
Assert(argc >= 3);
|
||||||
Assert(argv[argc] == NULL);
|
Assert(argv[argc] == NULL);
|
||||||
Assert(strncmp(argv[1], "-fork", 5) == 0);
|
Assert(strncmp(argv[1], "--fork", 6) == 0);
|
||||||
Assert(argv[2] == NULL);
|
Assert(argv[2] == NULL);
|
||||||
|
|
||||||
/* Insert temp file name after -fork argument */
|
/* Insert temp file name after --fork argument */
|
||||||
argv[2] = tmpfilename;
|
argv[2] = tmpfilename;
|
||||||
|
|
||||||
/* Fire off execv in child */
|
/* Fire off execv in child */
|
||||||
|
@ -3081,7 +3008,7 @@ internal_forkexec(int argc, char *argv[], Port *port)
|
||||||
/* Make sure caller set up argv properly */
|
/* Make sure caller set up argv properly */
|
||||||
Assert(argc >= 3);
|
Assert(argc >= 3);
|
||||||
Assert(argv[argc] == NULL);
|
Assert(argv[argc] == NULL);
|
||||||
Assert(strncmp(argv[1], "-fork", 5) == 0);
|
Assert(strncmp(argv[1], "--fork", 6) == 0);
|
||||||
Assert(argv[2] == NULL);
|
Assert(argv[2] == NULL);
|
||||||
|
|
||||||
/* Verify that there is room in the child list */
|
/* Verify that there is room in the child list */
|
||||||
|
@ -3119,7 +3046,7 @@ internal_forkexec(int argc, char *argv[], Port *port)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Insert temp file name after -fork argument */
|
/* Insert temp file name after --fork argument */
|
||||||
sprintf(paramHandleStr, "%lu", (DWORD) paramHandle);
|
sprintf(paramHandleStr, "%lu", (DWORD) paramHandle);
|
||||||
argv[2] = paramHandleStr;
|
argv[2] = paramHandleStr;
|
||||||
|
|
||||||
|
@ -3242,7 +3169,7 @@ internal_forkexec(int argc, char *argv[], Port *port)
|
||||||
* to what it would be if we'd simply forked on Unix, and then
|
* to what it would be if we'd simply forked on Unix, and then
|
||||||
* dispatch to the appropriate place.
|
* dispatch to the appropriate place.
|
||||||
*
|
*
|
||||||
* The first two command line arguments are expected to be "-forkFOO"
|
* The first two command line arguments are expected to be "--forkFOO"
|
||||||
* (where FOO indicates which postmaster child we are to become), and
|
* (where FOO indicates which postmaster child we are to become), and
|
||||||
* the name of a variables file that we can read to load data that would
|
* the name of a variables file that we can read to load data that would
|
||||||
* have been inherited by fork() on Unix. Remaining arguments go to the
|
* have been inherited by fork() on Unix. Remaining arguments go to the
|
||||||
|
@ -3282,9 +3209,9 @@ SubPostmasterMain(int argc, char *argv[])
|
||||||
* to do this before going any further to ensure that we can attach at the
|
* to do this before going any further to ensure that we can attach at the
|
||||||
* same address the postmaster used.
|
* same address the postmaster used.
|
||||||
*/
|
*/
|
||||||
if (strcmp(argv[1], "-forkbackend") == 0 ||
|
if (strcmp(argv[1], "--forkbackend") == 0 ||
|
||||||
strcmp(argv[1], "-forkautovac") == 0 ||
|
strcmp(argv[1], "--forkautovac") == 0 ||
|
||||||
strcmp(argv[1], "-forkboot") == 0)
|
strcmp(argv[1], "--forkboot") == 0)
|
||||||
PGSharedMemoryReAttach();
|
PGSharedMemoryReAttach();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -3304,7 +3231,7 @@ SubPostmasterMain(int argc, char *argv[])
|
||||||
read_nondefault_variables();
|
read_nondefault_variables();
|
||||||
|
|
||||||
/* Run backend or appropriate child */
|
/* Run backend or appropriate child */
|
||||||
if (strcmp(argv[1], "-forkbackend") == 0)
|
if (strcmp(argv[1], "--forkbackend") == 0)
|
||||||
{
|
{
|
||||||
Assert(argc == 3); /* shouldn't be any more args */
|
Assert(argc == 3); /* shouldn't be any more args */
|
||||||
|
|
||||||
|
@ -3356,7 +3283,7 @@ SubPostmasterMain(int argc, char *argv[])
|
||||||
/* And run the backend */
|
/* And run the backend */
|
||||||
proc_exit(BackendRun(&port));
|
proc_exit(BackendRun(&port));
|
||||||
}
|
}
|
||||||
if (strcmp(argv[1], "-forkboot") == 0)
|
if (strcmp(argv[1], "--forkboot") == 0)
|
||||||
{
|
{
|
||||||
/* Close the postmaster's sockets */
|
/* Close the postmaster's sockets */
|
||||||
ClosePostmasterPorts(false);
|
ClosePostmasterPorts(false);
|
||||||
|
@ -3373,7 +3300,7 @@ SubPostmasterMain(int argc, char *argv[])
|
||||||
BootstrapMain(argc - 2, argv + 2);
|
BootstrapMain(argc - 2, argv + 2);
|
||||||
proc_exit(0);
|
proc_exit(0);
|
||||||
}
|
}
|
||||||
if (strcmp(argv[1], "-forkautovac") == 0)
|
if (strcmp(argv[1], "--forkautovac") == 0)
|
||||||
{
|
{
|
||||||
/* Close the postmaster's sockets */
|
/* Close the postmaster's sockets */
|
||||||
ClosePostmasterPorts(false);
|
ClosePostmasterPorts(false);
|
||||||
|
@ -3390,7 +3317,7 @@ SubPostmasterMain(int argc, char *argv[])
|
||||||
AutoVacMain(argc - 2, argv + 2);
|
AutoVacMain(argc - 2, argv + 2);
|
||||||
proc_exit(0);
|
proc_exit(0);
|
||||||
}
|
}
|
||||||
if (strcmp(argv[1], "-forkarch") == 0)
|
if (strcmp(argv[1], "--forkarch") == 0)
|
||||||
{
|
{
|
||||||
/* Close the postmaster's sockets */
|
/* Close the postmaster's sockets */
|
||||||
ClosePostmasterPorts(false);
|
ClosePostmasterPorts(false);
|
||||||
|
@ -3400,7 +3327,7 @@ SubPostmasterMain(int argc, char *argv[])
|
||||||
PgArchiverMain(argc, argv);
|
PgArchiverMain(argc, argv);
|
||||||
proc_exit(0);
|
proc_exit(0);
|
||||||
}
|
}
|
||||||
if (strcmp(argv[1], "-forkbuf") == 0)
|
if (strcmp(argv[1], "--forkbuf") == 0)
|
||||||
{
|
{
|
||||||
/* Close the postmaster's sockets */
|
/* Close the postmaster's sockets */
|
||||||
ClosePostmasterPorts(false);
|
ClosePostmasterPorts(false);
|
||||||
|
@ -3410,7 +3337,7 @@ SubPostmasterMain(int argc, char *argv[])
|
||||||
PgstatBufferMain(argc, argv);
|
PgstatBufferMain(argc, argv);
|
||||||
proc_exit(0);
|
proc_exit(0);
|
||||||
}
|
}
|
||||||
if (strcmp(argv[1], "-forkcol") == 0)
|
if (strcmp(argv[1], "--forkcol") == 0)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Do NOT close postmaster sockets here, because we are forking from
|
* Do NOT close postmaster sockets here, because we are forking from
|
||||||
|
@ -3422,7 +3349,7 @@ SubPostmasterMain(int argc, char *argv[])
|
||||||
PgstatCollectorMain(argc, argv);
|
PgstatCollectorMain(argc, argv);
|
||||||
proc_exit(0);
|
proc_exit(0);
|
||||||
}
|
}
|
||||||
if (strcmp(argv[1], "-forklog") == 0)
|
if (strcmp(argv[1], "--forklog") == 0)
|
||||||
{
|
{
|
||||||
/* Close the postmaster's sockets */
|
/* Close the postmaster's sockets */
|
||||||
ClosePostmasterPorts(true);
|
ClosePostmasterPorts(true);
|
||||||
|
@ -3635,7 +3562,7 @@ StartChildProcess(int xlop)
|
||||||
av[ac++] = "postgres";
|
av[ac++] = "postgres";
|
||||||
|
|
||||||
#ifdef EXEC_BACKEND
|
#ifdef EXEC_BACKEND
|
||||||
av[ac++] = "-forkboot";
|
av[ac++] = "--forkboot";
|
||||||
av[ac++] = NULL; /* filled in by postmaster_forkexec */
|
av[ac++] = NULL; /* filled in by postmaster_forkexec */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.24 2006/06/07 22:24:44 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/postmaster/syslogger.c,v 1.25 2006/06/18 15:38:37 petere Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -534,7 +534,7 @@ syslogger_forkexec(void)
|
||||||
char numbuf[2][32];
|
char numbuf[2][32];
|
||||||
|
|
||||||
av[ac++] = "postgres";
|
av[ac++] = "postgres";
|
||||||
av[ac++] = "-forklog";
|
av[ac++] = "--forklog";
|
||||||
av[ac++] = NULL; /* filled in by postmaster_forkexec */
|
av[ac++] = NULL; /* filled in by postmaster_forkexec */
|
||||||
|
|
||||||
/* static variables (those not passed by write_backend_variables) */
|
/* static variables (those not passed by write_backend_variables) */
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.487 2006/06/11 15:49:28 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.488 2006/06/18 15:38:37 petere Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* this is the "main" module of the postgres backend and
|
* this is the "main" module of the postgres backend and
|
||||||
|
@ -2399,41 +2399,6 @@ assign_max_stack_depth(int newval, bool doit, GucSource source)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
usage(const char *progname)
|
|
||||||
{
|
|
||||||
printf(_("%s is the PostgreSQL stand-alone backend. It is not\nintended to be used by normal users.\n\n"), progname);
|
|
||||||
|
|
||||||
printf(_("Usage:\n %s [OPTION]... DBNAME\n\n"), progname);
|
|
||||||
printf(_("Options:\n"));
|
|
||||||
#ifdef USE_ASSERT_CHECKING
|
|
||||||
printf(_(" -A 1|0 enable/disable run-time assert checking\n"));
|
|
||||||
#endif
|
|
||||||
printf(_(" -B NBUFFERS number of shared buffers\n"));
|
|
||||||
printf(_(" -c NAME=VALUE set run-time parameter\n"));
|
|
||||||
printf(_(" -d 0-5 debugging level\n"));
|
|
||||||
printf(_(" -D DATADIR database directory\n"));
|
|
||||||
printf(_(" -e use European date input format (DMY)\n"));
|
|
||||||
printf(_(" -E echo statement before execution\n"));
|
|
||||||
printf(_(" -F turn fsync off\n"));
|
|
||||||
printf(_(" -j do not use newline as interactive query delimiter\n"));
|
|
||||||
printf(_(" -r FILENAME send stdout and stderr to given file\n"));
|
|
||||||
printf(_(" -s show statistics after each query\n"));
|
|
||||||
printf(_(" -S WORK-MEM set amount of memory for sorts (in kB)\n"));
|
|
||||||
printf(_(" --NAME=VALUE set run-time parameter\n"));
|
|
||||||
printf(_(" --describe-config describe configuration parameters, then exit\n"));
|
|
||||||
printf(_(" --help show this help, then exit\n"));
|
|
||||||
printf(_(" --version output version information, then exit\n"));
|
|
||||||
printf(_("\nDeveloper options:\n"));
|
|
||||||
printf(_(" -f s|i|n|m|h forbid use of some plan types\n"));
|
|
||||||
printf(_(" -O allow system table structure changes\n"));
|
|
||||||
printf(_(" -P disable system indexes\n"));
|
|
||||||
printf(_(" -t pa|pl|ex show timings after each query\n"));
|
|
||||||
printf(_(" -W NUM wait NUM seconds to allow attach from a debugger\n"));
|
|
||||||
printf(_("\nReport bugs to <pgsql-bugs@postgresql.org>.\n"));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* set_debug_options --- apply "-d N" command line option
|
* set_debug_options --- apply "-d N" command line option
|
||||||
*
|
*
|
||||||
|
@ -2563,24 +2528,6 @@ PostgresMain(int argc, char *argv[], const char *username)
|
||||||
(guc_names = lappend(guc_names, pstrdup(name)), \
|
(guc_names = lappend(guc_names, pstrdup(name)), \
|
||||||
guc_values = lappend(guc_values, pstrdup(val)))
|
guc_values = lappend(guc_values, pstrdup(val)))
|
||||||
|
|
||||||
/*
|
|
||||||
* Catch standard options before doing much else. This even works on
|
|
||||||
* systems without getopt_long.
|
|
||||||
*/
|
|
||||||
if (!IsUnderPostmaster && argc > 1)
|
|
||||||
{
|
|
||||||
if (strcmp(argv[1], "--help") == 0 || strcmp(argv[1], "-?") == 0)
|
|
||||||
{
|
|
||||||
usage(argv[0]);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
if (strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0)
|
|
||||||
{
|
|
||||||
puts(PG_VERSIONSTR);
|
|
||||||
exit(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* initialize globals (already done if under postmaster, but not if
|
* initialize globals (already done if under postmaster, but not if
|
||||||
* standalone; cheap enough to do over)
|
* standalone; cheap enough to do over)
|
||||||
|
@ -2638,6 +2585,13 @@ PostgresMain(int argc, char *argv[], const char *username)
|
||||||
* ----------------
|
* ----------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Ignore the initial --single argument, if present */
|
||||||
|
if (argc > 1 && strcmp(argv[1], "--single") == 0)
|
||||||
|
{
|
||||||
|
argv++;
|
||||||
|
argc--;
|
||||||
|
}
|
||||||
|
|
||||||
/* all options are allowed until '-p' */
|
/* all options are allowed until '-p' */
|
||||||
secure = true;
|
secure = true;
|
||||||
ctx = PGC_POSTMASTER;
|
ctx = PGC_POSTMASTER;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* initdb creates (initializes) a PostgreSQL database cluster (site,
|
* initdb creates (initializes) a PostgreSQL database cluster (site,
|
||||||
* instance, installation, whatever). A database cluster is a
|
* instance, installation, whatever). A database cluster is a
|
||||||
* collection of PostgreSQL databases all managed by the same postmaster.
|
* collection of PostgreSQL databases all managed by the same server.
|
||||||
*
|
*
|
||||||
* To create the database cluster, we create the directory that contains
|
* To create the database cluster, we create the directory that contains
|
||||||
* all its data, create the files that hold the global tables, create
|
* all its data, create the files that hold the global tables, create
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
* Portions taken from FreeBSD.
|
* Portions taken from FreeBSD.
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.117 2006/06/07 22:24:44 momjian Exp $
|
* $PostgreSQL: pgsql/src/bin/initdb/initdb.c,v 1.118 2006/06/18 15:38:37 petere Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -140,7 +140,7 @@ static char *authwarning = NULL;
|
||||||
* (no quoting to worry about).
|
* (no quoting to worry about).
|
||||||
*/
|
*/
|
||||||
static const char *boot_options = "-F";
|
static const char *boot_options = "-F";
|
||||||
static const char *backend_options = "-F -O -c search_path=pg_catalog -c exit_on_error=true";
|
static const char *backend_options = "--single -F -O -c search_path=pg_catalog -c exit_on_error=true";
|
||||||
|
|
||||||
|
|
||||||
/* path to 'initdb' binary directory */
|
/* path to 'initdb' binary directory */
|
||||||
|
@ -1138,7 +1138,7 @@ test_config_settings(void)
|
||||||
test_max_fsm = FSM_FOR_BUFS(test_buffs);
|
test_max_fsm = FSM_FOR_BUFS(test_buffs);
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
"%s\"%s\" -boot -x0 %s "
|
"%s\"%s\" --boot -x0 %s "
|
||||||
"-c max_connections=%d "
|
"-c max_connections=%d "
|
||||||
"-c shared_buffers=%d "
|
"-c shared_buffers=%d "
|
||||||
"-c max_fsm_pages=%d "
|
"-c max_fsm_pages=%d "
|
||||||
|
@ -1173,7 +1173,7 @@ test_config_settings(void)
|
||||||
test_max_fsm = FSM_FOR_BUFS(test_buffs);
|
test_max_fsm = FSM_FOR_BUFS(test_buffs);
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
"%s\"%s\" -boot -x0 %s "
|
"%s\"%s\" --boot -x0 %s "
|
||||||
"-c max_connections=%d "
|
"-c max_connections=%d "
|
||||||
"-c shared_buffers=%d "
|
"-c shared_buffers=%d "
|
||||||
"-c max_fsm_pages=%d "
|
"-c max_fsm_pages=%d "
|
||||||
|
@ -1402,7 +1402,7 @@ bootstrap_template1(char *short_version)
|
||||||
unsetenv("PGCLIENTENCODING");
|
unsetenv("PGCLIENTENCODING");
|
||||||
|
|
||||||
snprintf(cmd, sizeof(cmd),
|
snprintf(cmd, sizeof(cmd),
|
||||||
"\"%s\" -boot -x1 %s %s template1",
|
"\"%s\" --boot -x1 %s %s template1",
|
||||||
backend_exec, boot_options, talkargs);
|
backend_exec, boot_options, talkargs);
|
||||||
|
|
||||||
PG_CMD_OPEN;
|
PG_CMD_OPEN;
|
||||||
|
@ -2963,7 +2963,7 @@ main(int argc, char *argv[])
|
||||||
get_parent_directory(bin_dir);
|
get_parent_directory(bin_dir);
|
||||||
|
|
||||||
printf(_("\nSuccess. You can now start the database server using:\n\n"
|
printf(_("\nSuccess. You can now start the database server using:\n\n"
|
||||||
" %s%s%spostmaster%s -D %s%s%s\n"
|
" %s%s%spostgres%s -D %s%s%s\n"
|
||||||
"or\n"
|
"or\n"
|
||||||
" %s%s%spg_ctl%s -D %s%s%s -l logfile start\n\n"),
|
" %s%s%spg_ctl%s -D %s%s%s -l logfile start\n\n"),
|
||||||
QUOTE_PATH, bin_dir, (strlen(bin_dir) > 0) ? DIR_SEP : "", QUOTE_PATH,
|
QUOTE_PATH, bin_dir, (strlen(bin_dir) > 0) ? DIR_SEP : "", QUOTE_PATH,
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
*
|
*
|
||||||
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.68 2006/06/07 22:24:44 momjian Exp $
|
* $PostgreSQL: pgsql/src/bin/pg_ctl/pg_ctl.c,v 1.69 2006/06/18 15:38:37 petere Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
@ -46,8 +46,8 @@ typedef long pgpid_t;
|
||||||
|
|
||||||
#define WHITESPACE "\f\n\r\t\v" /* as defined by isspace() */
|
#define WHITESPACE "\f\n\r\t\v" /* as defined by isspace() */
|
||||||
|
|
||||||
/* postmaster version ident string */
|
/* postgres version ident string */
|
||||||
#define PM_VERSIONSTR "postmaster (PostgreSQL) " PG_VERSION "\n"
|
#define PM_VERSIONSTR "postgres (PostgreSQL) " PG_VERSION "\n"
|
||||||
|
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
|
@ -487,8 +487,8 @@ do_start(void)
|
||||||
{
|
{
|
||||||
old_pid = get_pgpid();
|
old_pid = get_pgpid();
|
||||||
if (old_pid != 0)
|
if (old_pid != 0)
|
||||||
write_stderr(_("%s: another postmaster may be running; "
|
write_stderr(_("%s: another server may be running; "
|
||||||
"trying to start postmaster anyway\n"),
|
"trying to start server anyway\n"),
|
||||||
progname);
|
progname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -553,7 +553,7 @@ do_start(void)
|
||||||
|
|
||||||
postmaster_path = pg_malloc(MAXPGPATH);
|
postmaster_path = pg_malloc(MAXPGPATH);
|
||||||
|
|
||||||
if ((ret = find_other_exec(argv0, "postmaster", PM_VERSIONSTR,
|
if ((ret = find_other_exec(argv0, "postgres", PM_VERSIONSTR,
|
||||||
postmaster_path)) < 0)
|
postmaster_path)) < 0)
|
||||||
{
|
{
|
||||||
char full_path[MAXPGPATH];
|
char full_path[MAXPGPATH];
|
||||||
|
@ -562,13 +562,13 @@ do_start(void)
|
||||||
StrNCpy(full_path, progname, MAXPGPATH);
|
StrNCpy(full_path, progname, MAXPGPATH);
|
||||||
|
|
||||||
if (ret == -1)
|
if (ret == -1)
|
||||||
write_stderr(_("The program \"postmaster\" is needed by %s "
|
write_stderr(_("The program \"postgres\" is needed by %s "
|
||||||
"but was not found in the\n"
|
"but was not found in the\n"
|
||||||
"same directory as \"%s\".\n"
|
"same directory as \"%s\".\n"
|
||||||
"Check your installation.\n"),
|
"Check your installation.\n"),
|
||||||
progname, full_path);
|
progname, full_path);
|
||||||
else
|
else
|
||||||
write_stderr(_("The program \"postmaster\" was found by \"%s\"\n"
|
write_stderr(_("The program \"postgres\" was found by \"%s\"\n"
|
||||||
"but was not the same version as %s.\n"
|
"but was not the same version as %s.\n"
|
||||||
"Check your installation.\n"),
|
"Check your installation.\n"),
|
||||||
full_path, progname);
|
full_path, progname);
|
||||||
|
@ -580,7 +580,7 @@ do_start(void)
|
||||||
exitcode = start_postmaster();
|
exitcode = start_postmaster();
|
||||||
if (exitcode != 0)
|
if (exitcode != 0)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not start postmaster: exit code was %d\n"),
|
write_stderr(_("%s: could not start server: exit code was %d\n"),
|
||||||
progname, exitcode);
|
progname, exitcode);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -591,7 +591,7 @@ do_start(void)
|
||||||
pid = get_pgpid();
|
pid = get_pgpid();
|
||||||
if (pid == old_pid)
|
if (pid == old_pid)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not start postmaster\n"
|
write_stderr(_("%s: could not start server\n"
|
||||||
"Examine the log output.\n"),
|
"Examine the log output.\n"),
|
||||||
progname);
|
progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -600,21 +600,21 @@ do_start(void)
|
||||||
|
|
||||||
if (do_wait)
|
if (do_wait)
|
||||||
{
|
{
|
||||||
print_msg(_("waiting for postmaster to start..."));
|
print_msg(_("waiting for server to start..."));
|
||||||
|
|
||||||
if (test_postmaster_connection() == false)
|
if (test_postmaster_connection() == false)
|
||||||
{
|
{
|
||||||
printf(_("could not start postmaster\n"));
|
printf(_("could not start server\n"));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print_msg(_(" done\n"));
|
print_msg(_(" done\n"));
|
||||||
print_msg(_("postmaster started\n"));
|
print_msg(_("server started\n"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
print_msg(_("postmaster starting\n"));
|
print_msg(_("server starting\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -629,14 +629,14 @@ do_stop(void)
|
||||||
if (pid == 0) /* no pid file */
|
if (pid == 0) /* no pid file */
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: PID file \"%s\" does not exist\n"), progname, pid_file);
|
write_stderr(_("%s: PID file \"%s\" does not exist\n"), progname, pid_file);
|
||||||
write_stderr(_("Is postmaster running?\n"));
|
write_stderr(_("Is server running?\n"));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
else if (pid < 0) /* standalone backend, not postmaster */
|
else if (pid < 0) /* standalone backend, not postmaster */
|
||||||
{
|
{
|
||||||
pid = -pid;
|
pid = -pid;
|
||||||
write_stderr(_("%s: cannot stop postmaster; "
|
write_stderr(_("%s: cannot stop server; "
|
||||||
"postgres is running (PID: %ld)\n"),
|
"single-user server is running (PID: %ld)\n"),
|
||||||
progname, pid);
|
progname, pid);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -650,12 +650,12 @@ do_stop(void)
|
||||||
|
|
||||||
if (!do_wait)
|
if (!do_wait)
|
||||||
{
|
{
|
||||||
print_msg(_("postmaster shutting down\n"));
|
print_msg(_("server shutting down\n"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print_msg(_("waiting for postmaster to shut down..."));
|
print_msg(_("waiting for server to shut down..."));
|
||||||
|
|
||||||
for (cnt = 0; cnt < wait_seconds; cnt++)
|
for (cnt = 0; cnt < wait_seconds; cnt++)
|
||||||
{
|
{
|
||||||
|
@ -672,12 +672,12 @@ do_stop(void)
|
||||||
{
|
{
|
||||||
print_msg(_(" failed\n"));
|
print_msg(_(" failed\n"));
|
||||||
|
|
||||||
write_stderr(_("%s: postmaster does not shut down\n"), progname);
|
write_stderr(_("%s: server does not shut down\n"), progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
print_msg(_(" done\n"));
|
print_msg(_(" done\n"));
|
||||||
|
|
||||||
printf(_("postmaster stopped\n"));
|
printf(_("server stopped\n"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -698,8 +698,8 @@ do_restart(void)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: PID file \"%s\" does not exist\n"),
|
write_stderr(_("%s: PID file \"%s\" does not exist\n"),
|
||||||
progname, pid_file);
|
progname, pid_file);
|
||||||
write_stderr(_("Is postmaster running?\n"));
|
write_stderr(_("Is server running?\n"));
|
||||||
write_stderr(_("starting postmaster anyway\n"));
|
write_stderr(_("starting server anyway\n"));
|
||||||
do_start();
|
do_start();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -708,10 +708,10 @@ do_restart(void)
|
||||||
pid = -pid;
|
pid = -pid;
|
||||||
if (postmaster_is_alive((pid_t) pid))
|
if (postmaster_is_alive((pid_t) pid))
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: cannot restart postmaster; "
|
write_stderr(_("%s: cannot restart server; "
|
||||||
"postgres is running (PID: %ld)\n"),
|
"single-user server is running (PID: %ld)\n"),
|
||||||
progname, pid);
|
progname, pid);
|
||||||
write_stderr(_("Please terminate postgres and try again.\n"));
|
write_stderr(_("Please terminate the single-user server and try again.\n"));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -725,7 +725,7 @@ do_restart(void)
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
print_msg(_("waiting for postmaster to shut down..."));
|
print_msg(_("waiting for server to shut down..."));
|
||||||
|
|
||||||
/* always wait for restart */
|
/* always wait for restart */
|
||||||
|
|
||||||
|
@ -744,18 +744,18 @@ do_restart(void)
|
||||||
{
|
{
|
||||||
print_msg(_(" failed\n"));
|
print_msg(_(" failed\n"));
|
||||||
|
|
||||||
write_stderr(_("%s: postmaster does not shut down\n"), progname);
|
write_stderr(_("%s: server does not shut down\n"), progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
print_msg(_(" done\n"));
|
print_msg(_(" done\n"));
|
||||||
printf(_("postmaster stopped\n"));
|
printf(_("server stopped\n"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: old postmaster process (PID: %ld) seems to be gone\n"),
|
write_stderr(_("%s: old server process (PID: %ld) seems to be gone\n"),
|
||||||
progname, pid);
|
progname, pid);
|
||||||
write_stderr(_("starting postmaster anyway\n"));
|
write_stderr(_("starting server anyway\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
do_start();
|
do_start();
|
||||||
|
@ -771,16 +771,16 @@ do_reload(void)
|
||||||
if (pid == 0) /* no pid file */
|
if (pid == 0) /* no pid file */
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: PID file \"%s\" does not exist\n"), progname, pid_file);
|
write_stderr(_("%s: PID file \"%s\" does not exist\n"), progname, pid_file);
|
||||||
write_stderr(_("Is postmaster running?\n"));
|
write_stderr(_("Is server running?\n"));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
else if (pid < 0) /* standalone backend, not postmaster */
|
else if (pid < 0) /* standalone backend, not postmaster */
|
||||||
{
|
{
|
||||||
pid = -pid;
|
pid = -pid;
|
||||||
write_stderr(_("%s: cannot reload postmaster; "
|
write_stderr(_("%s: cannot reload server; "
|
||||||
"postgres is running (PID: %ld)\n"),
|
"single-user server is running (PID: %ld)\n"),
|
||||||
progname, pid);
|
progname, pid);
|
||||||
write_stderr(_("Please terminate postgres and try again.\n"));
|
write_stderr(_("Please terminate the single-user server and try again.\n"));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -791,7 +791,7 @@ do_reload(void)
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
print_msg(_("postmaster signaled\n"));
|
print_msg(_("server signaled\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -835,7 +835,7 @@ do_status(void)
|
||||||
pid = -pid;
|
pid = -pid;
|
||||||
if (postmaster_is_alive((pid_t) pid))
|
if (postmaster_is_alive((pid_t) pid))
|
||||||
{
|
{
|
||||||
printf(_("%s: a standalone backend \"postgres\" is running (PID: %ld)\n"),
|
printf(_("%s: single-user server is running (PID: %ld)\n"),
|
||||||
progname, pid);
|
progname, pid);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -847,7 +847,7 @@ do_status(void)
|
||||||
{
|
{
|
||||||
char **optlines;
|
char **optlines;
|
||||||
|
|
||||||
printf(_("%s: postmaster is running (PID: %ld)\n"),
|
printf(_("%s: server is running (PID: %ld)\n"),
|
||||||
progname, pid);
|
progname, pid);
|
||||||
|
|
||||||
optlines = readfile(postopts_file);
|
optlines = readfile(postopts_file);
|
||||||
|
@ -858,7 +858,7 @@ do_status(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf(_("%s: neither postmaster nor postgres running\n"), progname);
|
printf(_("%s: no server running\n"), progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -909,10 +909,10 @@ pgwin32_CommandLine(bool registration)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ret = find_other_exec(argv0, "postmaster", PM_VERSIONSTR, cmdLine);
|
ret = find_other_exec(argv0, "postgres", PM_VERSIONSTR, cmdLine);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
{
|
{
|
||||||
write_stderr(_("%s: could not find postmaster program executable\n"), progname);
|
write_stderr(_("%s: could not find postgres program executable\n"), progname);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1373,9 +1373,9 @@ do_help(void)
|
||||||
|
|
||||||
printf(_("\nOptions for start or restart:\n"));
|
printf(_("\nOptions for start or restart:\n"));
|
||||||
printf(_(" -l, --log FILENAME write (or append) server log to FILENAME\n"));
|
printf(_(" -l, --log FILENAME write (or append) server log to FILENAME\n"));
|
||||||
printf(_(" -o OPTIONS command line options to pass to the postmaster\n"
|
printf(_(" -o OPTIONS command line options to pass to postgres\n"
|
||||||
" (PostgreSQL server executable)\n"));
|
" (PostgreSQL server executable)\n"));
|
||||||
printf(_(" -p PATH-TO-POSTMASTER normally not necessary\n"));
|
printf(_(" -p PATH-TO-POSTGRES normally not necessary\n"));
|
||||||
|
|
||||||
printf(_("\nOptions for stop or restart:\n"));
|
printf(_("\nOptions for stop or restart:\n"));
|
||||||
printf(_(" -m SHUTDOWN-MODE may be \"smart\", \"fast\", or \"immediate\"\n"));
|
printf(_(" -m SHUTDOWN-MODE may be \"smart\", \"fast\", or \"immediate\"\n"));
|
||||||
|
|
Loading…
Reference in New Issue