Procedura: Backup di file e filegroup (Transact-SQL)
Quando a causa delle dimensioni del database e dei requisiti relativi alle prestazioni non è consigliabile eseguire un backup completo del database, è possibile creare invece un backup del file. Un backup del file contiene tutti i dati inclusi in uno o più file (o filegroup). Per ulteriori informazioni sui backup del file, vedere Backup completi di file e Backup differenziali del file.
Importante |
---|
Se si utilizza il modello di recupero con registrazione minima, è necessario eseguire il backup di tutti i file di lettura/scrittura contemporaneamente. Ciò assicura che il database possa essere ripristinato fino a un punto nel tempo consistente. Anziché specificare singolarmente ogni file o filegroup di lettura/scrittura, utilizzare l'opzione READ_WRITE_FILEGROUPS che consente di eseguire il backup di tutti i filegroup di lettura/scrittura nel database. Un backup creato specificando READ_WRITE_FILEGROUPS è detto backup parziale. Per ulteriori informazioni, vedere Backup parziali. |
Per eseguire il backup di file e filegroup
Per creare un backup del file o del filegroup, utilizzare un'istruzione BACKUP DATABASE <file_or_filegroup>. In questa istruzione è necessario specificare almeno gli elementi seguenti:
Il nome del database.
Una clausola FILE o FILEGROUP per ogni file o filegroup, rispettivamente.
Il dispositivo di backup in cui verrà scritto il backup completo.
La sintassi Transact-SQL di base per un backup del file è la seguente:
BACKUP DATABASE database
{ FILE **=**logical_file_name | FILEGROUP **=**logical_filegroup_name } [ ,...f ]
TO backup_device [ ,...n ]
[ WITH with_options [ ,...o ] ] ;
Opzione
Descrizione
database
Nome del database di cui viene eseguito il backup del log delle transazioni, il backup parziale o il backup completo.
FILE =logical_file_name
Specifica il nome logico di un file da includere nel backup del file.
FILEGROUP =logical_filegroup_name
Specifica il nome logico di un filegroup da includere nel backup del file. Se si utilizza il modello di recupero con registrazione minima, il backup del filegroup è consentito solo per i filegroup di sola lettura.
[ ,...f ]
Segnaposto che indica che è possibile specificare più file e filegroup. Il numero di file o filegroup che possono essere specificati è illimitato.
backup_device [ ,...n ]
Specifica un elenco di dispositivi di backup da 1 a 64 da utilizzare per l'operazione di backup. È possibile specificare un dispositivo di backup fisico oppure una dispositivo di backup logico corrispondente se è già stata definito. Per specificare un dispositivo di backup fisico, utilizzare l'opzione DISK o TAPE:
{ DISK | TAPE } =physical_backup_device_name
Per ulteriori informazioni, vedere Dispositivi di backup.
WITH with_options [ ,...o ]
Facoltativamente, specifica una o più opzioni aggiuntive, ad esempio DIFFERENTIAL.
NotaIl backup differenziale del file richiede come base un backup completo del file. Per ulteriori informazioni, vedere Backup differenziali del file.Se si utilizza il modello di recupero con registrazione completa, è inoltre necessario eseguire un backup del log delle transazioni. Per utilizzare un set completo di backup del file completi per il ripristino di un database, è inoltre necessario disporre di backup dei log relativi a tutti i backup del file, dall'inizio del primo backup del file. Per ulteriori informazioni, vedere Procedura: Creazione di un backup del log delle transazioni (Transact-SQL).
Esempio
Negli esempi seguenti viene eseguito il backup di uno o più file dei filegroup secondari del database Sales. Questo database utilizza il modello di recupero con registrazione completa e contiene i filegroup secondari seguenti:
Un filegroup denominato SalesGroup1 che include i file SGrp1Fi1 e SGrp1Fi2.
Un filegroup denominato SalesGroup2 che include i file SGrp2Fi1 e SGrp2Fi2.
Nota
Se si utilizza il modello di recupero con registrazione completa, è necessario eseguire backup del log regolari per troncare il log e supportare il ripristino del database fino a un punto specifico nel tempo.
A. Creazione di un backup del file per due file
Nell'esempio seguente viene creato un backup differenziale del file solo per il file SGrp1Fi2 del filegroup SalesGroup1 e per il file SGrp2Fi2 del filegroup SalesGroup2.
--Backup the files in the SalesGroup1 secondary filegroup.
BACKUP DATABASE Sales
FILE = 'SGrp1Fi2',
FILE = 'SGrp2Fi2'
TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck'
GO
B. Creazione di un backup del file completo per i filegroup secondari
Nell'esempio seguente viene creato un backup del file completo per ogni file di entrambi i filegroup secondari.
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'
GO
C. Creazione di un backup differenziale del file per i filegroup secondari
Nell'esempio seguente viene creato un backup differenziale del file per ogni file di entrambi i filegroup secondari.
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'
GO
WITH
DIFFERENTIAL,
GO
Vedere anche