Objective.
Restore a PostgreSQL database to an exact second, into a new database, while the original keeps serving.
Scenario.
Rows were written before and after a target second; the database was restored to that second.
Expected behaviour.
- Restore to the chosen second into a new database.
- Hold every row written before the target, and none after it.
Measured recovery.
- Recovery time RTO
- 1 min 42 s
- How long recovery took.
- Recovery point RPO
- 0 s
- Every committed write kept.
- Database consistency
- Pass
Customer impact.
- Application availability
- The original database served throughout
- Data integrity
- Verified
- Committed data
- Fully preserved
What happened.
- Restore to the target second ordered.
- Restored database running; its rows stop exactly at the target.
Correctness checks.
- Committed data
- Fully preserved
What we learned.
- The restored copy held exactly the rows written before the target second.
What we changed.
- No change needed.
Scope of this drill.
Restore time grows with database size and the changes replayed.