Re: Offline enabling/disabling of data checksums

Fabien COELHO <coelho@cri.ensmp.fr>

From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Bernd Helmle <mailings@oopsware.de>
Cc: Michael Banck <michael.banck@credativ.de>, Magnus Hagander <magnus@hagander.net>, Michael Paquier <michael@paquier.xyz>, Postgres hackers <pgsql-hackers@postgresql.org>
Date: 2019-01-08T15:45:49Z
Lists: pgsql-hackers
>>> But then you have to make sure the control flag gets cleared in any
>>> case pg_verify_checksums crashes somehow or gets SIGKILL'ed ...
>>
>> The usual approach is a restart with some --force option?
>>
>>> Setting the checksum flag is done after having finished all blocks, so 
>>> there is no problem.
>>
>> There is also a problem if the db is started while the checksum is 
>> being enabled.
>
> What i mean is that interrupting pg_verify_checksums won't leave 
> pg_control in a state where starting the cluster won't work without any 
> further interaction.

Yep, I understood that, and agree that a way out is needed, hence the 
--force option suggestion.

-- 
Fabien.


Commits

  1. Reorganize Notes section in documentation of pg_checksums

  2. Add option -N/--no-sync to pg_checksums

  3. Add options to enable and disable checksums in pg_checksums

  4. Refactor more code logic to update the control file

  5. Rename pg_verify_checksums to pg_checksums

  6. Fix cross-version compatibility checks of pg_verify_checksums

  7. Add routine able to update the control file to src/common/