PITR
Point-in-Time Recovery
PITR (Point-in-Time Recovery) è una tecnica di ripristino che permette di riportare un database a un qualsiasi momento nel tempo, non solo al momento del backup. Si basa sulla combinazione di un backup completo e dei log delle transazioni (binary log in MySQL, WAL in PostgreSQL, redo log in Oracle).
Come funziona #
Il processo si articola in due fasi:
- Restore del backup: si ripristina il database all’ultimo backup disponibile
- Replay dei log: si riapplicano i log delle transazioni dal momento del backup fino al momento desiderato, escludendo l’evento che ha causato il problema
In MySQL, il tool mysqlbinlog estrae gli eventi dai binary log e li riproduce sul database ripristinato.
A cosa serve #
PITR è essenziale quando si verifica un errore umano (DROP TABLE, DELETE senza WHERE, UPDATE massivo sbagliato) e si deve ripristinare il database allo stato immediatamente precedente all’errore, senza perdere le ore di lavoro tra l’ultimo backup e l’incidente.
Quando si usa #
PITR richiede che il binary log sia attivo e che i file binlog non siano stati eliminati. La retention dei binlog deve coprire almeno il doppio dell’intervallo tra due backup consecutivi per garantire una copertura PITR completa.