MySQL Time Travel: Practical Row-Level Recovery With Open Source Tools

Recovering from a bad UPDATE or DELETE in MySQL is disproportionately expensive: restore a backup and replay binlogs, or hand-parse mysqlbinlog output and reconstruct the reversal manually. Both take hours for incidents that touched a handful of rows.
This session shows a faster workflow using dbtrail, an open source (Apache 2.0) tool that captures every row change from the binlog and makes it queryable.
Step by step:
- Identify which rows changed and when,
- Inspect full before and after images,
- Query any table AS OF a past timestamp with plain SQL,
- And generate the exact reversal statements for the incident, including changes propagated through FK cascades, which manual binlog parsing usually gets wrong.
Also covered: verifying that the captured history matches the source, a check you should run before trusting any of it for recovery.
Capture works over the replication protocol, so the same setup runs on-premises and on RDS or Aurora, where binlog files on disk are not accessible. Deployment is docker compose.
Everything in the session is reproducible on a test instance. Mostly live demo: real schema, real mistake, real recovery.
Speaker

Daniel is a Database Engineer with 15+ years of experience managing MySQL and PostgreSQL in production environments. He is the creator of dbtrail (dbtrail.com), an open-source continuous data protection tool for MySQL …









