Database in Distress: Testing and Repairing Different Types of Database Corruption
summary
Shows a Python corruption simulator that surgically creates damaged pages and prints diagnostics with pageinspect outputs, demonstrating when reads produce errors, bogus transaction IDs, or even segmentation faults. Explains that PostgreSQL 18 enables page checksums by default and how zero_damaged_pages will zero out unreadable blocks so dumps can continue. Describes using pg_surgery, freezing or killing tuples, scripting CTID-based salvage, and when reconstruction is impossible without clean backups.
AI-written summary · about
chapters (10)
- 0:00Introduction and welcome
- 1:05About the speaker and company
- 3:54Understanding database corruption
- 6:03Checksums in PostgreSQL 18
- 11:27Corruption in data blocks
- 17:33Damaged item IDs and tpples
- 20:47Repairing corrupted data
- 25:51Salvaging good data
- 30:15Business impact and urgency
- 35:14Q&A session begins
related talks
37mDatabase in Distress: Testing and Repairing Different Types of Database Corruption
20mDebugging Data Corruption in PostgreSQL
32mDebugging Data Corruption in PostgreSQL: A Systematic Approach
52mData Corruption Bugs: Diagnosis and Lessons
53mA DBA's Guide to the Proper Handling of Corruption
45mRecovering from a damaged cluster
42mHow to corrupt your database (and how to deal with data corruption)
39mData Corruption: Stop the Evil Tribbles
