Procédure : sauvegarder des fichiers et des groupes de fichiers (Transact-SQL)
Lorsque la taille de la base de données et les exigences en matière de performances rendent impraticable une sauvegarde complète de la base de données, créez une sauvegarde de fichiers. Une sauvegarde de fichiers contient toutes les données dans un ou plusieurs fichiers (ou groupes de fichiers). Pour plus d'informations sur les sauvegardes de fichiers, consultez Sauvegardes complètes de fichiers et Sauvegardes différentielles de fichiers.
Important
En mode de récupération simple, vous devez sauvegarder conjointement tous les fichiers en lecture-écriture. Vous pouvez ainsi garantir que la base de données peut être restaurée dans un état cohérent dans le temps. Plutôt que de spécifier individuellement chaque fichier ou groupe de fichier en lecture-écriture, utilisez l'option READ_WRITE_FILEGROUPS. Cette option sauvegarde tous les groupes de fichiers en lecture-écriture dans la base de données. Une sauvegarde qui est créée en spécifiant READ_WRITE_FILEGROUPS est une sauvegarde partielle. Pour plus d'informations, consultez Sauvegardes partielles.
Pour sauvegarder les fichiers et groupes de fichiers
Pour créer une sauvegarde de fichier ou de groupe de fichiers, utilisez une instruction BACKUP DATABASE <file_or_filegroup>. Au minimum, cette instruction doit spécifier les actions suivantes :
Nom de la base de données.
Clause FILE ou FILEGROUP pour chaque fichier ou groupe de fichiers, respectivement.
L’unité de sauvegarde où sera écrite la sauvegarde complète.
La syntaxe de base Transact-SQL d'une sauvegarde de fichiers est la suivante :
BACKUP DATABASE database
{ FILE **=**logical_file_name | FILEGROUP **=**logical_filegroup_name } [ ,...f ]
TO backup_device [ ,...n ]
[ WITH with_options [ ,...o ] ] ;
Option
Description
database
Correspond à la base de données à partir de laquelle va être opérée la sauvegarde du journal des transactions, c'est à dire la sauvegarde complète ou partielle.
FILE =logical_file_name
Indique le nom logique d'un fichier à inclure dans la sauvegarde de fichiers.
FILEGROUP =logical_filegroup_name
Indique le nom logique d'un groupe de fichiers à inclure dans la sauvegarde de fichiers. En mode de récupération simple, la sauvegarde d'un groupe de fichiers n'est autorisée que pour un groupe de fichiers en lecture seule.
[ ,...f ]
Espace réservé indiquant qu'il est possible de spécifier plusieurs fichiers et groupes de fichiers. Le nombre de fichiers ou de groupes de fichiers est illimité.
backup_device [ ,...n ]
Spécifie une liste comprise entre 1 et 64 d'unités de sauvegarde à utiliser pour l'opération de sauvegarde. Vous pouvez spécifier une unité de sauvegarde physique ou vous pouvez spécifier une unité de sauvegarde logique correspondante, si celle-ci est déjà définie. Pour spécifier une unité de sauvegarde physique, utilisez l'option DISK ou TAPE :
{ DISK | TAPE } =physical_backup_device_name
Pour plus d'informations, consultez Unités de sauvegarde.
WITH with_options [ ,...o ]
Spécifie, éventuellement, une ou plusieurs options supplémentaires telles que DIFFERENTIAL.
RemarqueUne sauvegarde différentielle de fichiers requiert une sauvegarde complète de fichiers comme base. Pour plus d'informations, consultez Sauvegardes différentielles de fichiers.En mode de restauration complète, vous devez aussi sauvegarder le journal des transactions. Pour utiliser un jeu complet de sauvegardes de fichiers complètes afin de restaurer une base de données, vous devez aussi disposer de suffisamment de sauvegardes de journal pour couvrir toutes les sauvegardes de fichiers depuis la première sauvegarde de fichiers. Pour plus d'informations, consultez Procédure : création d'une sauvegarde de fichier journal des transactions (Transact-SQL).
Exemple
Dans les exemples suivants, vous procédez à une sauvegarde d'un ou plusieurs fichiers des groupes de fichiers secondaires de la base de données Sales. Cette base de données fait appel au mode de restauration complète et contient les groupes de fichiers secondaires suivants :
Un groupe de fichiers nommé SalesGroup1 avec les fichiers SGrp1Fi1 et SGrp1Fi2.
Un groupe de fichiers nommé SalesGroup2 avec les fichiers SGrp2Fi1 et SGrp2Fi2.
Notes
En mode de restauration complète, les sauvegardes de journaux régulières sont nécessaires pour tronquer le journal et prendre en charge la restauration de la base de données jusqu'à un point spécifique dans le temps.
A. Création d'une sauvegarde de fichiers de deux fichiers
Dans l'exemple suivant, vous créez une sauvegarde de fichiers différentiel contenant seulement le fichier SGrp1Fi2 du SalesGroup1 et le fichierSGrp2Fi2 du groupe de fichiers 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. Création d'une sauvegarde complète de fichiers des groupes de fichiers secondaires
L'exemple suivant crée une sauvegarde complète de fichiers de chaque fichier dans les groupes de fichiers secondaires.
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'
GO
C. Création d'une sauvegarde différentielle de fichiers des groupes de fichiers secondaires
L'exemple suivant crée une sauvegarde différentielle de fichiers de chaque fichier dans les groupes de fichiers secondaires.
--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
Voir aussi