Condividi tramite


Panoramica del backup (SQL Server)

Ogni modello di recupero consente di eseguire il backup di un intero database di SQL Server o di parte di esso oppure di singoli file o filegroup del database. Non è possibile creare backup a livello di tabella.

Nota

Il backup e il ripristino di SQL Server possono essere utilizzati in tutti i sistemi operativi supportati, sia a 64 bit che a 32 bit. Per informazioni sui sistemi operativi supportati, vedere Requisiti hardware e software per l'installazione di SQL Server 2008 R2.

Backup dei dati

L'ambito di un backup dei dati può essere un database completo, un database parziale o un set di file o filegroup. Per ogni elemento, SQL Server supporta i backup completi e differenziali:

  • Backup completo

    Un backup completo include tutti i dati in un database specifico o in un set di filegroup o di file, oltre a una parte di log sufficiente a consentire il recupero di tali dati.

  • Backup differenziale

    Un backup differenziale è basato sull'ultimo backup completo dei dati, detto base del backup differenziale, o base differenziale. Una base del backup differenziale è un backup completo di dati in lettura/scrittura. Un backup differenziale include solo i dati che hanno subito modifiche dopo la base del backup differenziale. In genere, i backup differenziali eseguiti entro un tempo limitato dopo il backup di base sono più piccoli e di creazione più rapida rispetto alla base di un backup completo. Per tale motivo, l'utilizzo dei backup differenziali può accelerare il processo di creazione di backup frequenti, utile a ridurre il rischio di perdita dei dati. In genere, una base del backup differenziale è utilizzata da più backup differenziali successivi. Al momento del ripristino, il backup completo viene ripristinato per primo, seguito dal backup differenziale più recente.

    Nel corso del tempo, quando un database viene aggiornato, la quantità di dati inclusi nei backup differenziali aumenta. Questo rallenta la creazione e il ripristino del backup. Sarà infine necessario creare un altro backup completo che funga da nuova base del backup differenziale per un'altra serie di backup differenziali.

    Nota

    In genere, un backup differenziale riguarda gli stessi file di dati rispetto ai file inclusi in una singola base del backup differenziale. Nel modello di recupero con registrazione minima un backup differenziale può includere una sola base del backup differenziale. Il tentativo di utilizzare più basi determina un errore e la mancata riuscita dell'operazione di backup. Nel modello di recupero con registrazione completa, i backup differenziali dei file possono utilizzare più basi, che però possono rivelarsi difficili da gestire. Per ulteriori informazioni, vedere Utilizzo dei backup differenziali da più backup di base.

Ogni backup dei dati include una parte del log delle transazioni sufficiente a consentire il recupero del backup fino alla fine dello stesso.

Dopo il primo backup dei dati, nel modello di recupero con registrazione completa o nel modello di recupero con registrazione minima delle operazioni bulk, sono necessari backup dei log delle transazioni (o backup dei log) a intervalli di tempo regolari. Ogni backup del log è relativo alla parte del log delle transazioni attiva al momento della creazione del backup. Il backup del log include tutti i record del log dei quali non è stato eseguito il backup in un backup del log precedente.

Backup del database

I backup del database sono di facile utilizzo e consigliati ogni volta che le dimensioni del database lo consentono. SQL Server supporta i tipi seguenti di backup del database.

Tipo di backup

Descrizione

Backup di database

Backup completo dell'intero database. I backup del database rappresentano l'intero database al momento del completamento del backup.

Backup differenziali del database

Backup di tutti i file nel database. Questo backup include solo gli extent di dati che hanno subito modifiche dopo il backup del database più recente di ogni file.

Backup parziali

In SQL Server 2005 sono stati introdotti i backup parziali e i backup parziali differenziali. Essi sono progettati per assicurare una maggiore flessibilità nell'esecuzione di backup dei database che contengono alcuni filegroup di sola lettura con il modello di recupero con registrazione minima. Tuttavia, questi backup sono supportati da tutti i modelli di recupero.

SQL Server 2008 supporta i tipi di backup dei file indicati di seguito.

Tipo di backup

Descrizione

Backup parziale

Backup di tutti i dati disponibili nel filegroup primario, in ogni filegroup di lettura/scrittura e in eventuali file o filegroup di sola lettura specificati facoltativamente. Il backup parziale di un database di sola lettura contiene esclusivamente il filegroup primario.

Backup parziale differenziale

Backup che include solo gli extent di dati che hanno subito modifiche dopo il backup parziale più recente dello stesso set di filegroup.

Backup di file

È possibile eseguire il backup e il ripristino individuale di file appartenenti a un database. L'utilizzo dei backup dei file può accelerare il ripristino, in quanto consente di ripristinare solo i file danneggiati, anziché l'intero database. Ad esempio, se un database è costituito da più file che si trovano su dischi diversi e su uno dei dischi si verifica un errore, sarà necessario ripristinare solo il file sul disco sul quale si è verificato l'errore. Tuttavia, la pianificazione e il ripristino dei backup dei file possono essere complessi. È pertanto consigliabile utilizzare i backup dei file solo ove costituiscano un evidente valore aggiunto per il piano di ripristino.

SQL Server supporta i tipi seguenti di backup dei file.

Tipo di backup

Descrizione

Backup di file

Backup completo di tutti i dati in uno o più file o filegroup.

Nota importanteImportante
Nel modello di recupero con registrazione minima i backup dei file sono essenzialmente limitati ai filegroup secondari di sola lettura. È possibile creare un backup del file di un filegroup di lettura/scrittura, ma prima che sia possibile ripristinarlo è necessario rendere il filegroup di sola lettura ed eseguire un backup differenziale del file.

Backup differenziali dei file

Backup di uno o più file che include gli extent di dati che hanno subito modifiche dopo il backup completo più recente di ogni file.

NotaNota
Nel modello di recupero con registrazione minima questo presuppone che i dati siano stati resi di sola lettura dopo il backup completo.

Nota

È possibile eseguire il backup e il ripristino di cataloghi full-text. Per ulteriori informazioni, vedere Backup e ripristino di un catalogo full-text di SQL Server 2008 e Ripristino a fasi e indici full-text.

Backup dei log delle transazioni (solo modello di recupero con registrazione completa e con registrazione minima delle operazioni bulk)

Nel modello di recupero con registrazione completa o nel modello di recupero con registrazione minima delle operazioni bulk sono necessari backup dei log delle transazioni (o backup dei log) a intervalli di tempo regolari. Ogni backup del log è relativo alla parte del log delle transazioni attiva al momento della creazione del backup e include tutti i record del log dei quali non è stato eseguito il backup in un backup del log precedente. Una sequenza di backup dei log senza interruzioni include la catena di log completa del database, che viene definita non interrotta. Nel modello di recupero con registrazione completa, e a volte nel modello di recupero con registrazione minima delle operazioni bulk, una catena di log non interrotta consente di ripristinare il database rispetto a qualsiasi momento nel tempo.

Prima che sia possibile creare il primo backup del log, è necessario creare un backup completo, ad esempio un backup del database. È quindi necessario eseguire regolarmente il backup del log delle transazioni, non solo per ridurre al minimo il rischio di perdita dei dati, ma anche per attivare il troncamento del log delle transazioni. Per ulteriori informazioni, vedere Utilizzo dei backup del log delle transazioni.

Nota importanteImportante

Per limitare il numero di backup dei log che è necessario ripristinare, è fondamentale eseguire regolarmente il backup dei dati. Ad esempio, è possibile pianificare un backup completo del database una volta la settima e backup differenziali del database una volta al giorno.

Backup di sola copia

In genere, l'esecuzione di un backup modifica il database e influenza la modalità di ripristino dei backup successivi. Tuttavia, occasionalmente, può essere utile eseguire un backup per uno scopo specifico senza influenzare le procedure globali di backup e di ripristino per il database. A tale scopo, in SQL Server 2005 sono stati introdotti i backup di sola copia. Questi backup sono indipendenti dalla normale sequenza di backup di SQL Server. Per ulteriori informazioni, vedere Backup di sola copia.

Dispositivi di backup

I backup di SQL Server vengono creati nei dispositivi di backup, quali file su disco o supporti a nastro. È possibile aggiungere nuovi backup a tutti i backup esistenti in un dispositivo oppure sovrascrivere i backup esistenti. Per ulteriori informazioni, vedere Utilizzo di supporti di backup in SQL Server.

Pianificazione dei backup

Un'operazione di backup ha un effetto trascurabile sulle transazioni in esecuzione, quindi è possibile eseguire operazioni di backup durante il normale funzionamento del sistema. Durante un'operazione di backup, SQL Server copia i dati direttamente dai file del database sui dispositivi di backup. I dati non vengono modificati e le transazioni in esecuzione durante il backup non vengono mai posticipate. Per tale motivo è possibile eseguire un backup di SQL Server con effetti minimi sui carichi di lavoro di produzione. Per informazioni sulle restrizioni di concorrenza durante il backup, vedere "Restrizioni relative alle operazioni di backup in SQL Server" di seguito in questo argomento.

È possibile pianificare l'esecuzione automatica dei backup a intervalli predefiniti. Per informazioni sulla pianificazione dei processi di backup per i backup dei database e dei log, vedere Creazione guidata piano di manutenzione.

Compressione dei backup

La compressione dei backup è supportata in SQL Server 2008 Enterprise Edition e versioni successive. I backup compressi possono essere ripristinati in SQL Server 2008 e versioni successive. Per ulteriori informazioni, vedere Compressione backup (SQL Server).

Restrizioni relative alle operazioni di backup in SQL Server

In SQL Server 2005 e versioni successive è possibile eseguire un backup mentre il database è in linea e in uso. Si applicano tuttavia le restrizioni seguenti.

Non è possibile eseguire il backup dei dati non in linea

Se si fa riferimento in modo implicito o esplicito a dati non in linea, l'operazione di backup ha esito negativo. Alcuni esempi comuni sono i seguenti:

  • Si richiede un backup completo del database, ma un filegroup del database non è in linea. Poiché tutti i filegroup vengono inclusi implicitamente in un backup completo del database, questa operazione ha esito negativo.

    Per eseguire un backup del database, è possibile utilizzare un backup del file e specificare solo i filegroup in linea.

  • Viene richiesto un backup parziale, ma un filegroup di lettura/scrittura non è in linea. Dato che tutti i filegroup di lettura/scrittura sono necessari per un backup parziale, l'operazione non riesce.

  • Si richiede un backup di file specifici, ma uno di tali file non è in linea. L'operazione ha esito negativo. Per eseguire il backup dei file in linea, è possibile escludere il file non in linea dall'elenco dei file e ripetere l'operazione.

In genere, un backup del log riesce anche se uno o più file di dati non sono disponibili. Tuttavia, se uno o più file contengono modifiche con registrazione minima delle operazioni bulk apportate nel modello di recupero con registrazione minima delle operazioni bulk, è necessario che tutti i file siano in linea perché il backup riesca.

Restrizioni di concorrenza durante il backup

SQL Server utilizza un processo di backup in linea per consentire un backup del database mentre questo è in uso. Durante un backup, è possibile eseguire la maggior parte delle operazioni, ad esempio istruzioni INSERT, UPDATE o DELETE. Tuttavia, se si tenta di avviare un'operazione di backup durante la creazione o l'eliminazione di un file di database, l'operazione verrà rimandata fino al completamento dell'operazione di creazione o di eliminazione, oppure verrà annullata a causa di un timeout.

Le operazioni che non possono essere eseguite durante un backup del database o del log delle transazioni sono le seguenti:

  • Operazioni di gestione dei file, ad esempio l'istruzione ALTER DATABASE con l'opzione ADD FILE o REMOVE FILE.

  • Operazioni di compattazione di database o di file, incluse le operazioni di compattazione automatica.

  • Se durante l'esecuzione di un'operazione di backup si tenta di creare o eliminare un file di database, l'operazione di creazione o eliminazione non riuscirà.

Se un'operazione di backup si sovrappone a un'operazione di gestione di file o di compattazione, si verifica un conflitto. Indipendentemente dall'operazione in conflitto avviata per prima, la seconda operazione viene rimandata fino al timeout del blocco richiesto dalla prima operazione. Il periodo di timeout è controllato da un'impostazione relativa al timeout di sessione. Se il blocco viene rilasciato durante il periodo di timeout, la seconda operazione continua. Se il periodo di timeout del blocco scade, la seconda operazione ha esito negativo.