| Server IP : 104.21.25.180 / Your IP : 162.159.115.41 Web Server : Apache/2.4.37 System : Linux almalinux.duckdns.org 4.18.0-553.111.1.el8_10.x86_64 #1 SMP Sun Mar 8 20:06:07 EDT 2026 x86_64 User : ricodeal ( 1046) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/postgresql-docs/html/ |
Upload File : |
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>19.17. Developer Options</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="[email protected]" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="runtime-config-custom.html" title="19.16. Customized Options" /><link rel="next" href="runtime-config-short.html" title="19.18. Short Options" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">19.17. Developer Options</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="runtime-config-custom.html" title="19.16. Customized Options">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="runtime-config.html" title="Chapter 19. Server Configuration">Up</a></td><th width="60%" align="center">Chapter 19. Server Configuration</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 10.23 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="runtime-config-short.html" title="19.18. Short Options">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="RUNTIME-CONFIG-DEVELOPER"><div class="titlepage"><div><div><h2 class="title" style="clear: both">19.17. Developer Options</h2></div></div></div><p> The following parameters are intended for work on the
<span class="productname">PostgreSQL</span> source code, and in some cases
to assist with recovery of severely damaged databases. There
should be no reason to use them on a production database.
As such, they have been excluded from the sample
<code class="filename">postgresql.conf</code> file. Note that many of these
parameters require special source compilation flags to work at all.
</p><div class="variablelist"><dl class="variablelist"><dt id="GUC-ALLOW-IN-PLACE-TABLESPACES"><span class="term"><code class="varname">allow_in_place_tablespaces</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.1.1.3" class="indexterm"></a>
</span></dt><dd><p> Allows tablespaces to be created as directories inside
<code class="filename">pg_tblspc</code>, when an empty location string
is provided to the <code class="command">CREATE TABLESPACE</code> command. This
is intended to allow testing replication scenarios where primary and
standby servers are running on the same machine. Such directories
are likely to confuse backup tools that expect to find only symbolic
links in that location. Only superusers can change this setting.
</p></dd><dt id="GUC-ALLOW-SYSTEM-TABLE-MODS"><span class="term"><code class="varname">allow_system_table_mods</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.2.1.3" class="indexterm"></a>
</span></dt><dd><p> Allows modification of the structure of system tables.
This is used by <code class="command">initdb</code>.
This parameter can only be set at server start.
</p></dd><dt id="GUC-IGNORE-SYSTEM-INDEXES"><span class="term"><code class="varname">ignore_system_indexes</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.3.1.3" class="indexterm"></a>
</span></dt><dd><p> 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.
</p></dd><dt id="GUC-POST-AUTH-DELAY"><span class="term"><code class="varname">post_auth_delay</code> (<code class="type">integer</code>)
<a id="id-1.6.6.20.3.4.1.3" class="indexterm"></a>
</span></dt><dd><p> If nonzero, 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 developers an
opportunity to attach to the server process with a debugger.
This parameter cannot be changed after session start.
</p></dd><dt id="GUC-PRE-AUTH-DELAY"><span class="term"><code class="varname">pre_auth_delay</code> (<code class="type">integer</code>)
<a id="id-1.6.6.20.3.5.1.3" class="indexterm"></a>
</span></dt><dd><p> If nonzero, a delay of this many seconds occurs just after a
new server process is forked, before it conducts the
authentication procedure. This is intended to give developers 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 <code class="filename">postgresql.conf</code>
file or on the server command line.
</p></dd><dt id="GUC-TRACE-NOTIFY"><span class="term"><code class="varname">trace_notify</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.6.1.3" class="indexterm"></a>
</span></dt><dd><p> Generates a great amount of debugging output for the
<code class="command">LISTEN</code> and <code class="command">NOTIFY</code>
commands. <a class="xref" href="runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES">client_min_messages</a> or
<a class="xref" href="runtime-config-logging.html#GUC-LOG-MIN-MESSAGES">log_min_messages</a> must be
<code class="literal">DEBUG1</code> or lower to send this output to the
client or server logs, respectively.
</p></dd><dt id="GUC-TRACE-RECOVERY-MESSAGES"><span class="term"><code class="varname">trace_recovery_messages</code> (<code class="type">enum</code>)
<a id="id-1.6.6.20.3.7.1.3" class="indexterm"></a>
</span></dt><dd><p> Enables logging of recovery-related debugging output that otherwise
would not be logged. This parameter allows the user to override the
normal setting of <a class="xref" href="runtime-config-logging.html#GUC-LOG-MIN-MESSAGES">log_min_messages</a>, but only for
specific messages. This is intended for use in debugging Hot Standby.
Valid values are <code class="literal">DEBUG5</code>, <code class="literal">DEBUG4</code>,
<code class="literal">DEBUG3</code>, <code class="literal">DEBUG2</code>, <code class="literal">DEBUG1</code>, and
<code class="literal">LOG</code>. The default, <code class="literal">LOG</code>, does not affect
logging decisions at all. The other values cause recovery-related
debug messages of that priority or higher to be logged as though they
had <code class="literal">LOG</code> priority; for common settings of
<code class="varname">log_min_messages</code> this results in unconditionally sending
them to the server log.
This parameter can only be set in the <code class="filename">postgresql.conf</code>
file or on the server command line.
</p></dd><dt id="GUC-TRACE-SORT"><span class="term"><code class="varname">trace_sort</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.8.1.3" class="indexterm"></a>
</span></dt><dd><p> If on, emit information about resource usage during sort operations.
This parameter is only available if the <code class="symbol">TRACE_SORT</code> macro
was defined when <span class="productname">PostgreSQL</span> was compiled.
(However, <code class="symbol">TRACE_SORT</code> is currently defined by default.)
</p></dd><dt><span class="term"><code class="varname">trace_locks</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.9.1.3" class="indexterm"></a>
</span></dt><dd><p> If on, emit information about lock usage. Information dumped
includes the type of lock operation, the type of lock and the unique
identifier of the object being locked or unlocked. Also included
are bit masks for the lock types already granted on this object as
well as for the lock types awaited on this object. For each lock
type a count of the number of granted locks and waiting locks is
also dumped as well as the totals. An example of the log file output
is shown here:
</p><pre class="screen">LOG: LockAcquire: new: lock(0xb7acd844) id(24688,24696,0,0,0,1)
grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0
wait(0) type(AccessShareLock)
LOG: GrantLock: lock(0xb7acd844) id(24688,24696,0,0,0,1)
grantMask(2) req(1,0,0,0,0,0,0)=1 grant(1,0,0,0,0,0,0)=1
wait(0) type(AccessShareLock)
LOG: UnGrantLock: updated: lock(0xb7acd844) id(24688,24696,0,0,0,1)
grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0
wait(0) type(AccessShareLock)
LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0
wait(0) type(INVALID)</pre><p>
Details of the structure being dumped may be found in
<code class="filename">src/include/storage/lock.h</code>.
</p><p> This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>
macro was defined when <span class="productname">PostgreSQL</span> was
compiled.
</p></dd><dt><span class="term"><code class="varname">trace_lwlocks</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.10.1.3" class="indexterm"></a>
</span></dt><dd><p> If on, emit information about lightweight lock usage. Lightweight
locks are intended primarily to provide mutual exclusion of access
to shared-memory data structures.
</p><p> This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>
macro was defined when <span class="productname">PostgreSQL</span> was
compiled.
</p></dd><dt><span class="term"><code class="varname">trace_userlocks</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.11.1.3" class="indexterm"></a>
</span></dt><dd><p> If on, emit information about user lock usage. Output is the same
as for <code class="symbol">trace_locks</code>, only for advisory locks.
</p><p> This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>
macro was defined when <span class="productname">PostgreSQL</span> was
compiled.
</p></dd><dt><span class="term"><code class="varname">trace_lock_oidmin</code> (<code class="type">integer</code>)
<a id="id-1.6.6.20.3.12.1.3" class="indexterm"></a>
</span></dt><dd><p> If set, do not trace locks for tables below this OID (used to avoid
output on system tables).
</p><p> This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>
macro was defined when <span class="productname">PostgreSQL</span> was
compiled.
</p></dd><dt><span class="term"><code class="varname">trace_lock_table</code> (<code class="type">integer</code>)
<a id="id-1.6.6.20.3.13.1.3" class="indexterm"></a>
</span></dt><dd><p> Unconditionally trace locks on this table (OID).
</p><p> This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>
macro was defined when <span class="productname">PostgreSQL</span> was
compiled.
</p></dd><dt><span class="term"><code class="varname">debug_deadlocks</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.14.1.3" class="indexterm"></a>
</span></dt><dd><p> If set, dumps information about all current locks when a
deadlock timeout occurs.
</p><p> This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>
macro was defined when <span class="productname">PostgreSQL</span> was
compiled.
</p></dd><dt><span class="term"><code class="varname">log_btree_build_stats</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.15.1.3" class="indexterm"></a>
</span></dt><dd><p> If set, logs system resource usage statistics (memory and CPU) on
various B-tree operations.
</p><p> This parameter is only available if the <code class="symbol">BTREE_BUILD_STATS</code>
macro was defined when <span class="productname">PostgreSQL</span> was
compiled.
</p></dd><dt id="GUC-WAL-CONSISTENCY-CHECKING"><span class="term"><code class="varname">wal_consistency_checking</code> (<code class="type">string</code>)
<a id="id-1.6.6.20.3.16.1.3" class="indexterm"></a>
</span></dt><dd><p> This parameter is intended to be used to check for bugs in the WAL
redo routines. When enabled, full-page images of any buffers modified
in conjunction with the WAL record are added to the record.
If the record is subsequently replayed, the system will first apply
each record and then test whether the buffers modified by the record
match the stored images. In certain cases (such as hint bits), minor
variations are acceptable, and will be ignored. Any unexpected
differences will result in a fatal error, terminating recovery.
</p><p> The default value of this setting is the empty string, which disables
the feature. It can be set to <code class="literal">all</code> to check all
records, or to a comma-separated list of resource managers to check
only records originating from those resource managers. Currently,
the supported resource managers are <code class="literal">heap</code>,
<code class="literal">heap2</code>, <code class="literal">btree</code>, <code class="literal">hash</code>,
<code class="literal">gin</code>, <code class="literal">gist</code>, <code class="literal">sequence</code>,
<code class="literal">spgist</code>, <code class="literal">brin</code>, and <code class="literal">generic</code>. Only
superusers can change this setting.
</p></dd><dt id="GUC-WAL-DEBUG"><span class="term"><code class="varname">wal_debug</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.17.1.3" class="indexterm"></a>
</span></dt><dd><p> If on, emit WAL-related debugging output. This parameter is
only available if the <code class="symbol">WAL_DEBUG</code> macro was
defined when <span class="productname">PostgreSQL</span> was
compiled.
</p></dd><dt id="GUC-IGNORE-CHECKSUM-FAILURE"><span class="term"><code class="varname">ignore_checksum_failure</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.18.1.3" class="indexterm"></a>
</span></dt><dd><p> Only has effect if <a class="xref" href="app-initdb.html#APP-INITDB-DATA-CHECKSUMS">data checksums</a> are enabled.
</p><p> Detection of a checksum failure during a read normally causes
<span class="productname">PostgreSQL</span> to report an error, aborting the current
transaction. Setting <code class="varname">ignore_checksum_failure</code> to on causes
the system to ignore the failure (but still report a warning), and
continue processing. This behavior may <span class="emphasis"><em>cause crashes, propagate
or hide corruption, or other serious problems</em></span>. However, it may allow
you to get past the error and retrieve undamaged tuples that might still be
present in the table if the block header is still sane. If the header is
corrupt an error will be reported even if this option is enabled. The
default setting is <code class="literal">off</code>, and it can only be changed by a superuser.
</p></dd><dt id="GUC-ZERO-DAMAGED-PAGES"><span class="term"><code class="varname">zero_damaged_pages</code> (<code class="type">boolean</code>)
<a id="id-1.6.6.20.3.19.1.3" class="indexterm"></a>
</span></dt><dd><p> Detection of a damaged page header normally causes
<span class="productname">PostgreSQL</span> to report an error, aborting the current
transaction. Setting <code class="varname">zero_damaged_pages</code> to on causes
the system to instead report a warning, zero out the damaged
page in memory, and continue processing. This behavior <span class="emphasis"><em>will destroy data</em></span>,
namely all the rows on the damaged page. However, it does allow you to get
past the error and retrieve rows from any undamaged pages that might
be present in the table. It is useful for recovering data if
corruption has occurred due to a hardware or software error. You should
generally not set this on until you have given up hope of recovering
data from the damaged pages of a table. Zeroed-out pages are not
forced to disk so it is recommended to recreate the table or
the index before turning this parameter off again. The
default setting is <code class="literal">off</code>, and it can only be changed
by a superuser.
</p></dd></dl></div></div><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navfooter"><hr></hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="runtime-config-custom.html" title="19.16. Customized Options">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="runtime-config.html" title="Chapter 19. Server Configuration">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="runtime-config-short.html" title="19.18. Short Options">Next</a></td></tr><tr><td width="40%" align="left" valign="top">19.16. Customized Options </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 10.23 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 19.18. Short Options</td></tr></table></div></body></html>