Add options to enable and disable checksums in pg_checksums
authorMichael Paquier <michael@paquier.xyz>
Fri, 22 Mar 2019 23:12:55 +0000 (08:12 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 22 Mar 2019 23:12:55 +0000 (08:12 +0900)
commited308d78379008b2cebca30a986f97f992ee6122
tree4bbff996d7d61796a6797c89033f656a4b944a7c
parent87914e708aabb7e2cd9045fa95b4fed99ca458ec
Add options to enable and disable checksums in pg_checksums

An offline cluster can now work with more modes in pg_checksums:
- --enable enables checksums in a cluster, updating all blocks with a
correct checksum, and updating the control file at the end.
- --disable disables checksums in a cluster, updating only the control
file.
- --check is an extra option able to verify checksums for a cluster, and
the default used if no mode is specified.

When running --enable or --disable, the data folder gets fsync'd for
durability, and then it is followed by a control file update and flush
to keep the operation consistent should the tool be interrupted, killed
or the host unplugged.  If no mode is specified in the options, then
--check is used for compatibility with older versions of pg_checksums
(named pg_verify_checksums in v11 where it was introduced).

Author: Michael Banck, Michael Paquier
Reviewed-by: Fabien Coelho, Magnus Hagander, Sergei Kornilov
Discussion: https://postgr.es/m/20181221201616.GD4974@nighthawk.caipicrew.dd-dns.de
doc/src/sgml/ref/pg_checksums.sgml
src/bin/pg_checksums/pg_checksums.c
src/bin/pg_checksums/t/002_actions.pl
src/tools/pgindent/typedefs.list