Tipo fisico
I backup a livello di sistema (o backup fisici) sono essenzialmente delle istantanee di tutti i file del database. Ma non è così facile come potrebbe sembrare, perché i file all’interno di un database subiscono continue riscritture e modifiche. Il backup del database PostgreSQL riguarda due metodi chiave: la continuità nell’archiviazione e il ripristino point-in-time. Entrambi hanno lo scopo di completarsi a vicenda, per questo è importante sapere come funzionano.
Per motivi di coerenza, i backup devono avere un modo per sapere con certezza che il processo di backup sta copiando l’intero database o non sta cambiando nulla e sta lasciando il database così com’è. Ecco perché PostgreSQL dispone di una tecnologia di log write-ahead – i segmenti di log write-ahead (WAL) sono esattamente quelli di cui viene eseguito il backup durante il processo di archiviazione in corso. Le informazioni memorizzate in questi file consentono un recupero più semplice dopo un incidente e una migliore coerenza dei dati.
Non è raro che i database subiscano delle modifiche durante il processo di backup del filesystem, ma alcune di queste modifiche potrebbero danneggiare alcune parti del backup o renderlo irreparabile nel suo complesso. Per evitare tali conseguenze disastrose, PostgreSQL dispone di un’API di basso livello per il processo di backup fisico. Utilizzando “pg_start_backups()” e “pg_stop_backup()” rispettivamente prima e dopo il processo, si assicura che non vengano apportate modifiche pericolose al database durante il processo di backup. Allo stesso tempo, dovrà comunque generare tutti i segmenti WAL tra questi due comandi.