From 726b42abd0bddd7fe593e3b354228970702ff7ca Mon Sep 17 00:00:00 2001 From: Tom Lane <tgl@sss.pgh.pa.us> Date: Mon, 23 Jan 2006 18:16:41 +0000 Subject: [PATCH] Improve wording of descriptions of SIGHUP GUC parameters, as per my suggestion a couple days ago. Fix some cases in which the documentation neglected to mention any restriction on when a parameter can be set. Try to be consistent about calling parameters parameters; use the term option only for command-line switches. --- doc/src/sgml/config.sgml | 346 +++++++++++++++++++++------------------ 1 file changed, 186 insertions(+), 160 deletions(-) diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index 53f102cab6b..1de87b24414 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.44 2006/01/21 19:34:42 tgl Exp $ +$PostgreSQL: pgsql/doc/src/sgml/config.sgml,v 1.45 2006/01/23 18:16:41 tgl Exp $ --> <chapter Id="runtime-config"> <title>Server Configuration</title> @@ -93,7 +93,7 @@ env PGOPTIONS='-c geqo=off' psql </para> <para> - Furthermore, it is possible to assign a set of option settings to + Furthermore, it is possible to assign a set of parameter settings to a user or a database. Whenever a session is started, the default settings for the user and database involved are loaded. The commands <xref linkend="sql-alteruser" endterm="sql-alteruser-title"> @@ -102,7 +102,7 @@ env PGOPTIONS='-c geqo=off' psql settings override anything received from the <command>postmaster</command> command-line or the configuration file, and in turn are overridden by per-user settings; both are - overridden by per-session options. + overridden by per-session settings. </para> <para> @@ -115,8 +115,8 @@ SET ENABLE_SEQSCAN TO OFF; If <command>SET</> is allowed, it overrides all other sources of values for the parameter. Some parameters cannot be changed via <command>SET</command>: for example, if they control behavior that - cannot reasonably be changed without restarting - <productname>PostgreSQL</productname>. Also, some parameters can + cannot be changed without restarting the entire + <productname>PostgreSQL</productname> server. Also, some parameters can be modified via <command>SET</command> or <command>ALTER</> by superusers, but not by ordinary users. </para> @@ -146,7 +146,7 @@ SET ENABLE_SEQSCAN TO OFF; client authentication (their use is discussed in <xref linkend="client-authentication">). By default, all three configuration files are stored in the database cluster's data - directory. The options described in this section allow the + directory. The parameters described in this section allow the configuration files to be placed elsewhere. (Doing so can ease administration. In particular it is often easier to ensure that the configuration files are properly backed-up when they are @@ -162,7 +162,7 @@ SET ENABLE_SEQSCAN TO OFF; <listitem> <para> Specifies the directory to use for data storage. - This option can only be set at server start. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -176,7 +176,7 @@ SET ENABLE_SEQSCAN TO OFF; <para> Specifies the main server configuration file (customarily called <filename>postgresql.conf</>). - This option can only be set on the postmaster command line. + This parameter can only be set on the postmaster command line. </para> </listitem> </varlistentry> @@ -190,7 +190,7 @@ SET ENABLE_SEQSCAN TO OFF; <para> Specifies the configuration file for host-based authentication (customarily called <filename>pg_hba.conf</>). - This option can only be set at server start. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -205,7 +205,7 @@ SET ENABLE_SEQSCAN TO OFF; Specifies the configuration file for <application>ident</> authentication (customarily called <filename>pg_ident.conf</>). - This option can only be set at server start. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -220,15 +220,15 @@ SET ENABLE_SEQSCAN TO OFF; Specifies the name of an additional process-id (PID) file that the <application>postmaster</> should create for use by server administration programs. - This option can only be set at server start. + This parameter can only be set at server start. </para> </listitem> </varlistentry> </variablelist> <para> - In a default installation, none of the above options are set explicitly. - Instead, the + In a default installation, none of the above parameters are set + explicitly. Instead, the data directory is specified by the <option>-D</option> command-line option or the <envar>PGDATA</envar> environment variable, and the configuration files are all found within the data directory. @@ -239,7 +239,7 @@ SET ENABLE_SEQSCAN TO OFF; data directory, the postmaster's <option>-D</option> command-line option or <envar>PGDATA</envar> environment variable must point to the directory containing the configuration files, - and the <varname>data_directory</> option must be set in + and the <varname>data_directory</> parameter must be set in <filename>postgresql.conf</filename> (or on the command line) to show where the data directory is actually located. Notice that <varname>data_directory</> overrides <option>-D</option> and @@ -250,17 +250,17 @@ SET ENABLE_SEQSCAN TO OFF; <para> If you wish, you can specify the configuration file names and locations - individually using the options <varname>config_file</>, + individually using the parameters <varname>config_file</>, <varname>hba_file</> and/or <varname>ident_file</>. <varname>config_file</> can only be specified on the <command>postmaster</command> command line, but the others can be - set within the main configuration file. If all three options plus + set within the main configuration file. If all three parameters plus <varname>data_directory</> are explicitly set, then it is not necessary to specify <option>-D</option> or <envar>PGDATA</envar>. </para> <para> - When setting any of these options, 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> is started. </para> @@ -386,11 +386,11 @@ SET ENABLE_SEQSCAN TO OFF; <para> Sets the owning group of the Unix-domain socket. (The owning user of the socket is always the user that starts the - server.) In combination with the option + server.) In combination with the parameter <varname>unix_socket_permissions</varname> this can be used as an additional access control mechanism for Unix-domain connections. - By default this is the empty string, which uses the default - group for the current user. This option can only be set at + By default this is the empty string, which selects the default + group for the current user. This parameter can only be set at server start. </para> </listitem> @@ -405,7 +405,7 @@ SET ENABLE_SEQSCAN TO OFF; <para> Sets the access permissions of the Unix-domain socket. Unix-domain sockets use the usual Unix file system permission set. - The option value is expected to be a numeric mode + The parameter value is expected to be a numeric mode specification in the form accepted by the <function>chmod</function> and <function>umask</function> system calls. (To use the customary octal format the number @@ -428,7 +428,7 @@ SET ENABLE_SEQSCAN TO OFF; </para> <para> - This option can only be set at server start. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -441,10 +441,11 @@ SET ENABLE_SEQSCAN TO OFF; <listitem> <para> Specifies the <productname>Bonjour</productname> broadcast - name. By default, the computer name is used, specified as an - empty string ''. This option is ignored if the server was not - compiled with <productname>Bonjour</productname> support. This - option can only be set at server start. + name. The computer name is used if this parameter is set to the + empty string <literal>''</> (which is the default). This parameter is + ignored if the server was not compiled with + <productname>Bonjour</productname> support. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -459,7 +460,7 @@ SET ENABLE_SEQSCAN TO OFF; On systems that support the <symbol>TCP_KEEPIDLE</symbol> socket option, specifies the number of seconds between sending keepalives on an otherwise idle connection. A value of 0 uses the system default. If <symbol>TCP_KEEPIDLE</symbol> is - not supported, this parameter must be 0. This option is ignored for + not supported, this parameter must be 0. This parameter is ignored for connections made via a Unix-domain socket. </para> </listitem> @@ -475,7 +476,7 @@ SET ENABLE_SEQSCAN TO OFF; On systems that support the <symbol>TCP_KEEPINTVL</symbol> socket option, specifies how long, in seconds, to wait for a response to a keepalive before retransmitting. A value of 0 uses the system default. If <symbol>TCP_KEEPINTVL</symbol> - is not supported, this parameter must be 0. This option is ignored + is not supported, this parameter must be 0. This parameter is ignored for connections made via a Unix-domain socket. </para> </listitem> @@ -491,7 +492,7 @@ SET ENABLE_SEQSCAN TO OFF; On systems that support the <symbol>TCP_KEEPCNT</symbol> socket option, specifies how many keepalives may be lost before the connection is considered dead. A value of 0 uses the system default. If <symbol>TCP_KEEPCNT</symbol> is not - supported, this parameter must be 0. This option is ignored + supported, this parameter must be 0. This parameter is ignored for connections made via a Unix-domain socket. </para> </listitem> @@ -516,9 +517,10 @@ SET ENABLE_SEQSCAN TO OFF; Maximum time to complete client authentication, in seconds. If a would-be client has not completed the authentication protocol in this much time, the server breaks the connection. This prevents - hung clients from occupying a connection indefinitely. This - option can only be set at server start or in the - <filename>postgresql.conf</filename> file. The default is 60. + hung clients from occupying a connection indefinitely. + The default is 60. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -549,7 +551,7 @@ SET ENABLE_SEQSCAN TO OFF; linkend="sql-createuser" endterm="sql-createuser-title"> or <xref linkend="sql-alteruser" endterm="sql-alteruser-title"> without writing either <literal>ENCRYPTED</> or - <literal>UNENCRYPTED</>, this option determines whether the + <literal>UNENCRYPTED</>, this parameter determines whether the password is to be encrypted. The default is <literal>on</> (encrypt the password). </para> @@ -594,8 +596,6 @@ SET ENABLE_SEQSCAN TO OFF; This, combined with <varname>krb_srvname</>, is used to generate the complete service principal, that is <varname>krb_srvname</><literal>/</><varname>krb_server_hostname</><literal>@</>REALM. - </para> - <para> If not set, the default is the server host name. See <xref linkend="kerberos-auth"> for details. This parameter can only be set at server start. </para> @@ -623,7 +623,9 @@ SET ENABLE_SEQSCAN TO OFF; </indexterm> <listitem> <para> - This enables per-database user names. It is off by default. + This parameter enables per-database user names. It is off by default. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> <para> @@ -637,7 +639,7 @@ SET ENABLE_SEQSCAN TO OFF; </para> <para> - With this option enabled, you can still create ordinary global + With this parameter enabled, you can still create ordinary global users. Simply append <literal>@</> when specifying the user name in the client. The <literal>@</> will be stripped off before the user name is looked up by the server. @@ -680,7 +682,7 @@ SET ENABLE_SEQSCAN TO OFF; least twice the value of <xref linkend="guc-max-connections">; however, settings significantly higher than the minimum are usually needed for good performance. Values of a few thousand - are recommended for production installations. This option can + are recommended for production installations. This parameter can only be set at server start. </para> @@ -735,7 +737,7 @@ SET ENABLE_SEQSCAN TO OFF; Setting this parameter to zero disables the prepared-transaction feature. The default is 5. - This option can only be set at server start. + This parameter can only be set at server start. </para> <para> @@ -821,6 +823,7 @@ SET ENABLE_SEQSCAN TO OFF; 2048 KB (two megabytes), which is conservatively small and unlikely to risk crashes. However, it may be too small to allow execution of complex functions. + Only superusers can change this setting. </para> </listitem> </varlistentry> @@ -870,7 +873,7 @@ SET ENABLE_SEQSCAN TO OFF; 16 * <varname>max_fsm_relations</varname>. The default is chosen by <application>initdb</> depending on the amount of available memory, and can range from 20000 to 200000. - This option can only be set at server start. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -886,7 +889,7 @@ SET ENABLE_SEQSCAN TO OFF; free space will be tracked in the shared free-space map. Roughly seventy bytes of shared memory are consumed for each slot. The default is 1000. - This option can only be set at server start. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -912,7 +915,7 @@ SET ENABLE_SEQSCAN TO OFF; can really support when a large number of processes all try to open that many files. If you find yourself seeing <quote>Too many open files</> failures, try reducing this setting. - This option can only be set at server start. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -953,7 +956,7 @@ SET ENABLE_SEQSCAN TO OFF; applicable), the library startup time is avoided when the library is first used. However, the time to start each new server process may increase slightly, even if that process never - uses the library. So this option is recommended only for + uses the library. So this parameter is recommended only for libraries that will be used in most sessions. </para> </listitem> @@ -1132,8 +1135,8 @@ SET ENABLE_SEQSCAN TO OFF; delays is 10 milliseconds; setting <varname>bgwriter_delay</> to a value that is not a multiple of 10 may have the same results as setting it to the next higher multiple of 10. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -1152,8 +1155,8 @@ SET ENABLE_SEQSCAN TO OFF; being recycled, and writes any that are dirty. The default value is 1.0 (this is a percentage of the total number of shared buffers). - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -1168,8 +1171,8 @@ SET ENABLE_SEQSCAN TO OFF; In each round, no more than this many buffers will be written as a result of scanning soon-to-be-recycled buffers. The default value is 5. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -1190,8 +1193,8 @@ SET ENABLE_SEQSCAN TO OFF; of shared buffers). With the default <varname>bgwriter_delay</> setting, this will allow the entire shared buffer pool to be scanned about once per minute. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -1208,8 +1211,8 @@ SET ENABLE_SEQSCAN TO OFF; limit is reached, the scan stops, and resumes at the next buffer during the next round.) The default value is 5. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -1252,7 +1255,7 @@ SET ENABLE_SEQSCAN TO OFF; <term><varname>fsync</varname> (<type>boolean</type>)</term> <listitem> <para> - If this option is on, the <productname>PostgreSQL</> server + If this parameter is on, the <productname>PostgreSQL</> server will try to make sure that updates are physically written to disk, by issuing <function>fsync()</> system calls or various equivalent methods (see <xref linkend="guc-wal-sync-method">). @@ -1290,9 +1293,9 @@ SET ENABLE_SEQSCAN TO OFF; </para> <para> - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. If you turn - this option off, also consider turning off + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. + If you turn this parameter off, also consider turning off <xref linkend="guc-full-page-writes">. </para> </listitem> @@ -1339,9 +1342,10 @@ SET ENABLE_SEQSCAN TO OFF; </itemizedlist> <para> Not all of these choices are available on all platforms. - The default is the first method in the above list that is supported. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + The default is the first method in the above list that is supported + by the platform. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -1353,7 +1357,7 @@ SET ENABLE_SEQSCAN TO OFF; <term><varname>full_page_writes</varname> (<type>boolean</type>)</term> <listitem> <para> - When this option is on, the <productname>PostgreSQL</> server + When this parameter is on, the <productname>PostgreSQL</> server writes the entire content of each disk page to WAL during the first modification of that page after a checkpoint. This is needed because @@ -1371,25 +1375,25 @@ SET ENABLE_SEQSCAN TO OFF; </para> <para> - Turning this option off speeds normal operation, but + Turning this parameter off speeds normal operation, but might lead to a corrupt database after an operating system crash or power failure. The risks are similar to turning off <varname>fsync</>, though smaller. It may be safe to turn off - this option if you have hardware (such as a battery-backed disk + this parameter if you have hardware (such as a battery-backed disk controller) or filesystem software (e.g., Reiser4) that reduces the risk of partial page writes to an acceptably low level. </para> <para> - Turning off this option does not affect use of + Turning off this parameter does not affect use of WAL archiving for point-in-time recovery (PITR) (see <xref linkend="backup-online">). </para> <para> - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. The default is - <literal>on</>. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. + The default is <literal>on</>. </para> </listitem> </varlistentry> @@ -1405,7 +1409,7 @@ SET ENABLE_SEQSCAN TO OFF; The default is 8. The setting need only be large enough to hold the amount of WAL data generated by one typical transaction, since the data is written out to disk at every transaction commit. - This option can only be set at server start. + This parameter can only be set at server start. </para> <para> @@ -1471,8 +1475,9 @@ SET ENABLE_SEQSCAN TO OFF; <para> Maximum distance between automatic WAL checkpoints, in log file segments (each segment is normally 16 megabytes). The - default is three. This option can only be set at server start - or in the <filename>postgresql.conf</filename> file. + default is three. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -1485,9 +1490,9 @@ SET ENABLE_SEQSCAN TO OFF; <listitem> <para> Maximum time between automatic WAL checkpoints, in - seconds. The default is 300 seconds. This option can only be - set at server start or in the <filename>postgresql.conf</> - file. + seconds. The default is 300 seconds. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -1504,6 +1509,8 @@ SET ENABLE_SEQSCAN TO OFF; than this many seconds (which suggests that <varname>checkpoint_segments</> ought to be raised). The default is 30 seconds. Zero disables the warning. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -1528,9 +1535,9 @@ SET ENABLE_SEQSCAN TO OFF; <literal>%f</> is replaced by the file name only. Use <literal>%%</> to embed an actual <literal>%</> character in the command. For more information see <xref - linkend="backup-archiving-wal">. This option can only be set at - server start or in the <filename>postgresql.conf</filename> - file. + linkend="backup-archiving-wal">. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> <para> It is important for the command to return a zero exit status if @@ -2096,11 +2103,11 @@ SELECT * FROM parent WHERE key = 2400; <systemitem>stderr</systemitem> and <systemitem>syslog</systemitem>. On Windows, <systemitem>eventlog</systemitem> is also supported. Set this - option to a list of desired log destinations separated by + parameter to a list of desired log destinations separated by commas. The default is to log to <systemitem>stderr</systemitem> only. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2112,14 +2119,14 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - This option allows messages sent to <application>stderr</> to be + This parameter allows messages sent to <application>stderr</> to be captured and redirected into log files. - This option, in combination with logging to <application>stderr</>, + This method, in combination with logging to <application>stderr</>, is often more useful than logging to <application>syslog</>, since some types of messages may not appear in <application>syslog</> output (a common example is dynamic-linker failure messages). - This option can only be set at server start. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -2131,12 +2138,12 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - When <varname>redirect_stderr</> is enabled, this option + When <varname>redirect_stderr</> is enabled, this parameter determines the directory in which log files will be created. It may be specified as an absolute path, or relative to the cluster data directory. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2148,7 +2155,7 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - When <varname>redirect_stderr</varname> is enabled, this option + When <varname>redirect_stderr</varname> is enabled, this parameter sets the file names of the created log files. The value is treated as a <systemitem>strftime</systemitem> pattern, so <literal>%</literal>-escapes @@ -2159,8 +2166,8 @@ SELECT * FROM parent WHERE key = 2400; if <varname>log_filename</varname> were <literal>server_log</literal>, then the chosen file name would be <literal>server_log.1093827753</literal> for a log starting at Sun Aug 29 19:02:33 2004 MST. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2172,13 +2179,13 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - When <varname>redirect_stderr</varname> is enabled, this option + When <varname>redirect_stderr</varname> is enabled, this parameter determines the maximum lifetime of an individual log file. After this many minutes have elapsed, a new log file will be created. Set to zero to disable time-based creation of new log files. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2190,13 +2197,13 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - When <varname>redirect_stderr</varname> is enabled, this option + When <varname>redirect_stderr</varname> is enabled, this parameter determines the maximum size of an individual log file. After this many kilobytes have been emitted into a log file, a new log file will be created. Set to zero to disable size-based creation of new log files. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2208,18 +2215,18 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - When <varname>redirect_stderr</varname> is enabled, this option will cause + When <varname>redirect_stderr</varname> is enabled, this parameter will cause <productname>PostgreSQL</productname> to truncate (overwrite), rather than append to, any existing log file of the same name. However, truncation will occur only when a new file is being opened due to time-based rotation, not during server startup or size-based rotation. When off, pre-existing files will be appended to in - all cases. For example, using this option in combination with + all cases. For example, using this setting in combination with a <varname>log_filename</varname> like <literal>postgresql-%H.log</literal> would result in generating twenty-four hourly log files and then cyclically overwriting them. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> <para> Example: To keep 7 days of logs, one log file per day named @@ -2250,7 +2257,7 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - When logging to <application>syslog</> is enabled, this option + When logging to <application>syslog</> is enabled, this parameter determines the <application>syslog</application> <quote>facility</quote> to be used. You may choose from <literal>LOCAL0</>, <literal>LOCAL1</>, @@ -2259,8 +2266,8 @@ SELECT * FROM parent WHERE key = 2400; the default is <literal>LOCAL0</>. See also the documentation of your system's <application>syslog</application> daemon. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2272,13 +2279,13 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - When logging to <application>syslog</> is enabled, this option + When logging to <application>syslog</> is enabled, this parameter determines the program name used to identify <productname>PostgreSQL</productname> messages in <application>syslog</application> logs. The default is <literal>postgres</literal>. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2369,7 +2376,7 @@ SELECT * FROM parent WHERE key = 2400; <literal>FATAL</literal>, and <literal>PANIC</literal>. For example, if you set this to <literal>ERROR</literal> then all SQL statements causing errors, fatal errors, or panics will be - logged. Enabling this option can be helpful in tracking down + logged. Enabling this parameter can be helpful in tracking down the source of any errors that appear in the server log. Only superusers can change this setting. </para> @@ -2389,7 +2396,7 @@ SELECT * FROM parent WHERE key = 2400; and their durations. Minus-one (the default) disables the feature. For example, if you set it to <literal>250</literal> then all SQL statements that run 250ms or longer will be - logged. Enabling this option can be useful in tracking down + logged. Enabling this parameter can be useful in tracking down unoptimized queries in your applications. This setting is independent of <varname>log_statement</varname> and <varname>log_duration</varname>. Only superusers can change @@ -2405,14 +2412,15 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - Runs the server silently. If this option is set, the server + Runs the server silently. If this parameter is set, the server will automatically run in background and any controlling terminals are disassociated. The server's standard output and standard error are redirected to <literal>/dev/null</>, so any messages sent to them will be lost. Unless <application>syslog</> logging is selected or - <varname>redirect_stderr</> is enabled, using this option + <varname>redirect_stderr</> is enabled, using this parameter is discouraged because it makes it impossible to see error messages. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -2527,7 +2535,7 @@ SELECT * FROM parent WHERE key = 2400; </indexterm> <listitem> <para> - These options enable various debugging output to be emitted. + These parameters enable various debugging output to be emitted. For each executed query, they print the resulting parse tree, the query rewriter output, or the execution plan. <varname>debug_pretty_print</varname> indents @@ -2536,7 +2544,7 @@ SELECT * FROM parent WHERE key = 2400; <varname>log_min_messages</varname> must be <literal>DEBUG1</literal> or lower to actually send this output to the client or the server log, respectively. - These options are off by default. + These parameters are off by default. </para> </listitem> </varlistentry> @@ -2553,8 +2561,9 @@ SELECT * FROM parent WHERE key = 2400; useful. Some client programs, like <application>psql</>, attempt to connect twice while determining if a password is required, so duplicate <quote>connection received</> messages do not - necessarily indicate a problem. This option can only be set at - server start or in the <filename>postgresql.conf</> configuration file. + necessarily indicate a problem. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2569,8 +2578,9 @@ SELECT * FROM parent WHERE key = 2400; This outputs a line in the server log similar to <varname>log_connections</varname> but at session termination, and includes the duration of the session. This is off by - default. This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + default. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2611,8 +2621,8 @@ SELECT * FROM parent WHERE key = 2400; produces its own time stamp and process ID information, so you probably do not want to use those escapes if you are using <application>syslog</>. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. <informaltable> <tgroup cols="3"> @@ -2758,11 +2768,11 @@ SELECT * FROM parent WHERE key = 2400; <listitem> <para> By default, connection log messages only show the IP address of the - connecting host. Turning on this option causes logging of the + connecting host. Turning on this parameter causes logging of the host name as well. Note that depending on your host name resolution - setup this might impose a non-negligible performance penalty. This - option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + setup this might impose a non-negligible performance penalty. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2813,6 +2823,15 @@ SELECT * FROM parent WHERE key = 2400; </sect2> <sect2 id="runtime-config-statistics-collector"> <title>Query and Index Statistics Collector</title> + + <para> + These parameters control a server-wide statistics collection feature. + When statistics collection is enabled, the data that is produced can be + accessed via the <structname>pg_stat</structname> and + <structname>pg_statio</structname> family of system views. + Refer to <xref linkend="monitoring"> for more information. + </para> + <variablelist> <varlistentry id="guc-stats-start-collector" xreflabel="stats_start_collector"> @@ -2826,7 +2845,7 @@ SELECT * FROM parent WHERE key = 2400; statistics-collection subprocess. This is on by default, but may be turned off if you know you have no interest in collecting statistics or running autovacuum. - This option can only be set at server start, because the collection + This parameter can only be set at server start, because the collection subprocess cannot be started or stopped on-the-fly. (However, the extent to which statistics are actually gathered can be changed while the server is running, so long as the subprocess exists.) @@ -2843,13 +2862,12 @@ SELECT * FROM parent WHERE key = 2400; <para> Enables the collection of statistics on the currently executing command of each session, along with the time at - which that command began execution. This option is off by + which that command began execution. This parameter is off by default. Note that even when enabled, this information is not visible to all users, only to superusers and the user owning the session being reported on; so it should not represent a - security risk. This data can be accessed via the - <structname>pg_stat_activity</structname> system view; refer - to <xref linkend="monitoring"> for more information. + security risk. + Only superusers can change this setting. </para> </listitem> </varlistentry> @@ -2862,11 +2880,8 @@ SELECT * FROM parent WHERE key = 2400; <listitem> <para> Enables the collection of block-level statistics on database - activity. This option is disabled by default. If this option - is enabled, the data that is produced can be accessed via the - <structname>pg_stat</structname> and - <structname>pg_statio</structname> family of system views; - refer to <xref linkend="monitoring"> for more information. + activity. This parameter is off by default. + Only superusers can change this setting. </para> </listitem> </varlistentry> @@ -2879,11 +2894,8 @@ SELECT * FROM parent WHERE key = 2400; <listitem> <para> Enables the collection of row-level statistics on database - activity. This option is disabled by default. If this option - is enabled, the data that is produced can be accessed via the - <structname>pg_stat</structname> and - <structname>pg_statio</structname> family of system views; - refer to <xref linkend="monitoring"> for more information. + activity. This parameter is off by default. + Only superusers can change this setting. </para> </listitem> </varlistentry> @@ -2897,7 +2909,7 @@ SELECT * FROM parent WHERE key = 2400; <para> If on, collected statistics are zeroed out whenever the server is restarted. If off, statistics are accumulated across server - restarts. The default is <literal>off</>. This option can only + restarts. The default is <literal>off</>. This parameter can only be set at server start. </para> </listitem> @@ -2917,7 +2929,7 @@ SELECT * FROM parent WHERE key = 2400; <para> These settings control the behavior of the <firstterm>autovacuum</> - feature. Please refer to <xref linkend="autovacuum"> for + feature. Refer to <xref linkend="autovacuum"> for more information. </para> @@ -2934,8 +2946,8 @@ SELECT * FROM parent WHERE key = 2400; autovacuum daemon. This is off by default. <varname>stats_start_collector</> and <varname>stats_row_level</> must also be turned on for autovacuum to work. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2952,8 +2964,8 @@ SELECT * FROM parent WHERE key = 2400; and issues <command>VACUUM</> and <command>ANALYZE</> commands as needed for tables in that database. The delay is measured in seconds, and the default is 60. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -2968,8 +2980,8 @@ SELECT * FROM parent WHERE key = 2400; Specifies the minimum number of updated or deleted tuples needed to trigger a <command>VACUUM</> in any one table. The default is 1000. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. This setting can be overridden for individual tables by entries in <structname>pg_autovacuum</>. </para> @@ -2986,8 +2998,8 @@ SELECT * FROM parent WHERE key = 2400; Specifies the minimum number of inserted, updated or deleted tuples needed to trigger an <command>ANALYZE</> in any one table. The default is 500. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. This setting can be overridden for individual tables by entries in <structname>pg_autovacuum</>. </para> @@ -3005,8 +3017,8 @@ SELECT * FROM parent WHERE key = 2400; <varname>autovacuum_vacuum_threshold</varname> when deciding whether to trigger a <command>VACUUM</>. The default is 0.4. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. This setting can be overridden for individual tables by entries in <structname>pg_autovacuum</>. </para> @@ -3024,8 +3036,8 @@ SELECT * FROM parent WHERE key = 2400; <varname>autovacuum_analyze_threshold</varname> when deciding whether to trigger an <command>ANALYZE</>. The default is 0.2. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. This setting can be overridden for individual tables by entries in <structname>pg_autovacuum</>. </para> @@ -3043,6 +3055,8 @@ SELECT * FROM parent WHERE key = 2400; <command>VACUUM</> operations. If -1 is specified (which is the default), the regular <xref linkend="guc-vacuum-cost-delay"> value will be used. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. This setting can be overridden for individual tables by entries in <structname>pg_autovacuum</>. </para> @@ -3060,6 +3074,8 @@ SELECT * FROM parent WHERE key = 2400; <command>VACUUM</> operations. If -1 is specified (which is the default), the regular <xref linkend="guc-vacuum-cost-limit"> value will be used. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. This setting can be overridden for individual tables by entries in <structname>pg_autovacuum</>. </para> @@ -3384,6 +3400,11 @@ SELECT * FROM parent WHERE key = 2400; desired language exist. In that case you will continue to see the English messages. </para> + + <para> + Only superusers can change this setting, because it affects the + messages sent to the postmaster log as well as to the client. + </para> </listitem> </varlistentry> @@ -3577,7 +3598,7 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' The default, 64, has historically proven sufficient, but you might need to raise this value if you have clients that touch many different tables in a single - transaction. This option can only be set at server start. + transaction. This parameter can only be set at server start. </para> <para> @@ -3768,7 +3789,7 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' return true if <replaceable>expr</> evaluates to the null value, and false otherwise. The correct SQL-spec-compliant behavior of <literal><replaceable>expr</> = NULL</literal> is to always - return null (unknown). Therefore this option defaults to + return null (unknown). Therefore this parameter defaults to <literal>off</>. </para> @@ -3984,7 +4005,7 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' <title>Customized Options</title> <para> - This feature was designed to allow options not normally known to + This feature was designed to allow parameters not normally known to <productname>PostgreSQL</productname> to be added by add-on modules (such as procedural languages). This allows add-on modules to be configured in the standard ways. @@ -4006,8 +4027,8 @@ dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir' add-on module. Such variables must have names consisting of a class name, a dot, and a variable name. <varname>custom_variable_classes</> specifies all the class names in use in a particular installation. - This option can only be set at server start or in the - <filename>postgresql.conf</filename> configuration file. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> @@ -4046,13 +4067,13 @@ plruby.use_strict = true # generates error: unknown class name <title>Developer Options</title> <para> - The following options are intended for work on the + The following parameters are intended for work on the <productname>PostgreSQL</productname> source, 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. As such, they have been excluded from the sample <filename>postgresql.conf</> file. Note that many of these - options require special source compilation flags to work at all. + parameters require special source compilation flags to work at all. </para> <variablelist> @@ -4063,8 +4084,9 @@ plruby.use_strict = true # generates error: unknown class name </indexterm> <listitem> <para> - Allows the modification of the structure of system tables. + Allows modification of the structure of system tables. This is used by <command>initdb</command>. + This parameter can only be set at server start. </para> </listitem> </varlistentry> @@ -4079,7 +4101,7 @@ plruby.use_strict = true # generates error: unknown class name Turns on various assertion checks. This is a debugging aid. If you are experiencing strange problems or crashes you might want to turn this on, as it might expose programming mistakes. To use - this option, the macro <symbol>USE_ASSERT_CHECKING</symbol> + this parameter, the macro <symbol>USE_ASSERT_CHECKING</symbol> must be defined when <productname>PostgreSQL</productname> is built (accomplished by the <command>configure</command> option <option>--enable-cassert</option>). Note that @@ -4100,6 +4122,7 @@ plruby.use_strict = true # generates error: unknown class name 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. + This parameter cannot be changed after session start. </para> </listitem> </varlistentry> @@ -4115,6 +4138,7 @@ plruby.use_strict = true # generates error: unknown class name 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. + This parameter cannot be changed after session start. </para> </listitem> </varlistentry> @@ -4131,6 +4155,8 @@ plruby.use_strict = true # generates error: unknown class name authentication procedure. This is intended to give an opportunity to attach to the server process with a debugger to trace down misbehavior in authentication. + This parameter can only be set in the <filename>postgresql.conf</> + file or on the server command line. </para> </listitem> </varlistentry> @@ -4160,7 +4186,7 @@ plruby.use_strict = true # generates error: unknown class name <listitem> <para> If on, emit information about resource usage during sort operations. - This option is only available if the <symbol>TRACE_SORT</symbol> macro + This parameter is only available if the <symbol>TRACE_SORT</symbol> macro was defined when <productname>PostgreSQL</productname> was compiled. (However, <symbol>TRACE_SORT</symbol> is currently defined by default.) </para> @@ -4189,7 +4215,7 @@ plruby.use_strict = true # generates error: unknown class name </indexterm> <listitem> <para> - If on, emit WAL-related debugging output. This option is + If on, emit WAL-related debugging output. This parameter is only available if the <symbol>WAL_DEBUG</symbol> macro was defined when <productname>PostgreSQL</productname> was compiled. -- GitLab