---
title: "Postgres 18 New Default for Data Checksums and..."
url: https://daily.dev/posts/postgres-18-new-default-for-data-checksums-and--mk3onhcn2
source_url: https://www.crunchydata.com/blog/postgres-18-new-default-for-data-checksums-and-how-to-deal-with-upgrades
type: article
source: "Crunchy Data"
published: 2025-12-11T16:35:29.303Z
updated: 2025-12-11T16:35:48.378Z
tags: ["devops", "database", "postgresql"]
reading_time: 4
upvotes: 46
comments: 1
language: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Postgres 18 New Default for Data Checksums and...

**[Crunchy Data](https://daily.dev/sources/crunchydata)** · 4 min read · 46 upvotes · 1 comments

## Summary

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).

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.crunchydata.com/blog/postgres-18-new-default-for-data-checksums-and-how-to-deal-with-upgrades>

## Community discussion

Top comments from developers on daily.dev.

**@sourabhkumawat** · 2 upvotes

> Data checksums are a game-changer for silent corruption detection, but the real operational value comes in monitoring and response. A data corruption detection at page-read time can manifest as:
>
> 1. Unexpected query errors in production (worst time to discover it)
> 2. Cascading failures as the corruption spreads through application logic
> 3. Replication lag or replication breaks if corruption exists in WAL segments
>
> What CrunchyData/Postgres aren't explicitly discussing is the incident response side: once you detect a checksum failure, you have minutes to decide whether to failover, restore...

## Similar posts on daily.dev

- [All Your GUCs in a Row: data\_checksums](https://daily.dev/posts/all-your-gucs-in-a-row-data-checksums-w5hyxxpgp) · Planet PostgreSQL · 0 upvotes · 0 comments
- [Looking Forward to Postgres 19: Checksums For All](https://daily.dev/posts/looking-forward-to-postgres-19-checksums-for-all-whx7zshxw) · Planet PostgreSQL · 4 upvotes · 1 comments
- [Waiting for PostgreSQL 19 – Online enabling and disabling of data checksums – select \* from depesz;](https://daily.dev/posts/waiting-for-postgresql-19-online-enabling-and-disabling-of-data-checksums-select-from-depesz--szah7uise) · depesz · 4 upvotes · 0 comments

---

Tags: [#devops](https://daily.dev/tags/devops), [#database](https://daily.dev/tags/database), [#postgresql](https://daily.dev/tags/postgresql)

[View this post on daily.dev](https://daily.dev/posts/postgres-18-new-default-for-data-checksums-and--mk3onhcn2)
