Add documentation chapter about checksums
Data checksums did not have a longer discussion in the docs, this adds a short section with an overview. Extracted from the larger patch for on-line enabling of checksums, which has many more authors and reviewers. Author: Daniel Gustafsson Reviewed-By: Magnus Hagander, Michael Banck (and others through the big patch) Discussion: https://postgr.es/m/5ff49fa4.1c69fb81.658f3.04ac@mx.google.com
This commit is contained in:
parent
1db0d173a2
commit
cf621d9d84
@ -393,7 +393,7 @@ SET client_min_messages = DEBUG1;
|
|||||||
<para>
|
<para>
|
||||||
<filename>amcheck</filename> can be effective at detecting various types of
|
<filename>amcheck</filename> can be effective at detecting various types of
|
||||||
failure modes that <link
|
failure modes that <link
|
||||||
linkend="app-initdb-data-checksums"><application>data page
|
linkend="app-initdb-data-checksums"><application>data
|
||||||
checksums</application></link> will fail to catch. These include:
|
checksums</application></link> will fail to catch. These include:
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
@ -497,7 +497,7 @@ SET client_min_messages = DEBUG1;
|
|||||||
Structural corruption can happen due to faulty storage hardware, or
|
Structural corruption can happen due to faulty storage hardware, or
|
||||||
relation files being overwritten or modified by unrelated software.
|
relation files being overwritten or modified by unrelated software.
|
||||||
This kind of corruption can also be detected with
|
This kind of corruption can also be detected with
|
||||||
<link linkend="app-initdb-data-checksums"><application>data page
|
<link linkend="checksums"><application>data page
|
||||||
checksums</application></link>.
|
checksums</application></link>.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
@ -219,6 +219,7 @@ PostgreSQL documentation
|
|||||||
failures will be reported in the
|
failures will be reported in the
|
||||||
<link linkend="monitoring-pg-stat-database-view">
|
<link linkend="monitoring-pg-stat-database-view">
|
||||||
<structname>pg_stat_database</structname></link> view.
|
<structname>pg_stat_database</structname></link> view.
|
||||||
|
See <xref linkend="checksums" /> for details.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
@ -196,7 +196,7 @@
|
|||||||
Data pages are not currently checksummed by default, though full page images
|
Data pages are not currently checksummed by default, though full page images
|
||||||
recorded in WAL records will be protected; see <link
|
recorded in WAL records will be protected; see <link
|
||||||
linkend="app-initdb-data-checksums"><application>initdb</application></link>
|
linkend="app-initdb-data-checksums"><application>initdb</application></link>
|
||||||
for details about enabling data page checksums.
|
for details about enabling data checksums.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
@ -230,6 +230,53 @@
|
|||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="checksums">
|
||||||
|
<title>Data Checksums</title>
|
||||||
|
<indexterm>
|
||||||
|
<primary>checksums</primary>
|
||||||
|
</indexterm>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Data pages are not checksum protected by default, but this can optionally be
|
||||||
|
enabled for a cluster. When enabled, each data page will be assigned a
|
||||||
|
checksum that is updated when the page is written and verified every time
|
||||||
|
the page is read. Only data pages are protected by checksums, internal data
|
||||||
|
structures and temporary files are not.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Checksums are normally enabled when the cluster is initialized using <link
|
||||||
|
linkend="app-initdb-data-checksums"><application>initdb</application></link>.
|
||||||
|
They can also be enabled or disabled at a later time as an offline
|
||||||
|
operation. Data checksums are enabled or disabled at the full cluster
|
||||||
|
level, and cannot be specified individually for databases or tables.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The current state of checksums in the cluster can be verified by viewing the
|
||||||
|
value of the read-only configuration variable <xref
|
||||||
|
linkend="guc-data-checksums" /> by issuing the command <command>SHOW
|
||||||
|
data_checksums</command>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
When attempting to recover from corrupt data it may be necessary to bypass
|
||||||
|
the checksum protection in order to recover data. To do this, temporarily
|
||||||
|
set the configuration parameter <xref linkend="guc-ignore-checksum-failure" />.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2 id="checksums-offline-enable-disable">
|
||||||
|
<title>Off-line Enabling of Checksums</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The <link linkend="app-pgchecksums"><application>pg_checksums</application></link>
|
||||||
|
application can be used to enable or disable data checksums, as well as
|
||||||
|
verify checksums, on an offline cluster.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="wal-intro">
|
<sect1 id="wal-intro">
|
||||||
<title>Write-Ahead Logging (<acronym>WAL</acronym>)</title>
|
<title>Write-Ahead Logging (<acronym>WAL</acronym>)</title>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user