Il recupero o restore dei dati e dei database è un aspetto cruciale della gestione di SQL Server. Quando si verificano incidenti o errori, come ad esempio cancellazioni accidentali o guasti hardware, la capacità di ripristinare i dati è fondamentale per mantenere la continuità operativa del business. Vediamo quindi i diversi tipi di restore disponibili in SQL Server, con una breve guida su come eseguire uno specifico restore in modo efficace.
I tipi di restore in SQL Server
Restore Completo (Full Restore)
Il restore completo è il metodo più ampio di ripristino dei dati. Coinvolge il ripristino dell'intero database da un backup completo (full) precedentemente creato. Questo tipo di restore è utile quando si desidera ripristinare completamente un database a uno stato precedente, ad esempio dopo un errore critico.
Procedura di restore completo:
- Utilizzare il comando RESTORE DATABASE con il file di backup completo.
- Verificare il database ripristinato per assicurarsi che sia coerente.
Esempio di restore completo in SQL Server
Supponiamo di avere un database chiamato "MioDatabase" e di voler eseguire un restore completo da un file di backup precedentemente creato chiamato "BackupCompleto.bak".
-- Esegui un restore completo RESTORE DATABASE MioDatabase FROM DISK = 'C:\PercorsoDelTuoBackup\BackupCompleto.bak' WITH REPLACE;
Restore Differenziale (Differential Restore)
Un restore differenziale comporta il ripristino di tutte le modifiche apportate al database a partire dal momento del backup completo più recente. Questa procedura è più veloce del restore completo e viene utilizzata per ridurre i tempi soprattutto di backup, in quanto viene effettuato il backup solamente delle modifiche rispetto all’ultimo backup FULL.
Procedura di restore differenziale:
- Eseguire prima un restore completo.
- Utilizzare il comando RESTORE DATABASE con l'opzione WITH NORECOVERY per preparare il database al restore differenziale.
- Ripristinare il backup differenziale.
Esempio di restore differenziale in SQL Server
Per eseguire un restore differenziale, occorre prima eseguire un restore completo come base e quindi ripristinare il backup differenziale.
-- Esegui un restore completo RESTORE DATABASE MioDatabase FROM DISK = 'C:\PercorsoDelTuoBackup\BackupCompleto.bak' WITH REPLACE; -- Esegui un restore differenziale RESTORE DATABASE MioDatabase FROM DISK = 'C:\PercorsoDelTuoBackup\BackupDifferenziale.bak' WITH NORECOVERY;
Restore delle Transazioni (Transaction Log Restore)
Il restore delle transazioni consente di ripristinare le modifiche apportate al database dopo l'ultimo backup delle transazioni. Questo è utile per la riparazione di errori specifici a livello di transazioni.
Procedura di restore delle transazioni:
- Eseguire prima un restore completo.
- Utilizzare il comando RESTORE DATABASE con l'opzione WITH NORECOVERY per preparare il database al restore delle transazioni.
- Ripristinare i file di log delle transazioni.
Esempio di restore delle transazioni in SQL Server
Per il restore delle transazioni, è necessario eseguire un restore completo e preparare il database per il restore delle transazioni.
-- Esegui un restore completo RESTORE DATABASE MioDatabase FROM DISK = 'C:\PercorsoDelTuoBackup\BackupCompleto.bak' WITH NORECOVERY; -- Esegui un restore delle transazioni (usando il file di log delle transazioni) RESTORE LOG MioDatabase FROM DISK = 'C:\PercorsoDelTuoBackup\BackupTransazioni.trn' WITH NORECOVERY;
Backup e Recovery Plan
Prima di affrontare qualsiasi restore, è fondamentale pianificare attentamente i backup e le procedure di recovery dell’intera infrastruttura database. Ecco i passaggi fondamentali da cui partire per definire un piano di backup che includa la frequenza dei backup e i tipi di backup da utilizzare.
Backup dei database
Per eseguire un backup del database, utilizzare il comando BACKUP DATABASE. Assicurarsi sempre di includere tutte le informazioni necessarie, come il percorso del file di backup.
Esecuzione del Restore
Il comando RESTORE DATABASE è utilizzato per eseguire il restore. Assicurarsi di specificare il percorso del file di backup e seguire le procedure specifiche per il tipo di restore scelto.
Verifica del Restore
Dopo il restore, verificare il database per assicurarsi che sia coerente e contenga tutti i dati necessari.
Conclusioni
Il recupero dei dati in SQL Server è una competenza vitale per qualsiasi amministratore di database. Questa guida ha esaminato i principali tipi di restore e le procedure necessarie per eseguirli con successo, con degli esempi di base. Nella pratica, si dovranno personalizzare i percorsi dei file di backup in base alla propria configurazione e alle esigenze specifiche dei database. Inoltre, è fondamentale seguire le best practices per la pianificazione dei backup e dei restore in base alla complessità e alle esigenze dell’ambiente SQL Server.
Con una pianificazione oculata dei backup e una comprensione dei vari metodi di restore, l'amministratore di database sarà ben attrezzato per affrontare eventuali situazioni di perdita di dati e sarà quindi in grado di garantire continuità operativa al business.
Risorse aggiuntive
Per ulteriori informazioni, è possibile consultare la documentazione ufficiale di Microsoft su SQL Server:
di Alice Sella, pubblicato il 27 ottobre 2023