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

  1. 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.

    RemarqueRemarque
    Une sauvegarde différentielle de fichiers requiert une sauvegarde complète de fichiers comme base. Pour plus d'informations, consultez Sauvegardes différentielles de fichiers.
  2. 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 du 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.

[!REMARQUE]

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