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:17:55Z
Lists: pgsql-hackers
>> Adding a new state to ControlFileData which would prevent it from
>> starting?
>
> 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.

> But we need to set this new flag before and reset it afterwards, so in 
> between strange things can happen (as the various calls to exit() within 
> error handling illustrates).

Sure, there is some need for a backup plan if it fails and the control 
file is let in a wrong state.

-- 
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/