aboutsummaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/ref/pg_checksums.sgml79
1 files changed, 74 insertions, 5 deletions
diff --git a/doc/src/sgml/ref/pg_checksums.sgml b/doc/src/sgml/ref/pg_checksums.sgml
index 6a47dda6837..5343a8aa7e8 100644
--- a/doc/src/sgml/ref/pg_checksums.sgml
+++ b/doc/src/sgml/ref/pg_checksums.sgml
@@ -16,7 +16,7 @@ PostgreSQL documentation
<refnamediv>
<refname>pg_checksums</refname>
- <refpurpose>verify data checksums in a <productname>PostgreSQL</productname> database cluster</refpurpose>
+ <refpurpose>enable, disable or check data checksums in a <productname>PostgreSQL</productname> database cluster</refpurpose>
</refnamediv>
<refsynopsisdiv>
@@ -36,10 +36,19 @@ PostgreSQL documentation
<refsect1 id="r1-app-pg_checksums-1">
<title>Description</title>
<para>
- <application>pg_checksums</application> verifies data checksums in a
- <productname>PostgreSQL</productname> cluster. The server must be shut
- down cleanly before running <application>pg_checksums</application>.
- The exit status is zero if there are no checksum errors, otherwise nonzero.
+ <application>pg_checksums</application> checks, enables or disables data
+ checksums in a <productname>PostgreSQL</productname> cluster. The server
+ must be shut down cleanly before running
+ <application>pg_checksums</application>. The exit status is zero if there
+ are no checksum errors when checking them, and nonzero if at least one
+ checksum failure is detected. If enabling or disabling checksums, the
+ exit status is nonzero if the operation failed.
+ </para>
+
+ <para>
+ While checking or enabling checksums needs to scan or write every file in
+ the cluster, disabling checksums will only update the file
+ <filename>pg_control</filename>.
</para>
</refsect1>
@@ -61,6 +70,37 @@ PostgreSQL documentation
</varlistentry>
<varlistentry>
+ <term><option>-c</option></term>
+ <term><option>--check</option></term>
+ <listitem>
+ <para>
+ Checks checksums. This is the default mode if nothing else is
+ specified.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-d</option></term>
+ <term><option>--disable</option></term>
+ <listitem>
+ <para>
+ Disables checksums.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-e</option></term>
+ <term><option>--enable</option></term>
+ <listitem>
+ <para>
+ Enables checksums.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><option>-v</option></term>
<term><option>--verbose</option></term>
<listitem>
@@ -119,4 +159,33 @@ PostgreSQL documentation
</varlistentry>
</variablelist>
</refsect1>
+
+ <refsect1>
+ <title>Notes</title>
+ <para>
+ When disabling or enabling checksums in a replication setup of multiple
+ clusters, it is recommended to stop all the clusters before doing
+ the switch to all the clusters consistently. When using a replication
+ setup with tools which perform direct copies of relation file blocks
+ (for example <xref linkend="app-pgrewind"/>), enabling or disabling
+ checksums can lead to page corruptions in the shape of incorrect
+ checksums if the operation is not done consistently across all nodes.
+ Destroying all the standbys in the setup first, enabling or disabling
+ checksums on the primary and finally recreating the standbys from
+ scratch is also safe.
+ </para>
+ <para>
+ If <application>pg_checksums</application> is aborted or killed in
+ its operation while enabling or disabling checksums, the cluster
+ will have the same state with respect of checksums as before the
+ operation and <application>pg_checksums</application> needs to be
+ restarted.
+ </para>
+ <para>
+ When enabling checksums in a cluster, the operation can potentially
+ take a long time if the data directory is large. During this operation,
+ the cluster or other programs that write to the data directory must not
+ be started or else data loss may occur.
+ </para>
+ </refsect1>
</refentry>