Re: Offline enabling/disabling of data checksums
Magnus Hagander <magnus@hagander.net>
From: Magnus Hagander <magnus@hagander.net>
To: Sergei Kornilov <sk@zsrv.org>
Cc: Michael Paquier <michael@paquier.xyz>,
Fabien COELHO <coelho@cri.ensmp.fr>, Michael Banck <michael.banck@credativ.de>, PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2019-03-13T11:24:21Z
Lists: pgsql-hackers
On Wed, Mar 13, 2019 at 11:54 AM Sergei Kornilov <sk@zsrv.org> wrote: > Hi > > One new question from me: how about replication? > Case: primary+replica, we shut down primary and enable checksum, and > "started streaming WAL from primary" without any issue. I have master with > checksums, but replica without. > Or cluster with checksums, then disable checksums on primary, but standby > think we have checksums. > Enabling or disabling the checksums offline on the master quite clearly requires a rebuild of the standby, there is no other way (this is one of the reasons for the online enabling in that patch, so I still hope we can get that done -- but not for this version). You would have the same with PITR backups for example. And especially if you have some tool that does block or segment level differential. Of course, we have to make sure that this actually fails. I wonder if we should bring out the big hammer and actually change the system id in pg_control when checksums are enabled/disabled by this tool? That should make it clear to any tool that it's changed. Also we support ./configure --with-blocksize=(not equals 8)? make check on > HEAD fails for me. If we support this - i think we need recheck BLCKSZ > between compiled pg_checksum and used in PGDATA > You mean if the backend and pg_checksums is built with different blocksize? Yeah, that sounds like something which is a cheap check and should be done. -- Magnus Hagander Me: https://www.hagander.net/ <http://www.hagander.net/> Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/>
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