Copiare i file di un database mentre gira dà un backup corrotto – la scrittura era a metà. Un backup di database va fatto in modo consistente dal punto di vista transazionale:
- dump logico –
pg_dump(PostgreSQL) omysqldump/mariadb-dump(MariaDB): esporta uno snapshot coerente in SQL. Semplice, portabile, ideale per database piccoli-medi; lo pianifichi in cron e ne mandi il risultato al backup cifrato Restic/Borg - backup fisico + WAL – per database grandi o con RPO basso (perdere pochi minuti di dati):
pg_basebackuppiù l'archiviazione dei WAL abilita il point-in-time recovery – tornare a un istante preciso, non solo all'ultima notte
La trappola classica dell'homelab: backuppare il volume di un container database con Restic senza fermarlo – è il file-mentre-gira, incoerente. La via giusta: uno script che fa il dump dentro il container e backuppa il dump, non i file vivi. E vale sempre la regola d'oro: un backup mai ripristinato è una speranza – prova un restore su un database di prova prima di averne bisogno, non dopo. È il pezzo che quasi tutti i tutorial saltano e che il giorno del disastro fa la differenza.