Postgres 18 now enables data checksums by default during database initialization, providing automatic protection against silent data corruption. Data checksums work by calculating and storing a digital fingerprint for each 8KB data page, then verifying it on read to detect corruption. While this improves data integrity out-of-the-box, it creates a compatibility challenge for pg_upgrade users: both old and new clusters must have matching checksum settings. Existing databases without checksums can either use the new --no-data-checksums flag during upgrade initialization, or preferably enable checksums beforehand using the pg_checksums utility (though this requires downtime).

4m read timeFrom crunchydata.com
Post cover image
Table of contents
What is a data checksum?What is initdb and why does it matter?The new default --data-checksums for initdbChecksums and pg_upgradeSummary
1 Comment

Sort: