diff options
author | Magnus Hagander <magnus@hagander.net> | 2021-01-17 15:31:23 +0100 |
---|---|---|
committer | Magnus Hagander <magnus@hagander.net> | 2021-01-17 15:31:23 +0100 |
commit | cf621d9d84db1e6edaff8ffa26bad93fdce5f830 (patch) | |
tree | a8776faef923e19090a1bcfec3dc7b8ba6a818cd | |
parent | 1db0d173a2201119f297ea35edfb41579893dd8c (diff) | |
download | postgresql-cf621d9d84db1e6edaff8ffa26bad93fdce5f830.tar.gz postgresql-cf621d9d84db1e6edaff8ffa26bad93fdce5f830.zip |
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
-rw-r--r-- | doc/src/sgml/amcheck.sgml | 4 | ||||
-rw-r--r-- | doc/src/sgml/ref/initdb.sgml | 1 | ||||
-rw-r--r-- | doc/src/sgml/wal.sgml | 49 |
3 files changed, 51 insertions, 3 deletions
diff --git a/doc/src/sgml/amcheck.sgml b/doc/src/sgml/amcheck.sgml index 8dfb01a77be..a2571d33ae6 100644 --- a/doc/src/sgml/amcheck.sgml +++ b/doc/src/sgml/amcheck.sgml @@ -393,7 +393,7 @@ SET client_min_messages = DEBUG1; <para> <filename>amcheck</filename> can be effective at detecting various types of 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: <itemizedlist> @@ -497,7 +497,7 @@ SET client_min_messages = DEBUG1; Structural corruption can happen due to faulty storage hardware, or relation files being overwritten or modified by unrelated software. 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>. </para> diff --git a/doc/src/sgml/ref/initdb.sgml b/doc/src/sgml/ref/initdb.sgml index 995d78408e5..afd344b4c06 100644 --- a/doc/src/sgml/ref/initdb.sgml +++ b/doc/src/sgml/ref/initdb.sgml @@ -219,6 +219,7 @@ PostgreSQL documentation failures will be reported in the <link linkend="monitoring-pg-stat-database-view"> <structname>pg_stat_database</structname></link> view. + See <xref linkend="checksums" /> for details. </para> </listitem> </varlistentry> diff --git a/doc/src/sgml/wal.sgml b/doc/src/sgml/wal.sgml index f4bc147b106..66de1ee2f81 100644 --- a/doc/src/sgml/wal.sgml +++ b/doc/src/sgml/wal.sgml @@ -196,7 +196,7 @@ Data pages are not currently checksummed by default, though full page images recorded in WAL records will be protected; see <link linkend="app-initdb-data-checksums"><application>initdb</application></link> - for details about enabling data page checksums. + for details about enabling data checksums. </para> </listitem> <listitem> @@ -230,6 +230,53 @@ </para> </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"> <title>Write-Ahead Logging (<acronym>WAL</acronym>)</title> |