Accedi Prova gratis
← Back to blog

Backup del server e ripristino database: cosa si trascura

Un backup del server può esistere senza offrire un punto di recupero del database utilizzabile. Scopri come backup coerenti, log, test e responsabilità documentate riducono i rischi.

📝 Questo articolo è stato prodotto con l'assistenza di strumenti automatici e revisionato dal team Safenix prima della pubblicazione.

Un backup del server non equivale a un database ripristinabile. I file possono essere presenti, il processo di backup può indicare un esito positivo e il periodo di conservazione può sembrare adeguato, ma l'azienda può comunque perdere ore o giorni quando è necessario un ripristino.

La differenza sta nella coerenza. Un database è un sistema attivo composto da transazioni, memoria, configurazione, credenziali, dipendenze applicative e, talvolta, file di log separati. Copiare i file mentre sono in corso operazioni di scrittura può produrre un insieme di dati che non può essere aperto correttamente o considerato affidabile dopo il recupero.

Per le aziende che dipendono da anagrafiche clienti, ordini, dati finanziari, informazioni di magazzino o applicazioni interne, la domanda reale non è se esista un backup. È se l'organizzazione sia in grado di ripristinare il database corretto, al momento corretto, con le impostazioni e gli accessi necessari per far funzionare nuovamente l'applicazione.

Perché un backup del server potrebbe non ripristinare un database

Un backup del server a livello di file acquisisce file e directory secondo una pianificazione. È utile per recuperare un sistema operativo, i binari delle applicazioni, i documenti caricati e i file di configurazione. Può acquisire anche i file del database. Tuttavia, un file acquisito non è automaticamente un backup valido del database.

La maggior parte dei database di produzione cambia continuamente. Una transazione può aggiornare diverse tabelle, scrivere in un log delle transazioni e modificare indici o metadati interni. Se un backup copia una tabella prima di un aggiornamento e un'altra dopo l'aggiornamento, l'insieme risultante potrebbe non rappresentare alcun momento valido nella cronologia del database.

Alcuni motori di database supportano snapshot coerenti o modalità di backup speciali. Altri richiedono all'amministratore di svuotare i buffer di scrittura, utilizzare un agente consapevole del database, esportare i dati tramite strumenti nativi o includere i log delle transazioni. Il metodo corretto dipende dal motore e dalla distribuzione. Non si dovrebbe mai presumere che una semplice copia generica dei file offra la stessa protezione di un backup coerente a livello di database.

Confronto tra backup a livello di file e backup consapevole del database

  • Backup del server a livello di file: protegge file, cartelle e spesso l'intero ambiente del server. È utile per il recupero completo del server, ma potrebbe non comprendere le transazioni attive del database.
  • Backup coerente del database: utilizza un metodo supportato per creare una copia ripristinabile, gestendo correttamente lo stato delle transazioni.
  • Backup del log delle transazioni: conserva le modifiche effettuate tra backup completi o differenziali, consentendo un punto di recupero più recente quando il motore di database lo supporta.
  • Recupero point-in-time: combina un backup di base adeguato con log o altri record delle modifiche per ripristinare il database a un momento scelto prima di un guasto.

Questi approcci sono complementari, non intercambiabili. Un backup completo del server può aiutare a ricostruire l'host, mentre i backup nativi del database e i log delle transazioni possono fornire un ripristino del database più preciso e affidabile.

Cosa richiede realmente la ripristinabilità di un database

Un ripristino utilizzabile del database richiede più che rimettere i file del database su un disco. Gli amministratori devono identificare l'obiettivo di recupero e l'insieme completo dei componenti necessari all'applicazione.

Coerenza e punti di recupero

Il backup deve rappresentare uno stato valido del database. Per un'applicazione semplice, potrebbe essere sufficiente un dump notturno del database. Per un sistema intenso, l'azienda potrebbe aver bisogno di backup frequenti dei log delle transazioni e del recupero point-in-time, così da poter riportare indietro un evento distruttivo fino a pochi minuti prima che si verificasse.

L'obiettivo del punto di recupero, o RPO, descrive quanti dati l'azienda può permettersi di perdere. Un backup giornaliero del database potrebbe produrre un RPO fino a 24 ore, ma solo se il backup è effettivamente utilizzabile. Un RPO più breve richiede una frequenza di backup adeguata e un processo che confermi che i log vengano acquisiti e trasferiti correttamente.

Credenziali, configurazione e dipendenze

Un database può essere ripristinato correttamente e lasciare comunque l'applicazione offline. Il servizio potrebbe aver bisogno di stringhe di connessione, utenti del database, chiavi di cifratura, certificati, regole firewall, impostazioni DNS, processi pianificati, percorsi dei file o autorizzazioni. Alcune applicazioni memorizzano i caricamenti al di fuori del database, mentre altre dipendono da code, indici di ricerca, object storage o da un database separato per la reportistica.

La documentazione di recupero dovrebbe identificare queste dipendenze e spiegare dove si trova ciascun elemento. Le credenziali sensibili non dovrebbero essere inserite casualmente in un ticket o in un documento in testo semplice. Dovrebbero essere conservate in un gestore di password approvato o in un sistema per la gestione dei segreti, con accesso disponibile al team di recupero autorizzato. Se è necessaria una chiave per decifrare i dati dell'applicazione, la procedura di recupero deve spiegare come recuperarla senza indebolire i normali controlli di sicurezza.

Gli amministratori dovrebbero inoltre registrare il motore e la versione del database, i requisiti del sistema operativo, i nomi dei servizi, le porte, le estensioni, i set di caratteri, le impostazioni di confronto e le posizioni di archiviazione. Un ripristino che ignora la compatibilità delle versioni o le estensioni necessarie può fallire anche quando il backup è integro.

Scenari di errore che rivelano un backup del database debole

Ransomware e cifratura malevola

Il ransomware può cifrare i file del database in uso, lo storage collegato e le posizioni di backup accessibili. Può anche danneggiare gradualmente i dati prima del rilevamento. Una copia recente sullo stesso server o sulla stessa rete potrebbe non essere disponibile o affidabile quando l'incidente viene scoperto.

Lo storage esterno all'ambiente di produzione crea separazione da quest'ultimo. Safenix offre backup off-site per i server controllati dal cliente, archiviati in Germania, cifrati con una chiave che Safenix non possiede mai e immutabili per tutta la durata del periodo di conservazione. L'immutabilità aiuta a impedire che i dati di backup protetti vengano modificati o eliminati durante tale periodo. Non elimina però la necessità di testare il ripristino del database e verificare che il punto di recupero selezionato sia precedente al danneggiamento.

Eliminazione accidentale

Un amministratore potrebbe eliminare un cliente, una tabella o un database e non accorgersene immediatamente. Un backup notturno può ripristinare lo stato precedente, ma potrebbe anche ripristinare troppi dati obsoleti o sovrascrivere modifiche legittime effettuate dopo l'eliminazione. Il recupero point-in-time è più utile quando è possibile selezionare con precisione il momento desiderato, ad esempio subito prima dell'esecuzione del comando distruttivo.

Tabelle corrotte e danneggiamento silenzioso dei dati

Guasti hardware, difetti software e bug dell'applicazione possono danneggiare i record senza causare un'interruzione evidente. Se ogni backup ripete lo stato danneggiato, conservare più copie non risolve il problema. Il monitoraggio, i controlli di integrità del database e una cronologia dei ripristini sufficientemente estesa sono misure di protezione importanti.

Aggiornamenti e migrazioni non riusciti

Una migrazione dello schema può completarsi solo parzialmente, modificare i tipi di dati o esporre un difetto dell'applicazione. Il piano di recupero dovrebbe indicare se il team eseguirà il rollback del database, ripristinerà una copia precedente all'aggiornamento o procederà con una riparazione. Una semplice immagine del server potrebbe non offrire il controllo a livello di transazione necessario per annullare una migrazione in sicurezza.

Perdita totale del server

Un disco guasto, un server rubato, un grave incidente infrastrutturale o un'azione distruttiva dell'amministratore possono richiedere una ricostruzione completa. L'organizzazione avrà quindi bisogno di più dei soli dati del database: serviranno un piano per il sistema operativo, gli installer delle applicazioni, i dettagli delle licenze, la configurazione, le informazioni di rete e l'accesso al repository di backup. L'ordine di recupero è importante. Ripristinare un database prima che esistano il motore e i percorsi di archiviazione necessari può creare lavoro inutile.

Come verificare che un backup del database sia utilizzabile

Il software di backup che segnala un processo completato con successo indica generalmente che l'operazione di copia prevista è terminata. Non dimostra che un'applicazione possa connettersi al database ripristinato o che i dati superino i controlli aziendali. La verifica dovrebbe quindi avvenire a diversi livelli.

  1. Confermare che l'insieme di backup previsto esista. Controllare date, dimensioni, stato di conservazione e presenza dei componenti completi, differenziali e dei log delle transazioni richiesti.
  2. Convalidare il risultato nativo del database. Utilizzare, quando disponibili, gli strumenti di integrità o convalida del motore di database. Esaminare gli avvisi invece di considerare un'esportazione completata come prova di correttezza.
  3. Ripristinare in un ambiente isolato. Utilizzare un host separato, una macchina virtuale o una rete di test protetta. Non indirizzare mai il ripristino di test verso tabelle di produzione o endpoint applicativi attivi.
  4. Aprire il database con il motore corretto. Confermare che i servizi si avviino, che le credenziali funzionino, che le estensioni vengano caricate e che il database accetti le query normali.
  5. Eseguire controlli applicativi e aziendali. Accedere tramite una copia non di produzione dell'applicazione, esaminare i record recenti, eseguire report rappresentativi e verificare le relazioni tra le tabelle importanti.
  6. Misurare il risultato. Registrare quanto tempo è servito per ottenere il backup, ricostruire l'ambiente, ripristinare i dati e rendere utilizzabile l'applicazione.

I team che stanno definendo la progettazione dei test dovrebbero consultare le migliori pratiche per testare il backup e il ripristino dei database, quindi adattare le indicazioni al proprio motore di database, al carico di lavoro e agli obblighi normativi. Le checklist generiche sono utili come punto di partenza, ma non possono sostituire un test che utilizzi il processo effettivo di backup e recupero dell'organizzazione.

Come testare un ripristino senza interrompere la produzione

Un test di ripristino dovrebbe essere pianificato come un'esercitazione controllata, non come un'operazione improvvisata durante un incidente. L'approccio più sicuro consiste nel creare un ambiente di recupero che non possa ricevere accidentalmente traffico di produzione né inviare messaggi ai clienti.

Un metodo pratico di test

  • Scegliere un punto di recupero e registrare il motivo della scelta.
  • Predisporre un server di test isolato con un sistema operativo e una versione del database compatibili.
  • Ripristinare il database utilizzando la procedura documentata, inclusi gli eventuali log delle transazioni necessari per il recupero point-in-time.
  • Ripristinare i file dell'applicazione, la configurazione e i segreti necessari tramite metodi di accesso approvati.
  • Bloccare le email in uscita, le chiamate ai sistemi di pagamento, i webhook e altre integrazioni di produzione, oppure sostituirli con endpoint di test.
  • Eseguire controlli di integrità del database e transazioni applicative rappresentative utilizzando account di test chiaramente identificati.
  • Confrontare conteggi chiave, timestamp, relazioni e report con valori noti del punto di recupero selezionato.
  • Registrare orari di inizio e fine, errori, interventi manuali e lacune non risolte.
  • Eliminare o ripulire in modo sicuro l'ambiente di test e le eventuali copie temporanee al termine dell'esercitazione.

Non eseguire il test sovrascrivendo la produzione, a meno che non si tratti di un'esercitazione di disaster recovery approvata separatamente e dotata di un piano di rollback chiaro. Un test che mette a rischio i dati reali può creare proprio l'incidente che intendeva prevenire.

La frequenza dei test dovrebbe riflettere il rischio aziendale e i cambiamenti del sistema. Un database critico potrebbe richiedere test di ripristino regolari, mentre un sistema interno soggetto a pochi cambiamenti potrebbe essere testato meno spesso. Ogni importante aggiornamento del database, migrazione, modifica dell'hosting o cambiamento della configurazione di backup dovrebbe attivare una nuova convalida.

La conservazione non equivale alla ripristinabilità

La conservazione indica per quanto tempo vengono mantenuti i dati di backup. La ripristinabilità indica se l'azienda può utilizzarli entro un tempo accettabile e con una quantità accettabile di perdita di dati.

Un'azienda può conservare 90 giorni di backup ma non avere alcuna copia testata precedente all'inizio della corruzione. Può avere molti snapshot giornalieri ma nessun log delle transazioni. Può avere un repository immutabile ma nessuna registrazione della password del database, della chiave di cifratura o della configurazione dell'applicazione. In ogni caso, la conservazione esiste, ma il recupero rimane incerto.

L'immutabilità è particolarmente preziosa contro eliminazioni e manomissioni durante il periodo di conservazione configurato, ma non convalida il contenuto. Un backup immutabile e coerentemente corrotto resta corrotto. I test di ripristino forniscono la prova mancante.

L'obiettivo del tempo di recupero, o RTO, dovrebbe essere misurato e non stimato. Occorre includere il tempo necessario per identificare l'incidente, approvare il ripristino, accedere al backup, predisporre l'infrastruttura sostitutiva, ripristinare il database, riconfigurare l'applicazione e completare la verifica. Un ripristino del database che richiede 20 minuti può comunque causare un'interruzione di sei ore se la ricostruzione del server e il ricollegamento delle dipendenze non sono documentati.

Cosa devono chiarire le agenzie per ogni cliente

Le agenzie che gestiscono diversi server dei clienti affrontano un rischio aggiuntivo: la responsabilità può essere presunta anziché assegnata. Un cliente potrebbe credere che l'agenzia gestisca il recupero, mentre l'agenzia si aspetta che il cliente fornisca le credenziali, approvi il downtime o convalidi i dati ripristinati.

Ogni ambiente cliente dovrebbe disporre di una breve scheda di recupero che indichi:

  • Quali server e database sono protetti e quali sono esclusi dall'ambito.
  • Chi possiede i dati, l'account di backup, la chiave di cifratura e l'autorizzazione al ripristino.
  • Chi riceve gli avvisi e chi può autorizzare un'azione d'emergenza.
  • Motore e versione del database, dipendenze dell'applicazione e credenziali necessarie.
  • RPO e RTO obiettivo, comprese le ipotesi sulla disponibilità dell'infrastruttura.
  • Se l'agenzia esegue il ripristino, assiste il cliente o fornisce soltanto l'accesso al backup.
  • Come il cliente convaliderà che i dati aziendali ripristinati siano completi.
  • Quando è stato effettuato l'ultimo test di ripristino riuscito e cosa ha dimostrato.

Una responsabilità chiara evita ritardi durante una crisi. Evita anche ripristini incompleti in cui il database viene recuperato, ma non l'applicazione, i file, i certificati o le integrazioni. Per le agenzie, un runbook ripetibile per ogni cliente è più affidabile che fare affidamento sulla memoria di un singolo tecnico.

Safenix è progettato per la protezione off-site dei server aziendali controllati dai clienti, non per i siti che operano su hosting condiviso dove il cliente non controlla il server. Le organizzazioni che combinano questa protezione con test di ripristino e un piano di recupero documentato possono consultare le opzioni e i prezzi del backup dei server Safenix nell'ambito della propria pianificazione della resilienza.

Cosa documentare prima di un incidente

La documentazione dovrebbe essere redatta quando l'ambiente è funzionante. Come minimo, occorre registrare la pianificazione del backup, il periodo di conservazione, l'elenco dei server protetti, il metodo di backup del database, la frequenza dei log, i punti di recupero previsti e i prerequisiti del ripristino.

Occorre inoltre documentare dove vengono gestite le credenziali e le chiavi di cifratura, chi può accedervi e quale approvazione è necessaria in caso di emergenza. Includere diagrammi di rete o un semplice ordine delle dipendenze: prima l'infrastruttura, poi il motore del database, quindi il ripristino del database e infine i servizi applicativi e le integrazioni esterne.

Conservare un report del test di ripristino con il backup selezionato, il punto di recupero, gli orari di inizio e fine, i risultati della convalida, i problemi e le azioni correttive. Se il test fallisce, registrare onestamente il fallimento e assegnare un responsabile e una scadenza. Un test fallito è una prova utile quando porta a una correzione; un'ipotesi non documentata non è un piano di recupero.

Usare il ripristino come misura del backup

Il backup del server resta una base della resilienza infrastrutturale, soprattutto quando è necessario ricostruire una macchina completa. Tuttavia, la protezione del database richiede ulteriore disciplina. Il backup deve essere coerente, il punto di recupero deve corrispondere all'incidente, i log delle transazioni devono essere disponibili quando servono e le dipendenze dell'applicazione devono essere comprese.

Le aziende dovrebbero considerare i test di backup un controllo operativo, non una formalità occasionale. Ripristinare un database reale in isolamento, verificare il comportamento reale dell'applicazione, misurare il tempo trascorso e aggiornare il runbook. Lo storage off-site, cifrato e immutabile può proteggere il backup dalle minacce ambientali e malevole. Un ripristino del database testato dimostra se questa protezione può trasformarsi in un servizio aziendale funzionante quando il server originale non è disponibile.

Ready to deliver?

Start your 14-day free trial today.

Prova gratis