Point-in-time recovery (WAL)
Continuous WAL archiving and recovering a database to a specific second.
Scheduled backups are snapshots — they let you restore to the moment each backup was taken. Point-in-time recovery (PITR) goes further: by continuously archiving the database's write-ahead log (WAL), you can recover to any second between base backups.
Enabling WAL archiving
Tick "Enable point-in-time recovery (WAL archiving)" when creating a database, or turn it on later from the database's settings. LaunchPad then configures wal-g on the server to ship WAL segments and periodic base backups to your Backblaze B2 bucket. Storage credentials live in a locked-down env file owned by postgres — never in postgresql.conf. A daily job takes a fresh base backup so recovery never has to replay an unbounded amount of WAL.
Recovering to a point in time
Start a point-in-time recovery from the database's Backups view and choose the target time. LaunchPad fetches the base backup and replays archived WAL up to that instant in an isolated temporary instance, then verifies the database is present and queryable at that point. Your live database is never touched by this step — PITR is proven by a drill, not asserted on faith.
What to know
- WAL archiving is per-database and opt-in (it adds a small amount of storage and I/O).
- Recovery is cluster-level under the hood: WAL covers the whole PostgreSQL instance, so a recovery is run in isolation and the target database extracted from it.
- Always validate PITR with a recovery drill on your actual server before relying on it — unverified PITR gives false confidence. Promoting a recovered point-in-time copy into production (the live swap) is performed only after a successful drill.