Re: Offline enabling/disabling of data checksums
Fabien COELHO <coelho@cri.ensmp.fr>
From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Magnus Hagander <magnus@hagander.net>
Cc: Michael Paquier <michael@paquier.xyz>,
Michael Banck <michael.banck@credativ.de>,
Postgres hackers <pgsql-hackers@postgresql.org>
Date: 2018-12-27T11:26:26Z
Lists: pgsql-hackers
>> For enable/disable, while the command is running, it should mark the >> cluster as opened to prevent an unwanted database start. I do not see >> where this is done. >> >> You have pretty much the same class of problems if you attempt to >> start a cluster on which pg_rewind or the existing pg_verify_checksums >> is run after these have scanned the control file to make sure that >> they work on a cleanly-stopped instance. [...] > > I think it comes down to what the outcome is. If we're going to end up with > a corrupt database (e.g. one where checksums aren't set everywhere but they > are marked as such in pg_control) then it's not acceptable. If the only > outcome is the tool gives an error that's not an error and if re-run it's > fine, then it's a different story. ISTM that such an outcome is indeed a risk, as a starting postgres could update already checksummed pages without putting a checksum. It could be even worse, although with a (very) low probability, with updates overwritten on a race condition between the processes. In any case, no error would be reported before much later, with invalid checksums or inconsistent data, or undetected forgotten committed data. -- Fabien.
Commits
-
Reorganize Notes section in documentation of pg_checksums
- a7cc52370b2b 12.0 landed
-
Add option -N/--no-sync to pg_checksums
- e0090c869008 12.0 landed
-
Add options to enable and disable checksums in pg_checksums
- ed308d783790 12.0 landed
-
Refactor more code logic to update the control file
- 8b938d36f744 12.0 landed
-
Rename pg_verify_checksums to pg_checksums
- 6dd263cfaa84 12.0 landed
-
Fix cross-version compatibility checks of pg_verify_checksums
- 501f58359b59 11.3 landed
- c9ae7f704c67 12.0 landed
-
Add routine able to update the control file to src/common/
- ce6afc6823fb 12.0 landed