Point-in-time restore (PITR) gebruikt de transaction log chain om een database terug te brengen naar een precies moment. Onmisbaar bij logische fouten: een verkeerde DELETE, een corrupt batch-job, een vergeten WHERE-clause. Wat een freelance SQL DBA hierbij doet.
De voorwaarden: full recovery model
PITR werkt alleen in FULL of BULK_LOGGED recovery model. Simple recovery model heeft geen log chain die ver genoeg teruggaat. Veel klanten denken dat ze in FULL draaien terwijl ze in SIMPLE staan. Eerste check: SELECT recovery_model_desc FROM sys.databases.
Log chain compleet houden
Een PITR-restore heeft de full backup nodig plus elke transaction log backup tussen toen en het PITR-tijdstip. Mist één log backup, dan kunt u niet verder dan dat punt. Wij monitoren log backup chain compleetheid en alert op ontbrekende backups voordat de RPO-promise breekt.
RESTORE WITH STOPAT
De PITR-syntax: RESTORE LOG db FROM DISK = '...' WITH STOPAT = '2026-05-08 14:23:00'. Database in STANDBY-modus brengen voor inspectie, daarna desgewenst verder restoren of WITH RECOVERY afsluiten. Wij oefenen dit elk kwartaal in een test-omgeving.
Partial restore voor één tabel
Als u alleen één tabel terug wilt, niet de hele database, doet u een PITR naar een tijdelijke database, exporteert de tabel daarna, en herstelt in productie via SELECT-INTO of een merge-scripted load. Veel sneller dan een full restore en geen impact op andere tabellen.
STOPATMARK voor named transactions
Voor batch-jobs die zichzelf met BEGIN TRAN WITH MARK markeren, kunt u STOPATMARK gebruiken. Dat geeft een logische rollback in plaats van een tijds-gebaseerde. Voor financiele closing-runs een sterk patroon.
Verwant: Freelance SQL DBA, Backup-strategie.