Continuous Data Protection for MySQL · Built for the agent era
Rewind your MySQL
to any moment.
Welcome time-travel to MySQL.
Claude, Cursor, and Copilot now write your migrations, your tests, your queries. Some go to production directly. Some sneak in through a PR no one fully read.
Every INSERT, UPDATE, and DELETE · captured · attributed · reversible
02 The gap, closed
Every major OLTP has time travel. Now MySQL does too.
Oracle has had Flashback since 2001. SQL Server added Temporal Tables in 2016. CockroachDB shipped time travel on day one. MySQL never got it. dbtrail closes that gap without changing your schema, your engine, or your write path.
| Engine | Native row-level history | Mechanism |
|---|---|---|
| Oracle | Flashback Query, Version Query, Transaction Query | Undo tablespace, Flashback Data Archive |
| SQL Server | System-Versioned Temporal Tables (2016+) | Parallel history table, auto-maintained |
| PostgreSQL | None native — extensions like temporal_tables |
N/A |
| CockroachDB | AS OF SYSTEM TIME within the GC window |
MVCC |
| MySQL | None | Binlog files |
| MySQL + dbtrail | Continuous, retroactive — every table, no opt-in | Indexed binlog stream, queryable history |
Read the full argument: Every Major OLTP Has Time Travel. Except MySQL →
03 What it does
When something goes wrong in your database.
Every team running production MySQL is one bad query away from a disaster. dbtrail is the safety net that means you don't need a 4 a.m. backup restore to fix it.
Your migration was generated by Claude. Your test was generated by Cursor.
The agent doesn't have credentials to your database. Your developer does. Whatever the agent generated — a migration that drops a column with data, a test that DELETEs without WHERE — goes to production through a PR no one fully read. dbtrail catches it the moment it hits the binlog.
generated by claude-code · approved by deploy@
→ 12,847 rows affected · recovery sql ready
Production data changed when it shouldn't have.
A migration touched the wrong rows. dbtrail tells you which ones, what they looked like before, and gives you the SQL to revert exactly that.
order_id=44021, 44022 · active→cancelled
"What happened last Tuesday at 3 p.m.?"
Search by table, time, primary key, column changed, or user. Or ask Claude in plain English.
→ deploy@rails-migration · 29.99→2.99
Audit trail for SOC 2, HIPAA, PCI-DSS.
Every change to every row, with attribution and timestamps, indexed continuously. Aligned to your auditor's checklist.
tamper-evident · external storage
04 How you use it
Three interfaces. One index.
No commands to memorize. No connection strings to remember. Use whatever fits the workflow you're already in.
Talk to it
Native MCP. Ask Claude, Cursor, VS Code, or Windsurf in plain English. Recovery SQL comes back ready to review.
→ root@10.0.2.15 via rails-app, 14:23 UTC
Click through it
Web dashboard. Search by table, event type, time range, primary key, or changed column. Visual filtering with full before/after row data.
Table: customers
Event: DELETE
→ 3 results found
Script against it
REST API. Every query and recovery operation available programmatically. Drop into your CI/CD, your runbook, your incident response.
api.dbtrail.com/v1/query \
-d '{"event_type":"DELETE"}'
Recovery SQL generation
Deterministic SQL ready to review. No LLM inference in the recovery path.
FK-aware dependency depth
Topological sort across foreign keys. Parent row restored, children come with it.
Events indexed per server
Continuous binlog capture. Sub-second RPO. No triggers, no polling, zero overhead.
05 Built in the open
The agent runs in your infrastructure.
bintrail, the capture engine, is open source. It runs inside your VPC, reads the binlog stream MySQL is already writing, and streams indexed events out. dbtrail never touches your raw data.
- Auditable. Read every line of the Go agent on GitHub before you run it.
- Outbound-only. One WebSocket out. No inbound connections to your network.
- Dry-run by default. Recovery SQL is generated for review. Nothing executes without you.
06 The framework
We're writing what the agent era means for MySQL.
Other vendors welcome you to the agentic enterprise. We're writing the vocabulary for what actually happens when AI starts writing production SQL — directly or through code that reaches it. Free, evolving, and how we think about the product we're building.
Three Promises in the Agent Era, Part 1: The Frame, Reread
A diagnostic lens for thinking about MySQL when the caller is no longer human. Patterns are the answers; the framework tells you which questions to ask.
Ask Claude what happened to your MySQL
10 real questions you can ask Claude through dbtrail's MCP integration today. From "who deleted customer 442341" to "is the server healthy".
Every Major OLTP Has Time Travel. Except MySQL.
Oracle Flashback, Postgres temporal tables, SQL Server temporal tables. MySQL had nothing. We had to build it.
07 Start
Connect a server. Skip the disaster.
15 minutes to set up. Sub-second RPO from the first event captured. Free tier forever for one server.
no credit card required · soc 2 ready · open-source agent