Guida al recupero di SQL Server: tipi di restore e procedure

Datamaze
27.10.23 10:10 AM Comment(s)

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:


Leggi anche:

 di Alice Sella, pubblicato il 27 ottobre 2023