Re: Offline enabling/disabling of data checksums

Magnus Hagander <magnus@hagander.net>

From: Magnus Hagander <magnus@hagander.net>
To: Christoph Berg <myon@debian.org>
Cc: Michael Paquier <michael@paquier.xyz>, Sergei Kornilov <sk@zsrv.org>, Fabien COELHO <coelho@cri.ensmp.fr>, Michael Banck <michael.banck@credativ.de>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2019-03-14T14:32:22Z
Lists: pgsql-hackers
On Thu, Mar 14, 2019 at 3:28 PM Christoph Berg <myon@debian.org> wrote:

> Re: Magnus Hagander 2019-03-14 <CABUevEx7QZLOjWDvwTdm1VM+mjsDm7=
> ZmB8qck7nDmcHEY5O5g@mail.gmail.com>
> > Are you suggesting we should support running with a master with checksums
> > on and a standby with checksums off in the same cluster? That seems..
> Very
> > fragile.
>
> The case "shut down master and standby, run pg_checksums on both, and
> start them again" should be supported. That seems safe to do, and a
> real-world use case.
>

I can agree with that, if we can declare it safe. You might need some way
to ensure it was shut down cleanly on both sides, I'm guessing.


Changing the system id to a random number would complicate this.
>
> (Horrible idea: maybe just adding 1 (= checksum version) to the system
> id would work?)
>

Or any other way of changing the systemid in a predictable way would also
work, right? As long as it's done the same on both sides. And that way it
would look different to any system that *doesn't* know what it means, which
is probably a good thing.

-- 
 Magnus Hagander
 Me: https://www.hagander.net/ <http://www.hagander.net/>
 Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/>

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/