Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
runtime-config-developer.html464 linesDownload Raw Back to html
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>2<!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>20.17. Developer Options</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="prev" href="runtime-config-custom.html" title="20.16. Customized Options" /><link rel="next" href="runtime-config-short.html" title="20.18. Short Options" /></head><body id="docContent" class="container-fluid col-10"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">20.17. Developer Options</th></tr><tr><td width="10%" align="left"><a accesskey="p" href="runtime-config-custom.html" title="20.16. Customized Options">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="runtime-config.html" title="Chapter 20. Server Configuration">Up</a></td><th width="60%" align="center">Chapter 20. Server Configuration</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 16.3 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="runtime-config-short.html" title="20.18. Short Options">Next</a></td></tr></table><hr /></div><div class="sect1" id="RUNTIME-CONFIG-DEVELOPER"><div class="titlepage"><div><div><h2 class="title" style="clear: both">20.17. Developer Options <a href="#RUNTIME-CONFIG-DEVELOPER" class="id_link">#</a></h2></div></div></div><p>3     The following parameters are intended for developer testing, and4     should never be used on a production database.  However, some of5     them can be used to assist with the recovery of severely damaged6     databases.  As such, they have been excluded from the sample7     <code class="filename">postgresql.conf</code> file.  Note that many of these8     parameters require special source compilation flags to work at all.9    </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>)10      <a id="id-1.6.7.20.3.1.1.3" class="indexterm"></a>11      </span> <a href="#GUC-ALLOW-IN-PLACE-TABLESPACES" class="id_link">#</a></dt><dd><p>12        Allows tablespaces to be created as directories inside13        <code class="filename">pg_tblspc</code>, when an empty location string14        is provided to the <code class="command">CREATE TABLESPACE</code> command.  This15        is intended to allow testing replication scenarios where primary and16        standby servers are running on the same machine.  Such directories17        are likely to confuse backup tools that expect to find only symbolic18        links in that location.19        Only superusers and users with the appropriate <code class="literal">SET</code>20        privilege can change this setting.21       </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>)22      <a id="id-1.6.7.20.3.2.1.3" class="indexterm"></a>23      </span> <a href="#GUC-ALLOW-SYSTEM-TABLE-MODS" class="id_link">#</a></dt><dd><p>24        Allows modification of the structure of system tables as well as25        certain other risky actions on system tables.  This is otherwise not26        allowed even for superusers.  Ill-advised use of this setting can27        cause irretrievable data loss or seriously corrupt the database28        system.29        Only superusers and users with the appropriate <code class="literal">SET</code>30        privilege can change this setting.31       </p></dd><dt id="GUC-BACKTRACE-FUNCTIONS"><span class="term"><code class="varname">backtrace_functions</code> (<code class="type">string</code>)32      <a id="id-1.6.7.20.3.3.1.3" class="indexterm"></a>33      </span> <a href="#GUC-BACKTRACE-FUNCTIONS" class="id_link">#</a></dt><dd><p>34        This parameter contains a comma-separated list of C function names.35        If an error is raised and the name of the internal C function where36        the error happens matches a value in the list, then a backtrace is37        written to the server log together with the error message.  This can38        be used to debug specific areas of the source code.39       </p><p>40        Backtrace support is not available on all platforms, and the quality41        of the backtraces depends on compilation options.42       </p><p>43        Only superusers and users with the appropriate <code class="literal">SET</code>44        privilege can change this setting.45       </p></dd><dt id="GUC-DEBUG-DISCARD-CACHES"><span class="term"><code class="varname">debug_discard_caches</code> (<code class="type">integer</code>)46      <a id="id-1.6.7.20.3.4.1.3" class="indexterm"></a>47      </span> <a href="#GUC-DEBUG-DISCARD-CACHES" class="id_link">#</a></dt><dd><p>48        When set to <code class="literal">1</code>, each system catalog cache entry is49        invalidated at the first possible opportunity, whether or not50        anything that would render it invalid really occurred.  Caching of51        system catalogs is effectively disabled as a result, so the server52        will run extremely slowly.  Higher values run the cache invalidation53        recursively, which is even slower and only useful for testing54        the caching logic itself.  The default value of <code class="literal">0</code>55        selects normal catalog caching behavior.56       </p><p>57        This parameter can be very helpful when trying to trigger58        hard-to-reproduce bugs involving concurrent catalog changes, but it59        is otherwise rarely needed.  See the source code files60        <code class="filename">inval.c</code> and61        <code class="filename">pg_config_manual.h</code> for details.62       </p><p>63        This parameter is supported when64        <code class="symbol">DISCARD_CACHES_ENABLED</code> was defined at compile time65        (which happens automatically when using the66        <span class="application">configure</span> option67        <code class="option">--enable-cassert</code>).  In production builds, its value68        will always be <code class="literal">0</code> and attempts to set it to another69        value will raise an error.70       </p></dd><dt id="GUC-DEBUG-IO-DIRECT"><span class="term"><code class="varname">debug_io_direct</code> (<code class="type">string</code>)71      <a id="id-1.6.7.20.3.5.1.3" class="indexterm"></a>72      </span> <a href="#GUC-DEBUG-IO-DIRECT" class="id_link">#</a></dt><dd><p>73        Ask the kernel to minimize caching effects for relation data and WAL74        files using <code class="literal">O_DIRECT</code> (most Unix-like systems),75        <code class="literal">F_NOCACHE</code> (macOS) or76        <code class="literal">FILE_FLAG_NO_BUFFERING</code> (Windows).77       </p><p>78        May be set to an empty string (the default) to disable use of direct79        I/O, or a comma-separated list of operations that should use direct I/O.80        The valid options are <code class="literal">data</code> for81        main data files, <code class="literal">wal</code> for WAL files, and82        <code class="literal">wal_init</code> for WAL files when being initially83        allocated.84       </p><p>85        Some operating systems and file systems do not support direct I/O, so86        non-default settings may be rejected at startup or cause errors.87       </p><p>88        Currently this feature reduces performance, and is intended for89        developer testing only.90       </p></dd><dt id="GUC-DEBUG-PARALLEL-QUERY"><span class="term"><code class="varname">debug_parallel_query</code> (<code class="type">enum</code>)91      <a id="id-1.6.7.20.3.6.1.3" class="indexterm"></a>92      </span> <a href="#GUC-DEBUG-PARALLEL-QUERY" class="id_link">#</a></dt><dd><p>93        Allows the use of parallel queries for testing purposes even in cases94        where no performance benefit is expected.95        The allowed values of <code class="varname">debug_parallel_query</code> are96        <code class="literal">off</code> (use parallel mode only when it is expected to improve97        performance), <code class="literal">on</code> (force parallel query for all queries98        for which it is thought to be safe), and <code class="literal">regress</code> (like99        <code class="literal">on</code>, but with additional behavior changes as explained100        below).101       </p><p>102        More specifically, setting this value to <code class="literal">on</code> will add103        a <code class="literal">Gather</code> node to the top of any query plan for which this104        appears to be safe, so that the query runs inside of a parallel worker.105        Even when a parallel worker is not available or cannot be used,106        operations such as starting a subtransaction that would be prohibited107        in a parallel query context will be prohibited unless the planner108        believes that this will cause the query to fail.  If failures or109        unexpected results occur when this option is set, some functions used110        by the query may need to be marked <code class="literal">PARALLEL UNSAFE</code>111        (or, possibly, <code class="literal">PARALLEL RESTRICTED</code>).112       </p><p>113        Setting this value to <code class="literal">regress</code> has all of the same effects114        as setting it to <code class="literal">on</code> plus some additional effects that are115        intended to facilitate automated regression testing.  Normally,116        messages from a parallel worker include a context line indicating that,117        but a setting of <code class="literal">regress</code> suppresses this line so that the118        output is the same as in non-parallel execution.  Also,119        the <code class="literal">Gather</code> nodes added to plans by this setting are hidden120        in <code class="literal">EXPLAIN</code> output so that the output matches what121        would be obtained if this setting were turned <code class="literal">off</code>.122       </p></dd><dt id="GUC-IGNORE-SYSTEM-INDEXES"><span class="term"><code class="varname">ignore_system_indexes</code> (<code class="type">boolean</code>)123      <a id="id-1.6.7.20.3.7.1.3" class="indexterm"></a>124      </span> <a href="#GUC-IGNORE-SYSTEM-INDEXES" class="id_link">#</a></dt><dd><p>125        Ignore system indexes when reading system tables (but still126        update the indexes when modifying the tables).  This is useful127        when recovering from damaged system indexes.128        This parameter cannot be changed after session start.129       </p></dd><dt id="GUC-POST-AUTH-DELAY"><span class="term"><code class="varname">post_auth_delay</code> (<code class="type">integer</code>)130      <a id="id-1.6.7.20.3.8.1.3" class="indexterm"></a>131      </span> <a href="#GUC-POST-AUTH-DELAY" class="id_link">#</a></dt><dd><p>132        The amount of time to delay when a new133        server process is started, after it conducts the134        authentication procedure.  This is intended to give developers an135        opportunity to attach to the server process with a debugger.136        If this value is specified without units, it is taken as seconds.137        A value of zero (the default) disables the delay.138        This parameter cannot be changed after session start.139       </p></dd><dt id="GUC-PRE-AUTH-DELAY"><span class="term"><code class="varname">pre_auth_delay</code> (<code class="type">integer</code>)140      <a id="id-1.6.7.20.3.9.1.3" class="indexterm"></a>141      </span> <a href="#GUC-PRE-AUTH-DELAY" class="id_link">#</a></dt><dd><p>142        The amount of time to delay just after a143        new server process is forked, before it conducts the144        authentication procedure.  This is intended to give developers an145        opportunity to attach to the server process with a debugger to146        trace down misbehavior in authentication.147        If this value is specified without units, it is taken as seconds.148        A value of zero (the default) disables the delay.149        This parameter can only be set in the <code class="filename">postgresql.conf</code>150        file or on the server command line.151       </p></dd><dt id="GUC-TRACE-NOTIFY"><span class="term"><code class="varname">trace_notify</code> (<code class="type">boolean</code>)152      <a id="id-1.6.7.20.3.10.1.3" class="indexterm"></a>153      </span> <a href="#GUC-TRACE-NOTIFY" class="id_link">#</a></dt><dd><p>154        Generates a great amount of debugging output for the155        <code class="command">LISTEN</code> and <code class="command">NOTIFY</code>156        commands.  <a class="xref" href="runtime-config-client.html#GUC-CLIENT-MIN-MESSAGES">client_min_messages</a> or157        <a class="xref" href="runtime-config-logging.html#GUC-LOG-MIN-MESSAGES">log_min_messages</a> must be158        <code class="literal">DEBUG1</code> or lower to send this output to the159        client or server logs, respectively.160       </p></dd><dt id="GUC-TRACE-RECOVERY-MESSAGES"><span class="term"><code class="varname">trace_recovery_messages</code> (<code class="type">enum</code>)161      <a id="id-1.6.7.20.3.11.1.3" class="indexterm"></a>162      </span> <a href="#GUC-TRACE-RECOVERY-MESSAGES" class="id_link">#</a></dt><dd><p>163        Enables logging of recovery-related debugging output that otherwise164        would not be logged. This parameter allows the user to override the165        normal setting of <a class="xref" href="runtime-config-logging.html#GUC-LOG-MIN-MESSAGES">log_min_messages</a>, but only for166        specific messages. This is intended for use in debugging hot standby.167        Valid values are <code class="literal">DEBUG5</code>, <code class="literal">DEBUG4</code>,168        <code class="literal">DEBUG3</code>, <code class="literal">DEBUG2</code>, <code class="literal">DEBUG1</code>, and169        <code class="literal">LOG</code>.  The default, <code class="literal">LOG</code>, does not affect170        logging decisions at all.  The other values cause recovery-related171        debug messages of that priority or higher to be logged as though they172        had <code class="literal">LOG</code> priority; for common settings of173        <code class="varname">log_min_messages</code> this results in unconditionally sending174        them to the server log.175        This parameter can only be set in the <code class="filename">postgresql.conf</code>176        file or on the server command line.177       </p></dd><dt id="GUC-TRACE-SORT"><span class="term"><code class="varname">trace_sort</code> (<code class="type">boolean</code>)178      <a id="id-1.6.7.20.3.12.1.3" class="indexterm"></a>179      </span> <a href="#GUC-TRACE-SORT" class="id_link">#</a></dt><dd><p>180        If on, emit information about resource usage during sort operations.181        This parameter is only available if the <code class="symbol">TRACE_SORT</code> macro182        was defined when <span class="productname">PostgreSQL</span> was compiled.183        (However, <code class="symbol">TRACE_SORT</code> is currently defined by default.)184       </p></dd><dt id="GUC-TRACE-LOCKS"><span class="term"><code class="varname">trace_locks</code> (<code class="type">boolean</code>)185      <a id="id-1.6.7.20.3.13.1.3" class="indexterm"></a>186      </span> <a href="#GUC-TRACE-LOCKS" class="id_link">#</a></dt><dd><p>187        If on, emit information about lock usage.  Information dumped188        includes the type of lock operation, the type of lock and the unique189        identifier of the object being locked or unlocked.  Also included190        are bit masks for the lock types already granted on this object as191        well as for the lock types awaited on this object.  For each lock192        type a count of the number of granted locks and waiting locks is193        also dumped as well as the totals.  An example of the log file output194        is shown here:195</p><pre class="screen">196LOG:  LockAcquire: new: lock(0xb7acd844) id(24688,24696,0,0,0,1)197      grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0198      wait(0) type(AccessShareLock)199LOG:  GrantLock: lock(0xb7acd844) id(24688,24696,0,0,0,1)200      grantMask(2) req(1,0,0,0,0,0,0)=1 grant(1,0,0,0,0,0,0)=1201      wait(0) type(AccessShareLock)202LOG:  UnGrantLock: updated: lock(0xb7acd844) id(24688,24696,0,0,0,1)203      grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0204      wait(0) type(AccessShareLock)205LOG:  CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)206      grantMask(0) req(0,0,0,0,0,0,0)=0 grant(0,0,0,0,0,0,0)=0207      wait(0) type(INVALID)208</pre><p>209        Details of the structure being dumped may be found in210        <code class="filename">src/include/storage/lock.h</code>.211       </p><p>212        This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>213        macro was defined when <span class="productname">PostgreSQL</span> was214        compiled.215       </p></dd><dt id="GUC-TRACE-LWLOCKS"><span class="term"><code class="varname">trace_lwlocks</code> (<code class="type">boolean</code>)216      <a id="id-1.6.7.20.3.14.1.3" class="indexterm"></a>217      </span> <a href="#GUC-TRACE-LWLOCKS" class="id_link">#</a></dt><dd><p>218        If on, emit information about lightweight lock usage.  Lightweight219        locks are intended primarily to provide mutual exclusion of access220        to shared-memory data structures.221       </p><p>222        This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>223        macro was defined when <span class="productname">PostgreSQL</span> was224        compiled.225       </p></dd><dt id="GUC-TRACE-USERLOCKS"><span class="term"><code class="varname">trace_userlocks</code> (<code class="type">boolean</code>)226      <a id="id-1.6.7.20.3.15.1.3" class="indexterm"></a>227      </span> <a href="#GUC-TRACE-USERLOCKS" class="id_link">#</a></dt><dd><p>228        If on, emit information about user lock usage.  Output is the same229        as for <code class="symbol">trace_locks</code>, only for advisory locks.230       </p><p>231        This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>232        macro was defined when <span class="productname">PostgreSQL</span> was233        compiled.234       </p></dd><dt id="GUC-TRACE-LOCK-OIDMIN"><span class="term"><code class="varname">trace_lock_oidmin</code> (<code class="type">integer</code>)235      <a id="id-1.6.7.20.3.16.1.3" class="indexterm"></a>236      </span> <a href="#GUC-TRACE-LOCK-OIDMIN" class="id_link">#</a></dt><dd><p>237        If set, do not trace locks for tables below this OID (used to avoid238        output on system tables).239       </p><p>240        This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>241        macro was defined when <span class="productname">PostgreSQL</span> was242        compiled.243       </p></dd><dt id="GUC-TRACE-LOCK-TABLE"><span class="term"><code class="varname">trace_lock_table</code> (<code class="type">integer</code>)244      <a id="id-1.6.7.20.3.17.1.3" class="indexterm"></a>245      </span> <a href="#GUC-TRACE-LOCK-TABLE" class="id_link">#</a></dt><dd><p>246        Unconditionally trace locks on this table (OID).247       </p><p>248        This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>249        macro was defined when <span class="productname">PostgreSQL</span> was250        compiled.251       </p></dd><dt id="GUC-DEBUG-DEADLOCKS"><span class="term"><code class="varname">debug_deadlocks</code> (<code class="type">boolean</code>)252      <a id="id-1.6.7.20.3.18.1.3" class="indexterm"></a>253      </span> <a href="#GUC-DEBUG-DEADLOCKS" class="id_link">#</a></dt><dd><p>254        If set, dumps information about all current locks when a255        deadlock timeout occurs.256       </p><p>257        This parameter is only available if the <code class="symbol">LOCK_DEBUG</code>258        macro was defined when <span class="productname">PostgreSQL</span> was259        compiled.260       </p></dd><dt id="GUC-LOG-BTREE-BUILD-STATS"><span class="term"><code class="varname">log_btree_build_stats</code> (<code class="type">boolean</code>)261      <a id="id-1.6.7.20.3.19.1.3" class="indexterm"></a>262      </span> <a href="#GUC-LOG-BTREE-BUILD-STATS" class="id_link">#</a></dt><dd><p>263        If set, logs system resource usage statistics (memory and CPU) on264        various B-tree operations.265       </p><p>266        This parameter is only available if the <code class="symbol">BTREE_BUILD_STATS</code>267        macro was defined when <span class="productname">PostgreSQL</span> was268        compiled.269       </p></dd><dt id="GUC-WAL-CONSISTENCY-CHECKING"><span class="term"><code class="varname">wal_consistency_checking</code> (<code class="type">string</code>)270      <a id="id-1.6.7.20.3.20.1.3" class="indexterm"></a>271      </span> <a href="#GUC-WAL-CONSISTENCY-CHECKING" class="id_link">#</a></dt><dd><p>272        This parameter is intended to be used to check for bugs in the WAL273        redo routines.  When enabled, full-page images of any buffers modified274        in conjunction with the WAL record are added to the record.275        If the record is subsequently replayed, the system will first apply276        each record and then test whether the buffers modified by the record277        match the stored images.  In certain cases (such as hint bits), minor278        variations are acceptable, and will be ignored.  Any unexpected279        differences will result in a fatal error, terminating recovery.280       </p><p>281        The default value of this setting is the empty string, which disables282        the feature.  It can be set to <code class="literal">all</code> to check all283        records, or to a comma-separated list of resource managers to check284        only records originating from those resource managers.  Currently,285        the supported resource managers are <code class="literal">heap</code>,286        <code class="literal">heap2</code>, <code class="literal">btree</code>, <code class="literal">hash</code>,287        <code class="literal">gin</code>, <code class="literal">gist</code>, <code class="literal">sequence</code>,288        <code class="literal">spgist</code>, <code class="literal">brin</code>, and <code class="literal">generic</code>.289        Extensions may define additional resource managers. Only superusers and users with290        the appropriate <code class="literal">SET</code> privilege can change this setting.291       </p></dd><dt id="GUC-WAL-DEBUG"><span class="term"><code class="varname">wal_debug</code> (<code class="type">boolean</code>)292      <a id="id-1.6.7.20.3.21.1.3" class="indexterm"></a>293      </span> <a href="#GUC-WAL-DEBUG" class="id_link">#</a></dt><dd><p>294        If on, emit WAL-related debugging output. This parameter is295        only available if the <code class="symbol">WAL_DEBUG</code> macro was296        defined when <span class="productname">PostgreSQL</span> was297        compiled.298       </p></dd><dt id="GUC-IGNORE-CHECKSUM-FAILURE"><span class="term"><code class="varname">ignore_checksum_failure</code> (<code class="type">boolean</code>)299      <a id="id-1.6.7.20.3.22.1.3" class="indexterm"></a>300      </span> <a href="#GUC-IGNORE-CHECKSUM-FAILURE" class="id_link">#</a></dt><dd><p>301        Only has effect if <a class="xref" href="app-initdb.html#APP-INITDB-DATA-CHECKSUMS">data checksums</a> are enabled.302       </p><p>303        Detection of a checksum failure during a read normally causes304        <span class="productname">PostgreSQL</span> to report an error, aborting the current305        transaction.  Setting <code class="varname">ignore_checksum_failure</code> to on causes306        the system to ignore the failure (but still report a warning), and307        continue processing.  This behavior may <span class="emphasis"><em>cause crashes, propagate308        or hide corruption, or other serious problems</em></span>.  However, it may allow309        you to get past the error and retrieve undamaged tuples that might still be310        present in the table if the block header is still sane. If the header is311        corrupt an error will be reported even if this option is enabled. The312        default setting is <code class="literal">off</code>.313        Only superusers and users with the appropriate <code class="literal">SET</code>314        privilege can change this setting.315       </p></dd><dt id="GUC-ZERO-DAMAGED-PAGES"><span class="term"><code class="varname">zero_damaged_pages</code> (<code class="type">boolean</code>)316      <a id="id-1.6.7.20.3.23.1.3" class="indexterm"></a>317      </span> <a href="#GUC-ZERO-DAMAGED-PAGES" class="id_link">#</a></dt><dd><p>318        Detection of a damaged page header normally causes319        <span class="productname">PostgreSQL</span> to report an error, aborting the current320        transaction.  Setting <code class="varname">zero_damaged_pages</code> to on causes321        the system to instead report a warning, zero out the damaged322        page in memory, and continue processing.  This behavior <span class="emphasis"><em>will destroy data</em></span>,323        namely all the rows on the damaged page.  However, it does allow you to get324        past the error and retrieve rows from any undamaged pages that might325        be present in the table.  It is useful for recovering data if326        corruption has occurred due to a hardware or software error.  You should327        generally not set this on until you have given up hope of recovering328        data from the damaged pages of a table.  Zeroed-out pages are not329        forced to disk so it is recommended to recreate the table or330        the index before turning this parameter off again.  The331        default setting is <code class="literal">off</code>.332        Only superusers and users with the appropriate <code class="literal">SET</code>333        privilege can change this setting.334       </p></dd><dt id="GUC-IGNORE-INVALID-PAGES"><span class="term"><code class="varname">ignore_invalid_pages</code> (<code class="type">boolean</code>)335      <a id="id-1.6.7.20.3.24.1.3" class="indexterm"></a>336      </span> <a href="#GUC-IGNORE-INVALID-PAGES" class="id_link">#</a></dt><dd><p>337        If set to <code class="literal">off</code> (the default), detection of338        WAL records having references to invalid pages during339        recovery causes <span class="productname">PostgreSQL</span> to340        raise a PANIC-level error, aborting the recovery. Setting341        <code class="varname">ignore_invalid_pages</code> to <code class="literal">on</code>342        causes the system to ignore invalid page references in WAL records343        (but still report a warning), and continue the recovery.344        This behavior may <span class="emphasis"><em>cause crashes, data loss,345        propagate or hide corruption, or other serious problems</em></span>.346        However, it may allow you to get past the PANIC-level error,347        to finish the recovery, and to cause the server to start up.348        The parameter can only be set at server start. It only has effect349        during recovery or in standby mode.350       </p></dd><dt id="GUC-JIT-DEBUGGING-SUPPORT"><span class="term"><code class="varname">jit_debugging_support</code> (<code class="type">boolean</code>)351      <a id="id-1.6.7.20.3.25.1.3" class="indexterm"></a>352      </span> <a href="#GUC-JIT-DEBUGGING-SUPPORT" class="id_link">#</a></dt><dd><p>353        If LLVM has the required functionality, register generated functions354        with <span class="productname">GDB</span>.  This makes debugging easier.355        The default setting is <code class="literal">off</code>.356        This parameter can only be set at server start.357       </p></dd><dt id="GUC-JIT-DUMP-BITCODE"><span class="term"><code class="varname">jit_dump_bitcode</code> (<code class="type">boolean</code>)358      <a id="id-1.6.7.20.3.26.1.3" class="indexterm"></a>359      </span> <a href="#GUC-JIT-DUMP-BITCODE" class="id_link">#</a></dt><dd><p>360        Writes the generated <span class="productname">LLVM</span> IR out to the361        file system, inside <a class="xref" href="runtime-config-file-locations.html#GUC-DATA-DIRECTORY">data_directory</a>. This is only362        useful for working on the internals of the JIT implementation.363        The default setting is <code class="literal">off</code>.364        Only superusers and users with the appropriate <code class="literal">SET</code>365        privilege can change this setting.366       </p></dd><dt id="GUC-JIT-EXPRESSIONS"><span class="term"><code class="varname">jit_expressions</code> (<code class="type">boolean</code>)367      <a id="id-1.6.7.20.3.27.1.3" class="indexterm"></a>368      </span> <a href="#GUC-JIT-EXPRESSIONS" class="id_link">#</a></dt><dd><p>369        Determines whether expressions are JIT compiled, when JIT compilation370        is activated (see <a class="xref" href="jit-decision.html" title="32.2. When to JIT?">Section 32.2</a>).  The default is371        <code class="literal">on</code>.372       </p></dd><dt id="GUC-JIT-PROFILING-SUPPORT"><span class="term"><code class="varname">jit_profiling_support</code> (<code class="type">boolean</code>)373      <a id="id-1.6.7.20.3.28.1.3" class="indexterm"></a>374      </span> <a href="#GUC-JIT-PROFILING-SUPPORT" class="id_link">#</a></dt><dd><p>375        If LLVM has the required functionality, emit the data needed to allow376        <span class="productname">perf</span> to profile functions generated by JIT.377        This writes out files to <code class="filename">~/.debug/jit/</code>; the378        user is responsible for performing cleanup when desired.379        The default setting is <code class="literal">off</code>.380        This parameter can only be set at server start.381       </p></dd><dt id="GUC-JIT-TUPLE-DEFORMING"><span class="term"><code class="varname">jit_tuple_deforming</code> (<code class="type">boolean</code>)382      <a id="id-1.6.7.20.3.29.1.3" class="indexterm"></a>383      </span> <a href="#GUC-JIT-TUPLE-DEFORMING" class="id_link">#</a></dt><dd><p>384        Determines whether tuple deforming is JIT compiled, when JIT385        compilation is activated (see <a class="xref" href="jit-decision.html" title="32.2. When to JIT?">Section 32.2</a>).386        The default is <code class="literal">on</code>.387       </p></dd><dt id="GUC-REMOVE-TEMP-FILES-AFTER-CRASH"><span class="term"><code class="varname">remove_temp_files_after_crash</code> (<code class="type">boolean</code>)388      <a id="id-1.6.7.20.3.30.1.3" class="indexterm"></a>389      </span> <a href="#GUC-REMOVE-TEMP-FILES-AFTER-CRASH" class="id_link">#</a></dt><dd><p>390        When set to <code class="literal">on</code>, which is the default,391        <span class="productname">PostgreSQL</span> will automatically remove392        temporary files after a backend crash. If disabled, the files will be393        retained and may be used for debugging, for example. Repeated crashes394        may however result in accumulation of useless files. This parameter395        can only be set in the <code class="filename">postgresql.conf</code> file or on396        the server command line.397       </p></dd><dt id="GUC-SEND-ABORT-FOR-CRASH"><span class="term"><code class="varname">send_abort_for_crash</code> (<code class="type">boolean</code>)398      <a id="id-1.6.7.20.3.31.1.3" class="indexterm"></a>399      </span> <a href="#GUC-SEND-ABORT-FOR-CRASH" class="id_link">#</a></dt><dd><p>400        By default, after a backend crash the postmaster will stop remaining401        child processes by sending them <span class="systemitem">SIGQUIT</span>402        signals, which permits them to exit more-or-less gracefully.  When403        this option is set to <code class="literal">on</code>,404        <span class="systemitem">SIGABRT</span> is sent instead.  That normally405        results in production of a core dump file for each such child406        process.407        This can be handy for investigating the states of other processes408        after a crash.  It can also consume lots of disk space in the event409        of repeated crashes, so do not enable this on systems you are not410        monitoring carefully.411        Beware that no support exists for cleaning up the core file(s)412        automatically.413        This parameter can only be set in414        the <code class="filename">postgresql.conf</code> file or on the server415        command line.416       </p></dd><dt id="GUC-SEND-ABORT-FOR-KILL"><span class="term"><code class="varname">send_abort_for_kill</code> (<code class="type">boolean</code>)417      <a id="id-1.6.7.20.3.32.1.3" class="indexterm"></a>418      </span> <a href="#GUC-SEND-ABORT-FOR-KILL" class="id_link">#</a></dt><dd><p>419        By default, after attempting to stop a child process with420        <span class="systemitem">SIGQUIT</span>, the postmaster will wait five421        seconds and then send <span class="systemitem">SIGKILL</span> to force422        immediate termination.  When this option is set423        to <code class="literal">on</code>, <span class="systemitem">SIGABRT</span> is sent424        instead of <span class="systemitem">SIGKILL</span>.  That normally results425        in production of a core dump file for each such child process.426        This can be handy for investigating the states427        of <span class="quote">“<span class="quote">stuck</span>”</span> child processes.  It can also consume lots428        of disk space in the event of repeated crashes, so do not enable429        this on systems you are not monitoring carefully.430        Beware that no support exists for cleaning up the core file(s)431        automatically.432        This parameter can only be set in433        the <code class="filename">postgresql.conf</code> file or on the server434        command line.435       </p></dd><dt id="GUC-DEBUG-LOGICAL-REPLICATION-STREAMING"><span class="term"><code class="varname">debug_logical_replication_streaming</code> (<code class="type">enum</code>)436      <a id="id-1.6.7.20.3.33.1.3" class="indexterm"></a>437      </span> <a href="#GUC-DEBUG-LOGICAL-REPLICATION-STREAMING" class="id_link">#</a></dt><dd><p>438        The allowed values are <code class="literal">buffered</code> and439        <code class="literal">immediate</code>. The default is <code class="literal">buffered</code>.440        This parameter is intended to be used to test logical decoding and441        replication of large transactions.  The effect of442        <code class="varname">debug_logical_replication_streaming</code> is different for the443        publisher and subscriber:444       </p><p>445        On the publisher side, <code class="varname">debug_logical_replication_streaming</code>446        allows streaming or serializing changes immediately in logical decoding.447        When set to <code class="literal">immediate</code>, stream each change if the448        <a class="link" href="sql-createsubscription.html#SQL-CREATESUBSCRIPTION-WITH-STREAMING"><code class="literal">streaming</code></a>449        option of450        <a class="link" href="sql-createsubscription.html" title="CREATE SUBSCRIPTION"><code class="command">CREATE SUBSCRIPTION</code></a>451        is enabled, otherwise, serialize each change.  When set to452        <code class="literal">buffered</code>, the decoding will stream or serialize453        changes when <code class="varname">logical_decoding_work_mem</code> is reached.454       </p><p>455        On the subscriber side, if the <code class="literal">streaming</code> option is set to456        <code class="literal">parallel</code>, <code class="varname">debug_logical_replication_streaming</code>457        can be used to direct the leader apply worker to send changes to the458        shared memory queue or to serialize all changes to the file.  When set to459        <code class="literal">buffered</code>, the leader sends changes to parallel apply460        workers via a shared memory queue.  When set to461        <code class="literal">immediate</code>, the leader serializes all changes to files462        and notifies the parallel apply workers to read and apply them at the463        end of the transaction.464       </p></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="runtime-config-custom.html" title="20.16. Customized Options">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="runtime-config.html" title="Chapter 20. Server Configuration">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="runtime-config-short.html" title="20.18. Short Options">Next</a></td></tr><tr><td width="40%" align="left" valign="top">20.16. Customized Options </td><td width="20%" align="center"><a accesskey="h" href="index.html" title="PostgreSQL 16.3 Documentation">Home</a></td><td width="40%" align="right" valign="top"> 20.18. Short Options</td></tr></table></div></body></html>
codekingpro/portable-devtools · Team Ai