Dispositivi di backup

Durante un'operazione di backup, i dati di cui viene eseguito il backup vengono scritti in un dispositivo di backup fisico. Per dispositivo di backup fisico si intende un'unità nastro o un file su disco fornito dal sistema operativo. È possibile scrivere un backup su un massimo di 64 dispositivi di backup. Se un backup richiede più dispositivi di backup, tutti devono corrispondere a un unico tipo di dispositivo, ovvero disco o nastro.

[!NOTA]

Un dispositivo di backup fisico viene inizializzato quando si scrive su di esso il primo backup di un set di supporti. I backup in un set di uno o più dispositivi di backup costituiscono un solo set di supporti. Per set di supporti si intende una raccolta ordinata di nastri, file su disco o supporti di backup che utilizza un tipo e un numero fisso di dispositivi di backup. Per informazioni sui set di supporti, vedere Set di supporti, gruppi di supporti e set di backup.

Utilizzo di dispositivi di backup su disco

Un dispositivo di backup su disco è un disco rigido o un altro supporto di archiviazione su disco che contiene uno o più file di backup. Un file di backup è un file normale del sistema operativo.

Se lo spazio su disco assegnato a un file si esaurisce mentre è in corso l'aggiunta di un backup al set di supporti durante un'operazione di backup, l'operazione avrà esito negativo. Le dimensioni massime di un file di backup sono determinate dallo spazio libero su disco disponibile nel dispositivo disco. Le dimensioni appropriate per un dispositivo disco di backup dipendono pertanto dalle dimensioni dei backup eseguiti.

Un dispositivo di backup su disco può essere un semplice dispositivo disco, come un'unità ATA. In alternativa, è possibile utilizzare un'unità disco collegabile a caldo che consenta di sostituire in modo trasparente un disco vuoto a un disco pieno presente nell'unità. Un disco di backup può essere un disco locale nel server o un disco remoto, ovvero una risorsa di rete condivisa. Per informazioni sull'utilizzo di un disco remoto, vedere "Esecuzione del backup in un file in una condivisione di rete" di seguito in questo argomento.

Gli strumenti di gestione di SQL Server offrono grande flessibilità nella gestione dei dispositivi di backup su disco, in quanto generano automaticamente un nome timestamp nel file su disco.

Nota importanteImportante

È consigliabile utilizzare come disco di backup un disco diverso da quelli in cui sono archiviati i dati di database e i log. Questa condizione è necessaria per garantire l'accesso ai backup in caso di errore del disco contenente il log o i dati.

Specifica di un file di backup utilizzando il nome fisico

La sintassi di base di BACKUP per specificare un file di backup utilizzando il nome del dispositivo fisico è la seguente:

BACKUP DATABASE database_name

   TO DISK = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }

Ad esempio:

BACKUP DATABASE AdventureWorks 
   TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak';
GO

La sintassi di base per specificare un dispositivo disco fisico in un'istruzione RESTORE è la seguente:

RESTORE { DATABASE | LOG } database_name

   FROM DISK = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }

Ad esempio

RESTORE DATABASE AdventureWorks 
   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'; 

Impostazione del percorso di un file di backup su disco

Quando si specifica un file di backup, è consigliabile immetterne il percorso completo e il nome di file. Quando si esegue il backup di un file, se si specifica solo il nome del file o un percorso relativo, il file di backup viene inserito nella directory di backup predefinita. La directory di backup predefinita è C:\Programmi\Microsoft SQL Server\MSSQL.n\MSSQL\Backup, dove n rappresenta il numero dell'istanza del server. La directory di backup predefinita per l'istanza del server predefinita è pertanto C:\Programmi\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup.

Per evitare ambiguità, in particolare negli script, è consigliabile specificare in modo esplicito il percorso della directory di backup in ogni clausola DISK. Questa indicazione risulta tuttavia meno importante quando si utilizza l'editor di query. In questo caso infatti, se si è certi che il file di backup si trovi nella directory di backup predefinita, è possibile omettere il percorso dalla clausola DISK. Ad esempio, l'istruzione BACKUP seguente esegue il backup del database AdventureWorks nel file di backup AdventureWorks.bak nella directory di backup predefinita.

BACKUP DATABASE AdventureWorks 
   TO DISK = ’AdventureWorks.bak’;
GO

[!NOTA]

Il percorso predefinito è memorizzato nella chiave del Registro di sistema BackupDirectory in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.n\MSSQLServer.

Esecuzione del backup in un file in una condivisione di rete

Per accedere a un file su disco remoto tramite SQL Server, è necessario che l'account del servizio SQL Server abbia accesso alla condivisione di rete e disponga delle autorizzazioni necessarie per eseguire operazioni di scrittura nella condivisione di rete durante il backup e di lettura durante il ripristino. La disponibilità delle autorizzazioni e delle unità di rete dipende dal contesto in cui viene eseguito il servizio SQL Server:

  • Per eseguire il backup in un'unità di rete quando SQL Server viene eseguito in un account utente di dominio, l'unità condivisa deve essere mappata a un'unità di rete nella sessione in cui viene eseguito SQL Server. Se si avvia Sqlservr.exe dalla riga di comando, in SQL Server vengono rilevate tutte le unità di rete mappate nella sessione di accesso.

  • Quando si esegue Sqlservr.exe come servizio, SQL Server viene eseguito in una sessione separata che non ha alcuna relazione con la sessione di accesso. La sessione in cui viene eseguito un servizio può disporre di proprie unità mappate, sebbene questo solitamente non avvenga.

  • È possibile connettersi all'account del servizio di rete utilizzando l'account del computer anziché un utente di dominio. Per consentire i backup da computer specifici in un'unità condivisa, concedere l'accesso agli account dei computer. Purché il processo Sqlservr.exe che scrive il backup abbia accesso, è irrilevante che l'utente che invia il comando BACKUP abbia accesso.

    Nota importanteImportante

    Il backup dei dati in una rete può essere soggetto agli errori della rete stessa. Quando si utilizza un disco remoto, è pertanto consigliabile verificare l'operazione di backup dopo il suo completamento. Per ulteriori informazioni, vedere Verifica dei backup.

Specifica di un nome UNC (Universal Naming Convention)

Per specificare una condivisione di rete in un comando di backup o ripristino, è necessario utilizzare il nome UNC (Universal Naming Convention) completo del file per il dispositivo di backup. Il formato di un nome UNC è \\Systemname\ShareName\Path\FileName.

Ad esempio:

BACKUP DATABASE AdventureWorks 
   TO DISK = '\\BackupSystem\BackupDisk1\AW_backups\AdventureWorksData.Bak';
GO

Utilizzo di dispositivi nastro

[!NOTA]

Il supporto per i dispositivi di backup su nastro verrà rimosso in una versione futura di SQL Server. Evitare di utilizzare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.

Il backup dei dati di SQL Server su nastro richiede che l'unità o le unità nastro siano supportate dal sistema operativo Microsoft Windows. Per ogni unità nastro è inoltre opportuno utilizzare solo nastri consigliati dal produttore di tale unità. Per ulteriori informazioni sull'installazione di un'unità nastro, vedere la documentazione per il sistema operativo Windows.

Quando viene utilizzata un'unità nastro, se durante il backup un nastro viene completato, è possibile continuare su un altro nastro. Ogni nastro include un'intestazione del supporto. Il primo supporto utilizzato è denominato nastro iniziale. Ogni nastro successivo è denominato nastro di continuità e dispone di un numero di sequenza del supporto maggiore rispetto al nastro precedente. In un set di supporti associato a quattro dispositivi nastro, ad esempio, sono presenti almeno quattro nastri iniziali e, se lo spazio non è sufficiente per il database, quattro serie di nastri di continuità. Quando si accoda un set di backup, è necessario montare l'ultimo nastro della serie. Se l'ultimo nastro non è montato, tramite Motore di database viene eseguita una scansione in avanti fino alla fine del nastro montato e quindi viene richiesto di cambiare il nastro. A questo punto, montare l'ultimo nastro.

I dispositivi di backup su nastro vengono utilizzate come dispositivi disco, con le eccezioni seguenti:

  • Il dispositivo nastro deve essere collegata fisicamente al computer in cui è in esecuzione un'istanza di SQL Server. Il backup su dispositivi nastro remoti non è supportato.

  • Se durante l'operazione di backup lo spazio disponibile su un nastro si esaurisce e rimangono ancora dati da registrare, tramite SQL Server viene richiesto di inserire un nuovo nastro e l'operazione di backup continua dopo il caricamento del nuovo nastro.

Gestione dei nastri aperti

Per visualizzare un elenco dei dispositivi nastro aperti e lo stato delle richieste di montaggio, eseguire una query nella vista a gestione dinamica sys.dm_io_backup_tapes. Questa vista contiene tutti i nastri aperti, inclusi i nastri in uso che risultano temporaneamente inattivi in quanto in attesa dell'operazione BACKUP o RESTORE successiva.

Se un nastro viene inavvertitamente lasciato aperto, il modo più rapido per rilasciarlo consiste nell'utilizzo del comando RESTORE REWINDONLY FROM TAPE **=**backup_device_name. Per ulteriori informazioni, vedere RESTORE REWINDONLY (Transact-SQL).

Specifica di un nastro di backup utilizzando il nome fisico

La sintassi di base di BACKUP per specificare un nastro di backup utilizzando il nome di dispositivo fisico dell'unità nastro è la seguente:

BACKUP { DATABASE | LOG } database_name

   TO TAPE = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }

Ad esempio:

BACKUP LOG AdventureWorks 
   TO TAPE = '\\.\tape0';
GO

La sintassi di base per specificare un dispositivo nastro fisico in un'istruzione RESTORE è la seguente:

RESTORE { DATABASE | LOG } database_name

   FROM TAPE = { 'physical_backup_device_name' | **@**physical_backup_device_name_var }

Opzioni di BACKUP e RESTORE specifiche delle unità nastro

Per facilitare la gestione dei nastri, per l'istruzione BACKUP sono disponibili le opzioni seguenti specifiche dei nastri:

  • { NOUNLOAD | UNLOAD }

    È possibile controllare se un nastro di backup viene scaricato automaticamente dall'unità nastro dopo un'operazione di backup o ripristino. UNLOAD/NOUNLOAD è un'impostazione di sessione che rimane valida per l'intera durata della sessione o finché non viene reimpostata tramite la specifica di un'impostazione alternativa.

  • { REWIND | NOREWIND }

    È possibile controllare se il nastro viene mantenuto aperto da SQL Server dopo l'operazione di backup o ripristino oppure viene rilasciato e riavvolto quando è pieno. Il comportamento predefinito prevede il riavvolgimento del nastro (REWIND).

[!NOTA]

Per ulteriori informazioni sulla sintassi e sugli argomenti di BACKUP, vedere BACKUP (Transact-SQL). Per ulteriori informazioni sulla sintassi e sugli argomenti di RESTORE, vedere RESTORE (Transact-SQL) e Argomenti dell'istruzione RESTORE (Transact-SQL), rispettivamente

Utilizzo di un dispositivo di backup logico

Un dispositivo di backup logico è un nome facoltativo definito dall'utente che fa riferimento a un dispositivo di backup fisico specifico, ovvero un file su disco o un'unità nastro. Un dispositivo di backup logico consente di utilizzare i riferimenti indiretti per fare riferimento al dispositivo di backup fisico corrispondente.

La definizione di un dispositivo di backup logico implica l'assegnazione di un nome logico a un'unità fisica. Ad esempio, un dispositivo logico, AdventureWorksBackups, può essere definita in modo da puntare al file Z\:SQLServerBackups\AdventureWorks.bak o all'unità nastro \\.\tape0. Nei comandi di backup e di ripristino è quindi possibile specificare come dispositivo di backup AdventureWorksBackups, anziché DISK = 'Z:\SQLServerBackups\AdventureWorks.bak' o TAPE = '\\.\tape0'.

Il nome del dispositivo logico deve essere univoco tra tutti i dispositivi di backup logici nell'istanza del server. Per visualizzare i nomi dei dispositivi logici esistenti, eseguire una query nella vista del catalogo sys.backup_devices. Questa vista contiene il nome di ogni dispositivo di backup logico, nonché una descrizione del tipo e del nome di file o del percorso fisico del dispositivo di backup fisico corrispondente.

Dopo aver definito un dispositivo di backup logico, in un comando BACKUP o RESTORE è possibile specificare il dispositivo di backup logico anziché il nome fisico del dispositivo. Ad esempio, l'istruzione seguente esegue il backup del database AdventureWorks nel dispositivo di backup logico AdventureWorksBackups.

BACKUP DATABASE AdventureWorks 
   TO AdventureWorksBackups;
GO

[!NOTA]

In una determinata istruzione BACKUP o RESTORE, il nome del dispositivo di backup logico e il nome del dispositivo di backup fisico corrispondente sono intercambiabili.

Un vantaggio offerto dall'utilizzo di un dispositivo di backup logico è la semplicità di impiego rispetto a un percorso lungo. Un dispositivo di backup logico può essere utile se si intende scrivere una serie di backup nello stesso percorso o in un dispositivo nastro. I dispositivi di backup logici sono particolarmente utili per identificare i dispositivi di backup su nastro.

È possibile scrivere uno script di backup per l'utilizzo di un particolare dispositivo di backup logico. Ciò consente di passare a nuovi dispositivi di backup fisici senza aggiornare lo script. Tale passaggio richiede il processo seguente:

  1. Eliminazione del dispositivo di backup logico originale.

  2. Definizione di una nuovo dispositivo di backup logico che utilizzi il nome del dispositivo logico originale ma esegua il mapping a un dispositivo di backup fisico diverso. I dispositivi di backup logiche sono particolarmente utili per identificare i dispositivi di backup su nastro.

Per definire un dispositivo di backup logico

Per eliminare un dispositivo di backup logico

Per utilizzare un dispositivo di backup logico (SQL Server Management Studio)

Per utilizzare un dispositivo di backup logico (Transact-SQL)

Set di supporti di backup con mirroring

Il mirroring dei set di supporti di backup riduce l'effetto di eventuali funzionamenti non corretti dei dispositivi di backup. Tali problemi possono risultare estremamente gravi, poiché i backup rappresentano l'ultima difesa contro la perdita dei dati. Con l'aumento delle dimensioni dei database, cresce il rischio che un errore di un dispositivo o di un supporto di backup impedisca il ripristino di un backup. I supporti di backup con mirroring aumentano l'affidabilità dei backup garantendo la ridondanza per il dispositivo di backup fisico. Per ulteriori informazioni, vedere Utilizzo di set di supporti di backup con mirroring.

[!NOTA]

I set di supporti di backup con mirroring sono supportati solo in SQL Server 2005 Enterprise Edition e versioni successive.

Archiviazione di backup di SQL Server

È consigliabile utilizzare un'utilità di backup del file system per l'archiviazione dei backup del disco, nonché conservare gli archivi in una posizione esterna. L'utilizzo del disco consente di utilizzare la rete per scrivere i backup archiviati in un disco esterno. L'utilizzo del nastro consente di accumulare una serie di backup archiviati fino a quando non si è certi che non sono più necessari.

Un approccio comune all'archiviazione consiste nello scrivere backup di SQL Server in un disco di backup locale, archiviarli su nastro e quindi archiviare i nastri in una posizione esterna.