↑↓ select↵ open⌫ change scopeOpen full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Configuration Parameters

zero_damaged_pages

Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to on causes the system to instead report a warning, zero out the damaged page in memory, and continue processing. This behavior will destroy data, 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 off. Only superusers and users with the appropriate SET privilege can change this setting.

English manual coverage begins with PostgreSQL 7.4. Source history and runtime observations have their own recorded version boundaries.

Reading PG 18·Select a recorded version

boot val
off
category
Developer Options
context
superuser
doc same as
Unknown
documented
true
enumvals
Unknown
lang
en
max val
Unknown
metadata version
18
min val
Unknown
name
zero_damaged_pages
short desc
Continues processing past damaged page headers.
source
pg-settings-source-snapshot
unit
Unknown
vartype
bool

Definition PG 18

Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting zero_damaged_pages to on causes the system to instead report a warning, zero out the damaged page in memory, and continue processing. This behavior will destroy data, 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 off. Only superusers and users with the appropriate SET privilege can change this setting.

Compare versions

Complete source facts

doc html

<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>.
        Only superusers and users with the appropriate <code class="literal">SET</code>
        privilege can change this setting.
       </p>

documentation revision

{"inputs":[{"file":"runtime-config-developer.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"a3f6a107ed6ba4edaf6df03e52f4a469bd09350d545e4ff419e62844025ec1cf","version":"18.7"},{"file":"runtime-config-developer.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"e7e22aa5738a1d376b84af1adca796c5e14746266733f925eb50c3ef86a50655","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"}

extra desc

Detection of a damaged page header normally causes PostgreSQL to report an error, aborting the current transaction. Setting "zero_damaged_pages" to true causes the system to instead report a warning, zero out the damaged page, and continue processing. This behavior will destroy data, namely all the rows on the damaged page.

Source references

Full definition and evidence JSON

Definition sources

center · PostgreSQL 18 · wiki-repair-20261023:739fcf3ebc084507c9c78180eac7ff118f78447bfe25f91b6da9660d849a3b12

Text language: en · wiki-repair-20261023:739fcf3ebc084507c9c78180eac7ff118f78447bfe25f91b6da9660d849a3b12