initdb: Change default to using data checksums.
Checksums are now on by default. They can be disabled by the previously added option --no-data-checksums. Author: Greg Sabino Mullane <greg@turnstep.com> Reviewed-by: Nathan Bossart <nathandbossart@gmail.com> Reviewed-by: Peter Eisentraut <peter@eisentraut.org> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Discussion: https://www.postgresql.org/message-id/flat/CAKAnmmKwiMHik5AHmBEdf5vqzbOBbcwEPHo4-PioWeAbzwcTOQ@mail.gmail.com
This commit is contained in:
parent
67846550dc
commit
04bec894a0
@ -265,8 +265,14 @@ PostgreSQL documentation
|
||||
<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
|
||||
@ -343,12 +349,11 @@ PostgreSQL documentation
|
||||
</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>
|
||||
|
@ -164,7 +164,7 @@ static bool noinstructions = false;
|
||||
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;
|
||||
|
@ -69,16 +69,11 @@ mkdir $datadir;
|
||||
}
|
||||
}
|
||||
|
||||
# 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');
|
||||
@ -280,4 +275,11 @@ command_like(
|
||||
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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user