<term><option>--data-checksums</option></term>
<listitem>
<para>
- Use checksums on data pages to help detect corruption by the
- I/O system that would otherwise be silent. Enabling checksums
+ Use checksums on data pages to help detect corruption by the I/O
+ system that would otherwise be silent. This is enabled by default;
+ use <xref linkend="app-initdb-no-data-checksums"/> to disable
+ checksums.
+ </para>
+
+ <para>
+ Enabling checksums
might incur a small performance penalty. If set, checksums
are calculated for all objects, in all databases. All checksum
failures will be reported in the
</listitem>
</varlistentry>
- <varlistentry id="app-initdb-no-data-checksums" xreflabel="no data checksums">
+ <varlistentry id="app-initdb-no-data-checksums">
<term><option>--no-data-checksums</option></term>
<listitem>
<para>
- Do not enable data checksums. This can be used to override a
- <option>--data-checksums</option> option.
+ Do not enable data checksums.
</para>
</listitem>
</varlistentry>
static bool do_sync = true;
static bool sync_only = false;
static bool show_setting = false;
-static bool data_checksums = false;
+static bool data_checksums = true;
static char *xlog_dir = NULL;
static int wal_segment_size_mb = (DEFAULT_XLOG_SEG_SIZE) / (1024 * 1024);
static DataDirSyncMethod sync_method = DATA_DIR_SYNC_METHOD_FSYNC;
}
}
-# Control file should tell that data checksums are disabled by default.
+# Control file should tell that data checksums are enabled by default.
command_like(
[ 'pg_controldata', $datadir ],
- qr/Data page checksum version:.*0/,
- 'checksums are disabled in control file');
-# pg_checksums fails with checksums disabled by default. This is
-# not part of the tests included in pg_checksums to save from
-# the creation of an extra instance.
-command_fails([ 'pg_checksums', '-D', $datadir ],
- "pg_checksums fails with data checksum disabled");
+ qr/Data page checksum version:.*1/,
+ 'checksums are enabled in control file');
command_ok([ 'initdb', '-S', $datadir ], 'sync only');
command_fails([ 'initdb', $datadir ], 'existing data directory');
qr/Data page checksum version:.*0/,
'checksums are disabled in control file');
+# pg_checksums fails with checksums disabled. This is
+# not part of the tests included in pg_checksums to save from
+# the creation of an extra instance.
+command_fails(
+ [ 'pg_checksums', '-D', $datadir_nochecksums ],
+ "pg_checksums fails with data checksum disabled");
+
done_testing();