Il backup dei database con SQL Server

Datamaze
05.04.23 12:49 PM Comment(s)
Il backup dei database è una parte fondamentale di qualsiasi piano di disaster recovery, imprescindibile per tenere al sicuro i dati aziendali. Sono indispensabili per garantire la disponibilità dei dati in caso di perdita, corruzione o altri problemi.

 Grazie ai backup è possibile: 
  • Recuperare i dati: i backup possono essere utilizzati per recuperare i dati in caso di perdita accidentale o di problemi di integrità del database.
  • Garantire la sicurezza dei dati: i backup garantiscono la sicurezza dei dati, poiché possono essere utilizzati per ripristinare il database in caso di guasti hardware o altri problemi tecnici.
  • Ottenere la compliance: alcuni settori sono soggetti a normative che richiedono la conservazione dei dati per un periodo di tempo specifico. I backup possono essere utilizzati per soddisfare queste esigenze.

Il backup di SQL Server on-premises

Per quanto riguarda le installazioni on-premises, ovvero in locale, SQL Server consente di effettuare diversi tipi di backup, che occorrerà scegliere, programmare e combinare a seconda dell’utilizzo che viene fatto dei database e dalle esigenze del sistema informativo aziendale. Ovviamente vanno considerate anche le dimensioni del database di cui effettuare il backup: all’aumentare delle dimensioni, aumentano anche il tempo necessario ad effettuare il backup e lo spazio di archiviazione richiesto da quest’ultimo.

Le modalità di backup disponibili in SQL Server sono:
  • Backup del database (full e differenziale)
  • Backup del transaction log
  • Backup dei file dei database

Il backup completo include tutti i dati del database e viene utilizzato come punto di ripristino in caso di perdita di dati o di problemi di integrità del database. Il backup differenziale include solo i dati che sono stati modificati dall'ultimo backup completo e viene utilizzato per ridurre la quantità di tempo necessario per eseguire il backup. Infine, il backup del registro delle transazioni include solo i record delle transazioni effettuate sul database e viene utilizzato per recuperare i dati in caso di problemi di integrità del database.

È importante pianificare regolarmente i backup e testare regolarmente la loro integrità, ovvero che siano andati a buon fine e che il file di backup funzioni correttamente. Ciò assicura che i dati siano disponibili in caso di emergenza e che la quantità di dati persi sia minima. Inoltre, è importante archiviare i backup in un luogo sicuro e separato rispetto all’ambiente del database server, come un disco rigido esterno o su un servizio di archiviazione cloud.

Il backup di SQL Server può essere avviato direttamente da SQL Server Management Studio, con la seguente procedura:
  • Avviare SQL Server Management Studio e connettersi all'istanza di SQL Server.
  • Espandere il nodo Database in Esplora oggetti.
  • Fare clic con il pulsante destro del mouse sul database, passare il puntatore su Attività e selezionare Backup... .
  • In Destinazione verificare che il percorso del backup sia corretto. Se è necessario modificare il percorso, selezionare Rimuovi per rimuovere il percorso esistente e quindi Aggiungi per digitare un nuovo percorso. 
  • Selezionare OK eseguire il backup del database.

Per ripristinare un database di cui si è in precedenza effettuato il backup occorre seguire i seguenti passaggi:

  • Avviare SQL Server Management Studio e connettersi all'istanza di SQL Server.
  • Fare clic con il pulsante destro del mouse sul nodo Database in Esplora oggetti e selezionare Ripristina database... .
  • Selezionare Dispositivo: e quindi i puntini di sospensione (...) per individuare il file di backup.
  • Selezionare Aggiungi e passare alla posizione in cui si trova il file .bak. Selezionare il file .bak e quindi OK.
  • Selezionare OK per chiudere la finestra di dialogo Seleziona dispositivi di backup.
  • Selezionare OK per ripristinare il backup del database.

Il backup del database: full

Un backup completo in SQL Server consiste nel creare una copia di tutti i dati presenti in un database al momento del backup. Questo tipo di backup è utile come punto di partenza per il ripristino del database in caso di perdita dei dati o problemi di integrità. 

Ecco i passaggi per eseguire un backup completo in SQL Server:
  • Aprire SQL Server Management Studio e connettersi al server.
  • Fare clic con il tasto destro del mouse sul database che si desidera eseguire il backup e selezionare "Nuovo Backup".
  • Selezionare "Backup completo" e specificare la posizione in cui verrà salvato il file di backup. È possibile scegliere una posizione sul disco locale o su un dispositivo di archiviazione esterno. Sono disponibili ulteriori opzioni nel menu Media Options e Backup Options.
  • Fare clic su "OK" per avviare il processo di backup. Durante questo processo, tutti i dati del database vengono copiati e salvati nel file di backup specificato.
  • Una volta completato il processo di backup, verificare che il file di backup sia integro e che possa essere utilizzato per il ripristino del database in caso di necessità.

Backup full di SQL Server 1
Backup full di SQL Server 2
Backup full di SQL Server 3

Il backup del database: differenziale

Il backup differenziale in SQL Server consiste nell'archiviare solo le modifiche apportate al database a partire dal momento del backup completo più recente. Questo tipo di backup è utile per ridurre il tempo e lo spazio di archiviazione richiesti per il ripristino del database. È importante sottolineare che nel caso di ripristino completo di un database fino all’ultimo backup differenziale è necessario fornire al motore SQL l’ultimo backup completo (FULL) e tutti i differenziali prodotti in quella finestra temporale.


Di seguito le istruzioni per eseguire un backup differenziale in SQL Server:
  • Aprire SQL Server Management Studio e connettersi al server.
  • Fare clic con il tasto destro del mouse sul database che si desidera eseguire il backup differenziale e selezionare "Nuovo Backup".
  • Selezionare "Backup differenziale" e specificare la posizione in cui verrà salvato il file di backup.
  • Fare clic su "OK" per avviare il processo di backup. Durante questo processo, solo le modifiche apportate al database dal momento del backup completo più recente vengono copiate e salvate.

Il backup del transaction log

Il backup del transaction log in SQL Server consiste nell'archiviare il registro delle transazioni che descrive tutte le modifiche apportate al database. Questo tipo di backup è utile per il ripristino del database a un momento preciso o prima di una certa transazione.  Il backup del log è disponibile solamente per i database con Recovery Model diversi da SIMPLE. 

Vediamo i passaggi per eseguire un backup del registro transazioni in SQL Server:
  • Aprire SQL Server Management Studio e connettersi al server.
  • Fare clic con il tasto destro del mouse sul database che si desidera eseguire il backup del registro transazioni e selezionare "Nuovo Backup".
  • Selezionare "Backup del registro transazioni" e specificare la posizione in cui verrà salvato il file di backup.
  • Fare clic su "OK" per avviare il processo di backup. Durante questo processo, il registro delle transazioni viene copiato e salvato nel file di backup specificato.

Il backup in cloud: Microsoft Azure

Il cloud offre la possibilità di effettuare numerosi tipi di backup. Elenchiamo di seguito i servizi disponibili nell’offerta del servizio Backup di Azure:
  • Ambiente locale: backup di file, cartelle e stato del sistema tramite l'agente di Servizi di ripristino di Microsoft Azure 
  • Backup Azure Managed Disks 
  • Backup di condivisioni file di Azure nell'account di archiviazione
  • Backup di database SQL Server in esecuzione in macchine virtuali di Azure
  • Backup di database SAP HANA in esecuzione in macchine virtuali di Azure
  • Backup dei database di Azure PostgreSQL 
  • Azure BLOB Storage

Backup di SQL Server su Macchine Virtuali di Azure

Come abbiamo visto sopra, il backup di Azure offre una soluzione specifica per effettuare il backup di SQL Server in esecuzione su una Macchina Virtuale di Azure. 

Ecco le principali caratteristiche di questa soluzione:

  • Backup del carico di lavoro che supportano tutti i tipi di backup: completo, differenziale e del log.
  • RPO (obiettivo del punto di ripristino) di 15 minuti con backup del log frequenti.
  • Ripristino temporizzato fino a un secondo.
  • Backup e ripristino a livello di database singoli.

I backup possono essere impostati dal Sysadmin attraverso la procedura apposita descritta sul sito Microsoft

I costi del backup e il ruolo del DBA

Progettare e realizzare un efficace piano di backup e disaster recovery non è semplice e richiede l’impiego di tempo e risorse, vale a dire denaro. Per questo molte aziende non implementano o non aggiornano backup e piani di recovery, pensando erroneamente che il rischio di perdere i dati sia basso o nullo.  In realtà i dati sono sempre a rischio, anche per l’aumento vertiginoso di attacchi ransomware degli ultimi anni. Un piano di recovery completo di backup regolari e aggiornati consentirà all’azienda di riprendere le proprie attività in breve tempo, riducendo il periodo di fermo e minimizzando le perdite in denaro. 


Un DBA (database administrator) è la figura professionale fondamentale per la creazione e la manutenzione di tale piano di recupero. Anche se i database si trovano in cloud, al DBA spetta gestire e assicurarsi che tutto sia sempre sotto controllo. Un aspetto importante e centrale nel ruolo del DBA è di saper proporre la strategia di backup ideale per ogni ambiente in base alle dimensioni del sistema, i carichi di lavoro e le criticità presenti.


di Alice Sella, pubblicato il 5 aprile 2023


Fonti: 

Microsoft Learn: Creare un backup completo del database

Microsoft Learn: Guida introduttiva. Eseguire il backup e il ripristino di un database di SQL Server con SSMS