mirror of
https://github.com/postgres/postgres.git
synced 2025-09-05 02:22:28 +03:00
Add GUC ignore_invalid_pages.
Detection of WAL records having references to invalid pages during recovery causes PostgreSQL to raise a PANIC-level error, aborting the recovery. Setting ignore_invalid_pages to on causes the system to ignore those WAL records (but still report a warning), and continue recovery. This behavior may cause crashes, data loss, propagate or hide corruption, or other serious problems. However, it may allow you to get past the PANIC-level error, to finish the recovery, and to cause the server to start up. Author: Fujii Masao Reviewed-by: Michael Paquier Discussion: https://www.postgresql.org/message-id/CAHGQGwHCK6f77yeZD4MHOnN+PaTf6XiJfEB+Ce7SksSHjeAWtg@mail.gmail.com
This commit is contained in:
@@ -9950,6 +9950,31 @@ LOG: CleanUpLock: deleting: lock(0xb7acd844) id(24688,24696,0,0,0,1)
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-ignore-invalid-pages" xreflabel="ignore_invalid_pages">
|
||||
<term><varname>ignore_invalid_pages</varname> (<type>boolean</type>)
|
||||
<indexterm>
|
||||
<primary><varname>ignore_invalid_pages</varname> configuration parameter</primary>
|
||||
</indexterm>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
If set to <literal>off</literal> (the default), detection of
|
||||
WAL records having references to invalid pages during
|
||||
recovery causes <productname>PostgreSQL</productname> to
|
||||
raise a PANIC-level error, aborting the recovery. Setting
|
||||
<varname>ignore_invalid_pages</varname> to <literal>on</literal>
|
||||
causes the system to ignore invalid page references in WAL records
|
||||
(but still report a warning), and continue the recovery.
|
||||
This behavior may <emphasis>cause crashes, data loss,
|
||||
propagate or hide corruption, or other serious problems</emphasis>.
|
||||
However, it may allow you to get past the PANIC-level error,
|
||||
to finish the recovery, and to cause the server to start up.
|
||||
The parameter can only be set at server start. It only has effect
|
||||
during recovery or in standby mode.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-jit-debugging-support" xreflabel="jit_debugging_support">
|
||||
<term><varname>jit_debugging_support</varname> (<type>boolean</type>)
|
||||
<indexterm>
|
||||
|
Reference in New Issue
Block a user