Partager via


BACKUP (Transact-SQL)

Sauvegarde une base de données complète ou bien un ou plusieurs fichiers ou groupes de fichiers (BACKUP DATABASE). De plus, en mode de restauration complète ou en mode de récupération utilisant les journaux de transactions, sauvegarde le journal des transactions (BACKUP LOG).

[!REMARQUE]

Pour une présentation de la sauvegarde dans SQL Server, consultez Vue d'ensemble de la sauvegarde (SQL Server).

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

Backing Up a Whole Database 
BACKUP DATABASE { database_name | @database_name_var } 
  TO <backup_device> [ ,...n ] 
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
[;]

Backing Up Specific Files or Filegroups
BACKUP DATABASE { database_name | @database_name_var } 
 <file_or_filegroup> [ ,...n ] 
  TO <backup_device> [ ,...n ] 
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
[;]

Creating a Partial Backup
BACKUP DATABASE { database_name | @database_name_var } 
 READ_WRITE_FILEGROUPS [ , <read_only_filegroup> [ ,...n ] ]
  TO <backup_device> [ ,...n ] 
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ]
[;]

Backing Up the Transaction Log (full and bulk-logged recovery models)
BACKUP LOG { database_name | @database_name_var } 
  TO <backup_device> [ ,...n ] 
  [ <MIRROR TO clause> ] [ next-mirror-to ]
  [ WITH { <general_WITH_options> | <log-specific_optionspec> } [ ,...n ] ]
[;]

<backup_device>::= 
 {
   { logical_device_name | @logical_device_name_var } 
 | { DISK | TAPE } = 
     { 'physical_device_name' | @physical_device_name_var }
 } 

<MIRROR TO clause>::=
 MIRROR TO <backup_device> [ ,...n ]

<file_or_filegroup>::=
 {
   FILE = { logical_file_name | @logical_file_name_var } 
 | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
 } 

<read_only_filegroup>::=
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }

<general_WITH_options> [ ,...n ]::= 
--Backup Set Options
      COPY_ONLY 
 | { COMPRESSION | NO_COMPRESSION } 
 | DESCRIPTION = { 'text' | @text_variable } 
 | NAME = { backup_set_name | @backup_set_name_var } 
 | PASSWORD = { password | @password_variable } 
 | { EXPIREDATE = { 'date' | @date_var } 
        | RETAINDAYS = { days | @days_var } } 

--Media Set Options
   { NOINIT | INIT } 
 | { NOSKIP | SKIP } 
 | { NOFORMAT | FORMAT } 
 | MEDIADESCRIPTION = { 'text' | @text_variable } 
 | MEDIANAME = { media_name | @media_name_variable } 
 | MEDIAPASSWORD = { mediapassword | @mediapassword_variable } 
 | BLOCKSIZE = { blocksize | @blocksize_variable } 

--Data Transfer Options
   BUFFERCOUNT = { buffercount | @buffercount_variable } 
 | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--Error Management Options
   { NO_CHECKSUM | CHECKSUM }
 | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--Compatibility Options
   RESTART 

--Monitoring Options
   STATS [ = percentage ] 

--Tape Options
   { REWIND | NOREWIND } 
 | { UNLOAD | NOUNLOAD } 

--Log-specific Options
   { NORECOVERY | STANDBY = undo_file_name }
 | NO_TRUNCATE

Arguments

  • DATABASE
    Spécifie une sauvegarde complète de la base de données. Si une liste de fichiers et de groupes de fichiers est spécifiée, seuls ceux-ci sont sauvegardés. Au cours d'une sauvegarde de base de données complète ou différentielle, SQL Server sauvegarde une portion suffisante du journal des transactions afin d'assurer la cohérence de la base de données lors de la restauration de la sauvegarde.

    Lorsque vous restaurez une sauvegarde créée par BACKUP DATABASE (une sauvegarde de données), l'ensemble de la sauvegarde est restauré. Seule une sauvegarde du fichier journal peut être restaurée à un moment ou une transaction spécifique au sein de la sauvegarde.

    [!REMARQUE]

    Seule une sauvegarde complète peut être opérée sur la base de données master.

  • LOG
    Indique que la sauvegarde ne doit porter que sur le journal des transactions. Le journal est sauvegardé à partir de la dernière sauvegarde réussie du fichier journal et jusqu'à sa fin actuelle. Avant de pouvoir créer la première sauvegarde du fichier journal, vous devez créer une sauvegarde complète.

    Vous pouvez restaurer une sauvegarde du fichier journal jusqu'à une date et heure précise ou une transaction spécifique en spécifiant WITH STOPAT, STOPATMARK ou STOPBEFOREMARK dans votre instruction RESTORE LOG.

    [!REMARQUE]

    Après une sauvegarde de fichier journal standard, certains enregistrements du journal des transactions deviennent inactifs, sauf si vous spécifiez WITH NO_TRUNCATE ou COPY_ONLY. Le journal est tronqué une fois que tous les enregistrements d'un ou de plusieurs fichiers journaux virtuels sont devenus inactifs. Si le journal n'est pas tronqué après des sauvegardes normales du journal, il se peut que quelque chose retarde la troncation du journal. Pour plus d'informations, consultez Gestion du journal des transactions.

  • { database_name| **@database_name_var }
    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. S'il est fourni en tant que variable (
    @database_name_var), ce nom peut être spécifié comme constante de chaîne (@database_name_var=**database name) ou comme variable de type chaîne de caractères, sauf pour les types de données ntext et text.

    [!REMARQUE]

    La base de données miroir d'un partenariat de mise en miroir de bases de données ne peut pas être sauvegardée.

  • <file_or_filegroup> [ ,...n ]
    Utilisé uniquement avec BACKUP DATABASE, cet argument spécifie un fichier ou groupe de fichiers de base de données à inclure dans une sauvegarde de fichiers ou spécifie un fichier ou groupe de fichiers en lecture seule à inclure dans une sauvegarde partielle.

    • FILE = { logical_file_name| **@**logical_file_name_var }
      Nom logique d'un fichier ou variable dont la valeur correspond au nom logique d'un fichier à inclure dans la sauvegarde.

    • FILEGROUP = { logical_filegroup_name| **@**logical_filegroup_name_var }
      Nom logique d'un groupe de fichiers ou variable dont la valeur correspond au nom logique d'un groupe de fichiers à inclure dans la sauvegarde. 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.

      [!REMARQUE]

      Pensez à utiliser des sauvegardes de fichiers lorsque la taille de la base de données et les exigences en matière de performances rendent la sauvegarde de la base de données totalement inadaptée.

    • n
      Espace réservé indiquant qu'il est possible de spécifier plusieurs fichiers et groupes de fichiers dans une liste séparée par des virgules. Le nombre est illimité.

    Pour plus d'informations, consultez : Sauvegardes complètes de fichiers et Procédure : sauvegarder des fichiers et des groupes de fichiers (Transact-SQL).

  • READ_WRITE_FILEGROUPS [ , FILEGROUP = { logical_filegroup_name| **@**logical_filegroup_name_var } [ ,...n ] ]
    Spécifie une sauvegarde partielle. Une sauvegarde partielle inclut tous les fichiers en lecture/écriture dans une base de données : le groupe de fichiers primaire, tous les groupes de fichiers secondaires en lecture/écriture, ainsi que les fichiers ou groupes de fichiers en lecture seule qui ont été spécifiés.

    • READ_WRITE_FILEGROUPS
      Spécifie que tous les groupes de fichiers en lecture/écriture doivent être sauvegardés dans la sauvegarde partielle. Si la base de données est en lecture seule, READ_WRITE_FILEGROUPS inclut uniquement le groupe de fichiers primaire.

      Important

      Si, au lieu d'utiliser READ_WRITE_FILEGROUPS, vous listez de manière explicite les groupes de fichiers en lecture/écriture en utilisant FILEGROUP, vous allez créer une sauvegarde de fichiers.

    • FILEGROUP = { logical_filegroup_name| **@**logical_filegroup_name_var }
      Nom logique d'un groupe de fichiers en lecture seule ou variable dont la valeur correspond au nom logique d'un groupe de fichiers en lecture seule à inclure dans la sauvegarde partielle. Pour plus d'informations, reportez-vous à « <file_or_filegroup> », plus haut dans cette rubrique.

    • n
      Espace réservé indiquant qu'il est possible de spécifier plusieurs groupes de fichiers en lecture seule dans une liste séparée par des virgules.

    Pour plus d'informations sur les sauvegardes partielles, consultez Sauvegardes partielles.

  • TO <backup_device> [ ,...n ]
    Indique que le jeu d'unités de sauvegarde associé est soit un support de sauvegarde non miroir, soit le premier miroir d'un support de sauvegarde miroir (pour lequel une ou plusieurs clauses MIRROR TO sont déclarées).

    • <backup_device>
      Spécifie l'unité de sauvegarde logique ou physique à utiliser pour l'opération de sauvegarde.

      • { logical_device_name | @logical_device_name_var }
        Nom logique de l'unité de sauvegarde dans laquelle la base de données est sauvegardée. Le nom logique doit se conformer aux règles en vigueur pour les identificateurs. Fourni comme variable (@logical_device_name_var), le nom de l'unité de sauvegarde peut être spécifié sous la forme d'une constante de chaîne (@logical_device_name_var
        =
        nom logique de l'unité de sauvegarde) ou d'une variable de type chaîne de caractères, sauf pour les types de données ntext et text.

      • { DISK | TAPE } = { 'physical_device_name' | **@**physical_device_name_var }
        Spécifie un fichier de disque ou un périphérique à bandes.

        Une unité de disque n'est pas tenue d'exister pour pouvoir être spécifiée dans une instruction BACKUP. Si l'unité physique existe et si l'option INIT n'est pas spécifiée dans l'instruction BACKUP, la sauvegarde est ajoutée à l'unité.

        Pour plus d'informations, consultez Unités de sauvegarde.

        [!REMARQUE]

        L'option TAPE sera supprimée dans une future version de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

    • n
      Espace réservé indiquant qu'il est possible de spécifier jusqu'à 64 unités de sauvegarde dans une liste séparée par des virgules.

  • MIRROR TO <backup_device> [ ,...n ]
    Spécifie un jeu constitué au maximum de trois unités de sauvegarde, dont chacune sera le miroir des unités de sauvegarde spécifiées dans la clause TO. La clause MIRROR TO doit contenir le même type et le même nombre d'unités de sauvegarde que la clause TO. Vous pouvez spécifier jusqu'à trois clauses MIRROR TO.

    Cette option n'est disponible que dans SQL Server 2005 Enterprise Edition et les versions ultérieures.

    [!REMARQUE]

    Pour MIRROR TO = DISK, BACKUP détermine automatiquement la taille de bloc appropriée des unités de disques. Pour plus d'informations sur la taille de bloc, consultez « BLOCKSIZE » ultérieurement dans ce tableau.

    • <backup_device>
      Voir « <backup_device> », plus haut dans cette section.

    • n
      Espace réservé indiquant qu'il est possible de spécifier jusqu'à 64 unités de sauvegarde dans une liste séparée par des virgules. Le nombre d'unités spécifiées dans la clause MIRROR TO doit être égal au nombre d'unités spécifiées dans la clause TO.

    Pour plus d'informations, consultez « Familles de supports de sauvegarde miroirs » dans la section « Remarques », plus loin dans cette rubrique.

  • [ next-mirror-to ]
    Espace réservé indiquant qu'une instruction BACKUP peut contenir jusqu'à trois clauses MIRROR TO, en plus de la clause TO.

Options WITH

Spécifie les options à utiliser avec une opération de sauvegarde.

  • DIFFERENTIAL
    Utilisé uniquement avec BACKUP DATABASE, ce paramètre spécifie que la sauvegarde de base de données ou de fichier ne doit porter que sur les parties de la base de données ou du fichier qui ont été modifiées depuis la dernière sauvegarde complète. Une sauvegarde différentielle occupe en général moins d'espace qu'une sauvegarde complète. Utilisez cette option de façon à ne pas avoir à appliquer toutes les sauvegardes successives du journal effectuées depuis la dernière sauvegarde complète.

    [!REMARQUE]

    Par défaut, BACKUP DATABASE crée une sauvegarde complète.

    Pour plus d'informations, consultez Utilisation des sauvegardes différentielles.

Options du jeu de sauvegarde

Ces options s'appliquent au jeu de sauvegarde qui est créé par cette opération de sauvegarde.

[!REMARQUE]

Pour spécifier un jeu de sauvegarde pour une opération de restauration, utilisez l'option FILE =<backup_set_file_number>. Pour plus d'informations sur la façon de spécifier un jeu de sauvegarde, consultez « Spécification d'un jeu de sauvegarde » dans Arguments RESTORE (Transact-SQL).

  • COPY_ONLY
    Spécifie que la sauvegarde est une sauvegarde en copie seule qui n'a aucun impact sur la séquence normale des sauvegardes. Une sauvegarde en copie seule est créée indépendamment de vos sauvegardes régulières standard. Ce type de sauvegarde n'a aucun effet sur les procédures globales de sauvegarde et de restauration de la base de données.

    Les sauvegardes en copie seule ont été introduites dans SQL Server 2005 pour être utilisées dans les cas où une sauvegarde est effectuée dans un but particulier, par exemple pour sauvegarder le journal avant une restauration de fichiers en ligne. En règle générale, une sauvegarde de fichier journal en copie seule est utilisée une fois, puis supprimée.

    • Lorsqu'elle est utilisée avec BACKUP DATABASE, l'option COPY_ONLY crée une sauvegarde complète qui ne peut pas servir de base différentielle. La bitmap différentielle n'est pas mise à jour et les sauvegardes différentielles se comportent comme si la sauvegarde en copie seule n'existait pas. Les sauvegardes différentielles ultérieures utilisent la dernière sauvegarde complète standard en tant que base.

      Important

      Si les options DIFFERENTIAL et COPY_ONLY sont utilisées ensemble, COPY_ONLY est ignorée et une sauvegarde différentielle est créée.

    • Lorsqu'elle est utilisée avec BACKUP LOG, l'option COPY_ONLY crée une sauvegarde de journal en copie seule qui ne tronque pas le journal des transactions. La sauvegarde de journal en copie seule n'a aucun effet sur la séquence de journaux de transactions consécutifs et les autres sauvegardes de journal se comportent comme si la sauvegarde en copie seule n'existait pas.

    Pour plus d'informations, consultez Sauvegardes de type copie seule.

  • { COMPRESSION | NO_COMPRESSION }
    Dans SQL Server 2008 Enterprise et les versions ultérieures uniquement, spécifie si la compression de sauvegarde est effectuée sur cette sauvegarde, remplaçant la valeur par défaut au niveau du serveur.

    Lors de l'installation, le comportement par défaut exclut toute compression des sauvegardes. Toutefois, ce paramétrage par défaut peut être modifié en définissant l'option de configuration du serveur Compression par défaut des sauvegardes. Pour plus d'informations sur l'affichage de la valeur actuelle de cette option, consultez Procédure : afficher les propriétés du serveur (SQL Server Management Studio).

    • COMPRESSION
      Active explicitement la compression des sauvegardes.

      [!REMARQUE]

      Par défaut, lorsqu'une sauvegarde est compressée, des sommes de contrôle sont effectuées pour détecter les endommagements du support.

    • NO_COMPRESSION
      Désactive explicitement la compression des sauvegardes.

  • DESCRIPTION = { 'text' | **@**text_variable }
    Spécifie le texte de format libre servant à décrire le jeu de sauvegarde. La chaîne peut compter jusqu'à 255 caractères.

  • NAME = { backup_set_name| **@**backup_set_var }
    Spécifie le nom du jeu de sauvegarde. Les noms peuvent contenir jusqu'à 128 caractères. Si l'option NAME n'est pas spécifiée, le nom reste vide.

  • PASSWORD = { password | **@**password_variable }
    Définit le mot de passe utilisé avec le jeu de sauvegarde. PASSWORD est une chaîne de caractères.

    Important

    Cette fonctionnalité sera supprimée dans la prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

    Si un mot de passe est défini pour le jeu de sauvegarde, il doit être fourni lors de chaque opération de restauration SQL Server à partir du jeu. Un mot de passe de jeu de sauvegarde ne protège pas le fichier de sauvegarde contre l'écrasement. Pour ce faire, utilisez un mot de passe de support de sauvegarde à la place (voir l'option MEDIAPASSWORD ultérieurement dans ce tableau). (Pour plus d'informations sur l'utilisation des mots de passe, reportez-vous à « Autorisations », plus loin dans cette rubrique.)

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Le niveau de protection de ce mot de passe est faible. Son but est d'éviter que des utilisateurs autorisés ou non autorisés effectuent une restauration incorrecte à l'aide des outils SQL Server. En aucun cas, elle n'empêche la lecture des données de la sauvegarde par d'autres moyens ou le remplacement du mot de passe. La méthode conseillé en matière de protection des sauvegardes consiste à stocker les bandes de sauvegarde dans un emplacement sûr ou à sauvegarder les fichiers disque protégés par une liste de contrôle d'accès (ACL). La liste de contrôle d'accès doit être définie à la racine du répertoire dans lequel les sauvegardes sont effectuées.

  • { EXPIREDATE = 'date'| RETAINDAYS = days }
    Spécifie la date à laquelle le jeu de sauvegarde de cette sauvegarde peut être écrasé. Si ces options sont toutes les deux utilisées, RETAINDAYS l'emporte sur EXPIREDATE.

    Si aucune de ces options n'est spécifiée, la date d'expiration est déterminée par le paramètre de configuration mediaretention. Pour plus d'informations, consultez Définition des options de configuration de serveur.

    Important

    Ces options empêchent seulement SQL Server d'écraser un fichier. Le contenu des bandes peut être écrasé par d'autres méthodes, et les fichiers sur disque peuvent être supprimés à partir du système d'exploitation. Pour plus d'informations sur le contrôle du délai d'expiration, consultez SKIP et FORMAT dans cette rubrique.

    • EXPIREDATE = { 'date'| **@**date_var }
      Indique la date à laquelle le jeu de sauvegarde expire et peut par conséquent être écrasé. Si elle est fournie en tant que variable (@date_var), cette date doit suivre le format système configuré datetime et prendre l'une des formes suivantes :

      • Une constante de chaîne (@date_var = date).

      • Une variable de type chaîne de caractères (à l'exception des types de données ntext ou text).

      • Une variable de type smalldatetime.

      • Une variable de type datetime.

      Par exemple :

      • 'Dec 31, 2020 11:59 PM'

      • '1/1/2021'

      Pour plus d'informations sur la manière de spécifier des valeurs datetime, consultez Utilisation des données de date et d'heure.

      [!REMARQUE]

      Pour ignorer la date d'expiration, utilisez l'option SKIP.

    • RETAINDAYS = { days| **@days_var }
      Indique le nombre de jours qui doivent s'écouler avant de pouvoir remplacer le support de sauvegarde. S'il est fourni en tant que variable (
      @**days_var), sa valeur doit être un entier.

Options du support de sauvegarde

Ces options s'appliquent à l'ensemble du support de sauvegarde.

  • { NOINIT | INIT }
    Détermine si l'opération de sauvegarde ajoute les nouvelles sauvegardes ou si elle remplace les jeux de sauvegardes déjà présents sur le support de sauvegarde. La valeur par défaut (NOINIT) consiste à ajouter les nouvelles sauvegardes après le jeu de sauvegarde le plus récent sur le support.

    [!REMARQUE]

    Pour plus d'informations sur les interactions entre les options { NOINIT | INIT } et { NOSKIP | SKIP }, consultez la section « Remarques », plus loin dans cette rubrique.

    • NOINIT
      Indique que le jeu de sauvegarde est ajouté au support de sauvegarde spécifié, préservant ainsi les jeux de sauvegardes existants. Si un mot de passe de support est défini pour le support de sauvegarde, il doit être fourni. NOINIT est la valeur par défaut.

      Pour plus d'informations, consultez Ajouter un jeu de sauvegarde à des jeux de sauvegardes existants.

    • INIT
      Indique que tous les jeux de sauvegardes doivent être écrasés mais préserve l'en-tête de support. Si INIT est spécifié, tous les jeux de sauvegardes qui se trouvent sur l'unité concernée sont écrasés si les conditions l'autorisent. Par défaut, BACKUP vérifie les conditions ci-après et n'écrase pas le support de sauvegarde si l'une des conditions est vraie :

      • Un jeu de sauvegarde n'a pas encore expiré. Pour plus d'informations, reportez-vous aux options EXPIREDATE et RETAINDAYS.

      • Le nom du jeu de sauvegarde donné dans l'instruction BACKUP, s'il est fourni, ne correspond pas à celui du support de sauvegarde. Pour plus d'informations, consultez l'option NAME, plus haut dans cette section.

      Pour ignorer ces contrôles, utilisez l'option SKIP.

      [!REMARQUE]

      Si le support de sauvegarde est protégé par mot de passe, SQL Server n'écrit pas sur le support, sauf si le mot de passe du support est fourni. Ce contrôle n'est pas ignoré par l'option SKIP. Le support protégé par mot de passe ne peut être écrasé qu'en étant reformaté, ce qui supprime toutes les sauvegardes qui s'y trouvent. Pour plus d'informations sur le mot de passe du support, reportez-vous à « MEDIAPASSWORD », plus haut dans cette rubrique. Pour plus d'informations sur le reformatage du support, reportez-vous à « FORMAT », plus haut dans cette rubrique.

      Pour plus d'informations, consultez Remplacement de jeux de sauvegarde.

  • { NOSKIP | SKIP }
    Détermine si une opération de sauvegarde vérifie la date et l'heure d'expiration des jeux de sauvegardes figurant sur le support avant de les écraser.

    [!REMARQUE]

    Pour plus d'informations sur les interactions entre les options { NOINIT | INIT } et { NOSKIP | SKIP }, reportez-vous à « Remarques », plus loin dans cette rubrique.

    • NOSKIP
      Ordonne à l'instruction BACKUP de vérifier la date d'expiration de tous les jeux de sauvegardes qui se trouvent sur le support, avant d'autoriser leur écrasement. Il s'agit du paramètre par défaut.

    • SKIP
      Désactive le contrôle de la date d'expiration et du nom qui est habituellement effectué par l'instruction BACKUP pour prévenir un écrasement des jeux de sauvegardes. Pour plus d'informations sur les interactions entre les options { INIT | NOINIT } et { NOSKIP | SKIP }, reportez-vous à « Remarques », plus loin dans cette rubrique.

      Pour afficher les dates d'expiration des jeux de sauvegardes, interrogez la colonne expiration_date de la table d'historique backupset.

  • { NOFORMAT | FORMAT }
    Spécifie si l'en-tête de support doit être écrit sur les volumes utilisés pour cette opération de sauvegarde, en écrasant l'en-tête et les jeux de sauvegardes existants.

    • NOFORMAT
      Spécifie que l'opération de sauvegarde conserve l'en-tête de support et les jeux de sauvegardes existants sur les volumes de support utilisés pour cette opération de sauvegarde. Il s'agit du comportement par défaut.

    • FORMAT
      Indique qu'un nouveau support de sauvegarde est créé. Si FORMAT est utilisé, l'opération de sauvegarde écrit un nouvel en-tête de support sur tous les volumes utilisés pour cette opération de sauvegarde. Le contenu précédent du volume devient non valide étant donné que l'en-tête et les jeux de sauvegardes existants sont écrasés.

      Important

      Utilisez l'option FORMAT avec prudence. Si vous formatez l'un des volumes d'un support de sauvegarde, la totalité du support de sauvegarde devient inutilisable. Par exemple, si une bande appartenant à un support de sauvegarde distribuée existant est initialisée, tout le support de sauvegarde devient inutilisable.

      Si l'option FORMAT est spécifiée, l'option SKIP est implicitement prise en compte ; il n'est pas nécessaire de spécifier explicitement l'option SKIP.

  • MEDIADESCRIPTION = { text | **@**text_variable }
    Indique le texte de description de format libre du support de sauvegarde (maximum 255 caractères).

  • MEDIANAME = { media_name | **@**media_name_variable}
    Fournit le nom du support de sauvegarde complet. Le nom du support ne doit pas dépasser 128 caractères. Si MEDIANAME est spécifié, il doit correspondre au nom spécifié précédemment existant sur les volumes de sauvegarde. Si elle n'est pas spécifiée, ou bien si l'option SKIP l'est, aucune vérification du nom de support n'est effectuée.

  • MEDIAPASSWORD = { mediapassword | **@**mediapassword_variable }
    Définit le mot de passe utilisé avec le support de sauvegarde. MEDIAPASSWORD est une chaîne de caractères.

    Important

    Cette fonctionnalité sera supprimée dans la prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

    Si un mot de passe est défini pour le support de sauvegarde, il doit être fourni avant la création d'un jeu de sauvegarde sur le support de sauvegarde. En outre, ce mot de passe doit également être fourni lors de chaque opération de restauration à partir du support de sauvegarde. Le support protégé par mot de passe ne peut être écrasé que par une opération de reformatage. Pour plus d'informations, reportez-vous à l'option FORMAT. (Pour plus d'informations sur l'utilisation des mots de passe, consultez la section « Autorisations » ultérieurement dans cette rubrique.)

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Le niveau de protection de ce mot de passe est faible. Son but est d'éviter que des utilisateurs autorisés ou non autorisés effectuent une restauration incorrecte à l'aide des outils SQL Server. En aucun cas, elle n'empêche la lecture des données de la sauvegarde par d'autres moyens ou le remplacement du mot de passe. La méthode conseillé en matière de protection des sauvegardes consiste à stocker les bandes de sauvegarde dans un emplacement sûr ou à sauvegarder les fichiers disque protégés par une liste de contrôle d'accès (ACL). La liste de contrôle d'accès doit être définie à la racine du répertoire dans lequel les sauvegardes sont effectuées.

  • BLOCKSIZE = { blocksize | **@**blocksize_variable }
    Indique, en octets, la taille maximale de bloc. Les tailles prises en charge sont 512, 1024, 2048, 4096, 8192, 16384, 32768 et 65536 (64 Ko) octets. La valeur par défaut est 65536 pour les périphériques à bandes, 512 sinon. En règle générale, cette option est superflue car BACKUP sélectionne automatiquement une taille de bloc appropriée pour le périphérique. Si vous spécifiez explicitement une taille de bloc, la sélection automatique est annulée et remplacée.

    Si vous effectuez une sauvegarde que vous envisagez de copier sur un CD-ROM pour la restaurer à partir de celui-ci, spécifiez BLOCKSIZE=2048.

    [!REMARQUE]

    En règle générale, cette option n'affecte les performances que si les données sont écrites sur des périphériques à bandes.

Options de transfert de données

  • BUFFERCOUNT = { buffercount | **@**buffercount_variable }
    Spécifie le nombre total de tampons d'E/S à utiliser pour l'opération de sauvegarde. Vous pouvez spécifier n'importe quel entier positif ; toutefois, un nombre élevé de tampons peut provoquer des erreurs liées à une insuffisance de mémoire. En effet, l'espace d'adressage virtuel peut s'avérer inapproprié dans la tâche Sqlservr.exe.

    L'espace total utilisé par les mémoires tampons est déterminé par : buffercount*****maxtransfersize.

  • MAXTRANSFERSIZE = { maxtransfersize | **@**maxtransfersize_variable }
    Spécifie, en octets, la plus grande unité de transfert à utiliser entre SQL Server et le support de sauvegarde. Les valeurs possibles sont les multiples de 65536 octets (64 Ko), dans la limite de 4194304 octets (4 Mo).

Options de gestion des erreurs

Ces options vous permettent de déterminer si les sommes de contrôle de sauvegarde sont activées pour l'opération de sauvegarde et si l'opération doit s'arrêter en présence d'une erreur.

  • { NO_CHECKSUM | CHECKSUM }
    Détermine si les sommes de contrôle de sauvegarde sont activées.

    • NO_CHECKSUM
      Désactive explicitement la génération de sommes de contrôle de sauvegarde (et la validation des sommes de contrôle de page). Ceci est le comportement par défaut, sauf pour une sauvegarde compressée.

    • CHECKSUM
      Active les sommes de contrôle de sauvegarde, ce qui permet à BACKUP d'effectuer les opérations suivantes :

      1. Avant d'écrire une page sur le support de sauvegarde, BACKUP vérifie la page (somme de contrôle de page ou page endommagée) si ces informations sont disponibles.

      2. Que la somme de contrôle de la page soit disponible ou non, BACKUP génère une somme de contrôle de sauvegarde séparée pour le flux de sauvegardes. Les opérations de restauration peuvent éventuellement utiliser cette somme de contrôle pour vérifier que la sauvegarde n'est pas endommagée. La somme de contrôle de sauvegarde est stockée sur le support de sauvegardes et non pas dans les pages de base de données. Elle peut en option être utilisée lors de la restauration.

      L'utilisation des sommes de contrôle de sauvegarde peut affecter la charge de travail et le débit de sauvegarde.

      Ceci est le comportement par défaut pour une sauvegarde compressée.

  • { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }
    Détermine si une opération de sauvegarde s'arrête ou continue après avoir rencontré une erreur de somme de contrôle de page.

    • STOP_ON_ERROR
      Ordonne à BACKUP de s'arrêter si une somme de contrôle de page n'est pas validée. Il s'agit du comportement par défaut.

    • CONTINUE_AFTER_ERROR
      Ordonne à BACKUP de continuer en dépit des erreurs rencontrées, telles que des sommes de contrôle de page non valides ou des pages endommagées.

      Si vous ne parvenez pas à effectuer une sauvegarde de fichier journal après défaillance à l'aide de l'option NO_TRUNCATE lorsque la base de données est endommagée, vous pouvez essayer d'effectuer une sauvegarde de fichier journal après défaillance en spécifiant CONTINUE_AFTER_ERROR au lieu de NO_TRUNCATE.

Options de compatibilité

  • RESTART
    Cette option n'a aucun effet. Elle est acceptée par cette version à des fins de compatibilité avec les versions antérieures de SQL Server.

Options de surveillance

  • STATS [ = percentage ]
    Affiche un message à chaque fois qu'un autre pourcentage se termine et sert à évaluer l'état d'avancement de l'opération. Si percentage est omis, SQL Server affiche un message à chaque incrément de 10 pour cent.

    L'option STATS signale le pourcentage terminé comme seuil de rapport de l'intervalle suivant. C'est-à-dire approximativement le pourcentage spécifié ; par exemple, si STATS=10, et si le pourcentage terminé est 40 pour cent, l'option peut afficher 43 pour cent. Pour les jeux de sauvegardes volumineux, cela n'est pas un problème car le pourcentage terminé varie très lentement entre les appels d'E/S terminés.

Options des périphériques à bandes

Ces options sont utilisées uniquement pour les périphériques À BANDES. S'il ne s'agit pas d'un périphérique à bandes, ces options sont ignorées.

  • { REWIND | NOREWIND }

    • REWIND
      Indique que SQL Server libérera et rembobinera la bande. REWIND est le paramètre par défaut.

    • NOREWIND
      Indique que SQL Server maintient la bande ouverte après l'opération de sauvegarde. Cette option vous permet d'améliorer les performances lorsque vous effectuez plusieurs opérations de sauvegarde sur une bande.

      NOREWIND implique NOUNLOAD, et ces options sont incompatibles dans une instruction BACKUP unique.

      [!REMARQUE]

      Si vous utilisez NOREWIND, l'instance de SQL Server conserve la propriété du lecteur de bande jusqu'à ce qu'une instruction BACKUP ou RESTORE s'exécutant dans le même processus utilise l'option REWIND ou UNLOAD, ou jusqu'à l'arrêt de l'instance du serveur. Le fait de maintenir la bande ouverte empêche les autres processus d'y accéder. Pour plus d'informations sur l'affichage de la liste des bandes ouvertes et sur leur fermeture, consultez Unités de sauvegarde.

  • { UNLOAD | NOUNLOAD }

    [!REMARQUE]

    UNLOAD/NOUNLOAD est un paramètre de session qui reste en vigueur jusqu'à la fin de la session ou tant qu'il n'est pas réinitialisé par le choix de l'option opposée à celle en cours d'utilisation.

    • UNLOAD
      Indique que la bande est automatiquement rembobinée et démontée lorsque la sauvegarde est terminée. UNLOAD est l'option par défaut au démarrage d'une session.

    • NOUNLOAD
      Indique qu'au terme de l'opération BACKUP la bande restera chargée dans le lecteur de bande.

[!REMARQUE]

Dans le cas d'une sauvegarde sur une unité de sauvegarde sur bande, l'option BLOCKSIZE affecte les performances de l'opération de sauvegarde. En règle générale, cette option n'affecte les performances que si les données sont écrites sur des périphériques à bandes.

Options spécifiques au journal

Ces options ne sont utilisées qu'avec BACKUP LOG.

[!REMARQUE]

Si vous ne voulez pas effectuer de sauvegarde du journal, utilisez le mode de récupération simple. Pour plus d'informations, consultez Sauvegarde selon le mode de récupération simple.

  • { NORECOVERY | STANDBY **=**undo_file_name }

    • NORECOVERY
      Effectue une sauvegarde de fichier journal après défaillance et laisse la base de données en état de restauration (RESTORING). NORECOVERY s'avère utile lors du basculement vers une base de données secondaire ou de l'exécution d'une sauvegarde de fichier journal après défaillance avant une opération RESTORE.

      Pour effectuer au mieux une sauvegarde du journal qui évite la troncation du journal et place la base de données en état RESTORING, utilisez conjointement les options NO_TRUNCATE et NORECOVERY.

    • STANDBY **=**standby_file_name
      Effectue une sauvegarde de fichier journal après défaillance et laisse la base de données en lecture seule et en état STANDBY. La clause STANDBY écrit les données en attente (annulation avec option de restauration ultérieure). L'option STANDBY est semblable à BACKUP LOG WITH NORECOVERY suivie par RESTORE WITH STANDBY.

      Le mode d'attente nécessite un fichier d'annulation, spécifié par standby_file_name, dont l'emplacement figure dans le journal de la base de données. Si le fichier spécifié existe déjà, le moteur de base de données l'écrase ; sinon, le moteur de base de données le crée. Le fichier d'annulation devient partie intégrante de la base de données.

      Ce fichier contient les modifications annulées, qui doivent être restaurées si des opérations RESTORE LOG sont effectuées ultérieurement. Vous devez disposer d'un espace disque suffisant pour que le fichier d'annulation puisse contenir toutes les pages distinctes de la base de données qui ont été modifiées par suite du rejet des transactions non validées.

  • NO_TRUNCATE
    Indique que le journal n'est pas tronqué et que le moteur de base de données tente la sauvegarde, quel que soit l'état de la base de données. Par conséquent, les métadonnées d'une sauvegarde effectuée avec l'option NO_TRUNCATE peuvent être incomplètes. Cette option permet de sauvegarder le journal lorsque la base de données est endommagée.

    L'option NO_TRUNCATE de BACKUP LOG revient à spécifier COPY_ONLY et CONTINUE_AFTER_ERROR.

    Sans l'option NO_TRUNCATE, l'état de la base de données doit avoir la valeur ONLINE. Si l'état de la base de données a la valeur SUSPENDED, vous pouvez créer une sauvegarde en spécifiant NO_TRUNCATE. Toutefois, si l'état de la base de données a la valeur OFFLINE ou EMERGENCY, l'option BACKUP n'est pas autorisée même avec l'option NO_TRUNCATE. Pour plus d'informations sur les états des bases de données, consultez États d'une base de données.

Notes

Les sauvegardes de base de données ou de fichier journal peuvent être ajoutées à n'importe quel périphérique de disque ou à bandes, ce qui permet de conserver au même emplacement physique la base de données et ses journaux de transactions.

L'instruction BACKUP n'est pas autorisée dans une transaction explicite ou implicite.

Les opérations de sauvegarde inter-plateformes, impliquant éventuellement des types de processeurs différents, peuvent être réalisées tant que le classement de la base de données est pris en charge par le système d'exploitation.

Pour plus d'informations sur la terminologie liée aux sauvegardes, les unités de sauvegarde et la gestion des sauvegardes, consultez Utilisation de supports de sauvegarde dans SQL Server.

[!REMARQUE]

Par défaut, chaque opération de sauvegarde réussie ajoute une entrée au journal des erreurs SQL Server et au journal des événements système. Si vous sauvegardez très fréquemment le journal, ces messages de réussite peuvent rapidement s'accumuler, créer des journaux d'erreurs très volumineux et compliquer la recherche d'autres messages. Dans de tels cas, vous pouvez supprimer ces entrées de journal en utilisant l'indicateur de trace 3226 si aucun de vos scripts ne dépend de ces entrées. Pour plus d'informations, consultez Indicateurs de trace (Transact-SQL).

Troncation du journal des transactions

Pour éviter de remplir le journal des transactions d'une base de données, les sauvegardes régulières sont essentielles. En mode de récupération simple, la troncation du journal se produit automatiquement après la sauvegarde de la base de données ; en mode de récupération complète, elle se produit automatiquement après la sauvegarde du journal des transactions. Toutefois, le processus de troncation peut parfois être différé. Pour plus d'informations sur l'identification des facteurs de retard et sur la réponse qu'il convient d'apporter, consultez Facteurs pouvant retarder la troncation du journal.

[!REMARQUE]

Les options BACKUP LOG WITH NO_LOG et WITH TRUNCATE_ONLY ont été supprimées. Si vous utilisez le mode de récupération complète ou le mode de récupération utilisant les journaux de transactions et si vous devez supprimer la chaîne de sauvegarde de fichier journal d'une base de données, passez au mode de récupération simple. Pour plus d'informations, consultez Considérations relatives au remplacement du mode de récupération complet ou du mode de récupération utilisant les journaux de transactions.

Pour plus d'informations sur la troncation de journaux en général, consultez Troncation du journal des transactions.

Concurrence

SQL Server recourt à un processus de sauvegarde en ligne pour permettre qu'une base de données soit sauvegardée alors qu'elle est encore utilisée. Lors d'une sauvegarde, la plupart des opérations sont possibles ; par exemple, les instructions INSERT, UPDATE et DELETE sont autorisées.

Parmi les opérations qui ne peuvent pas être effectuées lors d'une sauvegarde de base de données ou du journal des transactions, citons :

  • Les opérations de gestion des fichiers telles que l'instruction ALTER DATABASE employée avec les options ADD FILE et REMOVE FILE.

  • Les opérations de compactage de base de données ou de fichier. Cela comprend également les opérations de compactage automatique.

Si une opération de sauvegarde chevauche une opération de compactage ou de gestion des fichiers, un conflit se produit. Quelle que soit l'opération effectuée la première, la seconde opération attend que le verrou défini par la première opération expire (le délai d'expiration est contrôlé par un paramètre d'expiration de la session). Si le verrou est libéré au cours du délai d'expiration, la seconde opération se poursuit. Si le verrou expire, la seconde opération échoue.

Formatage du support de sauvegarde

Le support de sauvegarde est formaté par une instruction BACKUP si, et uniquement si, l'une des conditions suivantes est vraie :

  • L'option FORMAT est spécifiée.

  • Le support est vide.

  • L'opération écrit sur une bande magnétique de sauvegarde consécutive.

Pour plus d'informations, consultez Création d'un nouveau support de sauvegarde.

Types de sauvegarde.

Les types de sauvegarde pris en charge dépendent du mode de récupération de la base de données conformément à ce qui suit :

  • Tous les modes de récupération prennent en charge les sauvegardes de données complètes et différentielles.

    Étendue de la sauvegarde

    Types de sauvegarde

    Base de données entière

    Les sauvegardes de base de données couvrent l'ensemble de la base de données.

    Base de données partielle

    Les sauvegardes partielles couvrent les groupes de fichiers en lecture/écriture et, éventuellement, un ou plusieurs fichiers ou groupes de fichiers en lecture seule.

    Fichier ou groupe de fichiers

    Les sauvegardes de fichiers couvrent un ou plusieurs fichiers ou groupes de fichiers et ne conviennent qu'aux bases de données contenant plusieurs groupes de fichiers. En mode de récupération simple, les sauvegardes de fichiers se limitent essentiellement aux groupes de fichiers secondaires en lecture seule.

  • En mode de récupération complète ou en mode de récupération utilisant les journaux de transactions, les sauvegardes standard incluent également les sauvegardes des journaux de transactions (ou sauvegardes de fichier journal) séquentielles qui sont requises. Chaque sauvegarde de fichier journal couvre la partie du journal des transactions qui est active au moment de la création de la sauvegarde et inclut tous les enregistrements de journal qui n'ont pas été sauvegardés lors d'une précédente sauvegarde de journal.

    Pour réduire au maximum les risques de perte de travail, mais avec un coût en termes de charge d'administration, vous devez planifier des sauvegardes de fichier journal fréquentes. La planification de sauvegardes différentielles entre des sauvegardes complètes peut réduire le temps de restauration en diminuant le nombre de sauvegardes de fichier journal à restaurer après la restauration des données.

    Nous vous recommandons de placer les sauvegardes de fichier journal sur un autre volume que les sauvegardes de base de données.

    [!REMARQUE]

    Avant de pouvoir créer la première sauvegarde du fichier journal, vous devez créer une sauvegarde complète.

    Pour plus d'informations, consultez Utilisation des sauvegardes de journaux de transactions.

  • Une sauvegarde en copie seule est une sauvegarde complète ou une sauvegarde de fichier journal qui est réalisée dans un but précis et qui est indépendante de la séquence normale des sauvegardes standard. Pour créer une sauvegarde en copie seule, spécifiez l'option COPY_ONLY dans votre instruction BACKUP. Pour plus d'informations, consultez Sauvegardes de type copie seule.

Interactions de SKIP, NOSKIP, INIT et NOINIT

Ce tableau décrit les interactions entre les options { NOINIT | INIT } et { NOSKIP | SKIP }.

[!REMARQUE]

Si le support de bande est vide ou que le fichier de sauvegarde sur disque n'existe pas, toutes ces interactions écrivent un en-tête de support, puis se poursuivent. Si le support n'est pas vide et qu'il ne contient pas d'en-tête de support valide, ces opérations signalent qu'il ne s'agit pas d'un support MTF valide et mettent fin à l'opération de sauvegarde.

 

NOINIT

INIT

NOSKIP

Si le volume contient un en-tête de support valide, vérifie le mot de passe du support et vérifie que le nom du support correspond à la valeur de MEDIANAME, si elle est spécifiée. Si les deux noms correspondent, ajoute le jeu de sauvegarde en gardant ceux qui existent déjà.

Si le volume ne contient pas d'en-tête de support valide, une erreur se produit.

Si le volume contient un en-tête de support valide, effectue les vérifications suivantes :

  • Vérifie le mot de passe du support.2

  • Si MEDIANAME a été spécifié, vérifie que le nom indiqué correspond à celui qui est mentionné dans l'en-tête du support.

  • Vérifie qu'il n'y a pas déjà sur le support des jeux de sauvegardes qui ne seraient pas encore arrivés à expiration.

    S'il y en a, met fin à la sauvegarde.

Si toutes ces vérifications sont validées, écrase tous les jeux de sauvegardes présents sur le support en ne conservant que l'en-tête du support.

Si le volume ne contient pas d'en-tête de support valide, en génère un en utilisant les valeurs de MEDIANAME, MEDIAPASSWORD et MEDIADESCRIPTION si elles sont spécifiées.

SKIP

Si le volume contient un en-tête de support valide, vérifie le mot de passe du support et ajoute le jeu de sauvegarde, en gardant ceux qui existent déjà.

Si le volume contient un en-tête de support valide1, vérifie le mot de passe du support et écrase tous les jeux de sauvegardes présents sur le support en ne gardant que l'en-tête.

Si le support est vide, génère un en-tête de support en utilisant les valeurs de MEDIANAME, MEDIAPASSWORD et MEDIADESCRIPTION si elles sont spécifiées.

1 Pour être valide, il doit faire état du numéro de version MTF et d'autres informations d'en-tête. Si la version indiquée n'est pas prise en charge ou pas reconnue, une erreur se produit.

2 L'utilisateur doit appartenir aux rôles de serveur ou de base de données fixes appropriés et fournir le mot de passe de support correct pour effectuer une opération de sauvegarde.

Tables d'historique de sauvegarde

SQL Server intègre les tables d'historique de sauvegarde suivantes pour assurer le suivi des activités de sauvegarde :

Si une restauration est effectuée et si le jeu de sauvegarde n'est pas encore enregistré dans la base de données msdb, les tables d'historique de sauvegarde ne seront peut-être pas modifiées.

Prise en charge de la compatibilité

AttentionAttention

Les sauvegardes créées avec une version plus récente de SQL Server ne peuvent pas être restaurées dans les versions antérieures de SQL Server.

BACKUP prend en charge l'option RESTART pour assurer la compatibilité descendante avec les versions antérieures de SQL Server. Mais RESTART n'a aucun effet dans SQL Server 2005 et les versions ultérieures.

Unités de sauvegarde d'un support de sauvegarde distribuée (jeu de bandes)

Un jeu de bandes est un ensemble de fichiers disque sur lesquels les données sont divisées en blocs et distribuées dans un ordre fixe. Le nombre d'unités de sauvegarde utilisées dans un jeu de bandes doit rester le même (sauf si le support est réinitialisé avec FORMAT).

L'exemple ci-dessous écrit une sauvegarde de la base de données AdventureWorks sur un nouveau jeu de sauvegarde distribuée qui utilise trois fichiers disque.

BACKUP DATABASE AdventureWorks
TO DISK='X:\SQLServerBackups\AdventureWorks1.bak', 
DISK='Y:\SQLServerBackups\AdventureWorks2.bak', 
DISK='Z:\SQLServerBackups\AdventureWorks3.bak'
WITH FORMAT,
   MEDIANAME = 'AdventureWorksStripedSet0',
   MEDIADESCRIPTION = 'Striped media set for AdventureWorks database;
GO

Lorsqu'une unité de sauvegarde a été définie comme faisant partie d'un jeu de bandes, elle ne peut plus être utilisée pour une sauvegarde d'unité unique, sauf si l'option FORMAT est spécifiée. De la même façon, une unité qui contient des sauvegardes non agrégées ne peut pas être utilisée dans un jeu d'agrégats, sauf si l'option FORMAT est spécifiée. Pour diviser un jeu de sauvegarde par bandes, utilisez l'option FORMAT.

Si ni MEDIANAME ni MEDIADESCRIPTION n'est spécifié lorsqu'un en-tête de support est écrit, le champ d'en-tête de support correspondant à l'élément non spécifié est vide.

Utilisation d'un support de sauvegarde miroir

En règle générale, les sauvegardes ne sont pas mises en miroir et les instructions BACKUP contiennent simplement une clause TO. Toutefois, il est possible de créer jusqu'à quatre miroirs par support de sauvegarde. Dans le cas d'un support de sauvegarde miroir, l'opération de sauvegarde écrit dans plusieurs groupes d'unités de sauvegarde. Chaque groupe d'unités de sauvegarde constitue un miroir au sein du support de sauvegarde miroir. Chaque miroir doit utiliser le même nombre et le même type d'unités de sauvegarde physiques, lesquelles doivent toutes avoir les mêmes propriétés.

Pour effectuer une sauvegarde dans un support de sauvegarde miroir, tous les miroirs doivent être présents. Pour effectuer une sauvegarde dans un support de sauvegarde miroir, spécifiez la clause TO pour le premier miroir et spécifiez une clause MIRROR TO pour chacun des autres miroirs.

Pour un support de sauvegarde miroir, chaque clause MIRROR TO doit contenir le même nombre et le même type d'unités que la clause TO. L'exemple suivant écrit dans un support de sauvegarde miroir contenant deux miroirs et utilisant trois unités par miroir :

BACKUP DATABASE AdventureWorks
TO DISK='X:\SQLServerBackups\AdventureWorks1a.bak', 
DISK='Y:\SQLServerBackups\AdventureWorks2a.bak', 
DISK='Z:\SQLServerBackups\AdventureWorks3a.bak'
MIRROR TO DISK='X:\SQLServerBackups\AdventureWorks1b.bak', 
DISK='Y:\SQLServerBackups\AdventureWorks2b.bak', 
DISK='Z:\SQLServerBackups\AdventureWorks3b.bak';
GO

Important

Cet exemple vous permet d'effectuer un test sur votre système local. En pratique, effectuer une sauvegarde dans plusieurs unités se trouvant sur le même lecteur nuit aux performances et élimine la redondance pour laquelle les supports de sauvegarde miroirs sont conçus.

Familles de supports de sauvegarde miroirs

Chaque unité de sauvegarde spécifiée dans la clause TO d'une instruction BACKUP correspond à une famille de supports. Par exemple, si la clause TO répertorie trois unités, BACKUP écrit des données dans trois familles de supports. Dans un support de sauvegarde miroir, chaque miroir doit contenir une copie de chacune des familles de supports. C'est pour cette raison que le nombre d'unités doit être identique pour tous les miroirs.

Si plusieurs unités sont spécifiées pour chaque miroir, leur ordre détermine la famille de supports qui est écrite sur chacune d'elles. Par exemple, dans chaque liste d'unités, la deuxième unité correspond à la deuxième famille de supports. Le tableau suivant établit la correspondance entre unités et familles de supports pour les unités de l'exemple ci-dessus.

Miroir

Famille de supports 1

Famille de supports 2

Famille de supports 3

0

Z:\AdventureWorks1a.bak

Z:\AdventureWorks2a.bak

Z:\AdventureWorks3a.bak

1

Z:\AdventureWorks1b.bak

Z:\AdventureWorks2b.bak

Z:\AdventureWorks3b.bak

Une famille de supports doit toujours être sauvegardée sur la même unité à l'intérieur d'un miroir donné. Par conséquent, à chaque fois que vous utilisez un support de sauvegarde existant, répertoriez les unités de chaque miroir dans l'ordre dans lequel elles ont été spécifiées au moment de la création du support de sauvegarde.

Pour plus d'informations sur les supports de sauvegarde miroirs, consultez Utilisation de supports de sauvegarde miroirs. Pour plus d'informations d'ordre général sur les supports de sauvegarde et les familles de supports, consultez Supports, familles et jeux de sauvegarde.

Autorisations

Les autorisations BACKUP DATABASE et BACKUP LOG reviennent par défaut aux membres du rôle serveur fixe sysadmin et des rôles de base de données fixes db_owner et db_backupoperator.

En outre, l'utilisateur peut spécifier des mots de passe pour un support de sauvegarde, un jeu de sauvegardes ou les deux. Si un mot de passe est défini sur un support de sauvegarde, vous devez également fournir le mot de passe du support pour effectuer ces opérations. De même, la restauration n'est possible que si les mots de passe de support et de jeu de sauvegardes corrects sont spécifiés dans la commande de restauration.

La définition de mots de passe pour les jeux de sauvegardes et les supports de sauvegarde est facultative dans l'instruction BACKUP. La protection assurée par ce mot de passe est faible. Elle est destinée à prévenir une restauration incorrecte au moyen des outils SQL Server pour des utilisateurs autorisés ou non. Elle n'empêche pas la lecture des données de sauvegarde par d'autres moyens, ni le remplacement du mot de passe. En outre, les mots de passe n'empêchent pas le remplacement du support à l'aide de l'option FORMAT. Nous vous conseillons d'utiliser des mots de passe forts. Pour plus d'informations sur les mots de passe forts, consultez Mots de passe forts.

Par conséquent, les mots de passe permettent de protéger le contenu du support contre tout accès non autorisé effectué par le biais des outils SQL Server, mais pas contre une destruction éventuelle. Les mots de passe ne constituent pas une protection totale contre les accès non autorisés au contenu du support car les données des jeux de sauvegardes ne sont pas chiffrées et peuvent théoriquement être analysées par des programmes conçus à cet effet. Lorsque la sécurité est fondamentale, il est important que les personnes non autorisées ne puissent pas accéder au support.

Spécifier un mot de passe pour des objets créés sans association de mot de passe constitue une erreur.

BACKUP crée le jeu de sauvegardes à partir du mot de passe de jeu de sauvegardes fourni par le biais de l'option PASSWORD. En outre, BACKUP vérifie en principe le mot de passe de support fourni par l'option MEDIAPASSWORD avant une opération d'écriture sur le support. La seule fois où BACKUP ne vérifie pas le mot de passe du support est lorsqu'il formate ce dernier, écrasant ainsi l'en-tête de support. Si BACKUP écrit l'en-tête de support, il affecte le mot de passe de support de sauvegarde à la valeur spécifiée dans l'option MEDIAPASSWORD.

Pour plus d'informations sur l'impact des mots de passe sur les options SKIP, NOSKIP, INIT et NOINIT, consultez « Remarques », plus loin dans cette rubrique.

Les problèmes de propriété et d'autorisation relatifs au fichier physique de l'unité de sauvegarde peuvent influer sur une opération de sauvegarde. SQL Server doit pouvoir lire et écrire sur l'unité ; le compte sous lequel le service SQL Server s'exécute doit disposer des autorisations d'écriture. Toutefois, sp_addumpdevice, qui ajoute une entrée pour une unité de sauvegarde dans les tables système, ne vérifie pas les autorisations d'accès au fichier. De tels problèmes pour le fichier physique de l'unité de sauvegarde peuvent n'apparaître que lorsque la ressource physique est sollicitée au moment de la sauvegarde ou de la restauration.

Exemples

[!REMARQUE]

La base de données AdventureWorks est fournie à titre indicatif. AdventureWorks est l'un des exemples de bases de données de SQL Server 2005. Adventure Works Cycles est une société de fabrication fictive utilisée pour illustrer des scénarios et des concepts de base de données. Pour plus d'informations sur cette base de données, consultez Exemples de bases de données AdventureWorks.

Cette section contient les exemples suivants :

  • A. Sauvegarde d'une base de données complète

  • B. Sauvegarde de la base de données et du journal

  • C. Création d'une sauvegarde de fichiers complète des groupes de fichiers secondaires

  • D. Création d'une sauvegarde de fichiers différentielle des groupes de fichiers secondaires

  • E. Création et sauvegarde dans un support de sauvegarde miroir d'une seule famille

  • F. Création et sauvegarde dans un support de sauvegarde miroir de plusieurs familles

  • G. Sauvegarde dans un support de sauvegarde miroir existant

  • H. Création d'une sauvegarde compressée dans un nouveau support de sauvegarde

[!REMARQUE]

Les rubriques de procédures de sauvegarde contiennent des exemples supplémentaires. Pour plus d'informations, consultez Rubriques sur les procédures de sauvegarde et de restauration (Transact-SQL).

A. Sauvegarde d'une base de données complète

L'exemple ci-dessous sauvegarde la base de données AdventureWorks dans un fichier disque.

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

B. Sauvegarde de la base de données et du journal

L'exemple suivant sauvegarde l'exemple de base de données AdventureWorks qui utilise par défaut le mode de récupération simple. Pour prendre en charge les sauvegardes de fichier journal, la base de données AdventureWorks est modifiée pour utiliser le mode de récupération complète.

Ensuite, l'exemple utilise sp_addumpdevice pour créer une unité de sauvegarde logique où sauvegarder les données, AdvWorksData, puis crée une autre unité de sauvegarde logique où sauvegarder le journal, AdvWorksLog.

Enfin, l'exemple crée une sauvegarde complète de la base de données dans AdvWorksData et, après la mise à jour, sauvegarde le journal dans AdvWorksLog.

-- To permit log backups, before the full database backup, modify the database 
-- to use the full recovery model.
USE master;
GO
ALTER DATABASE AdventureWorks
   SET RECOVERY FULL;
GO
-- Create AdvWorksData and AdvWorksLog logical backup devices. 
USE master
GO
EXEC sp_addumpdevice 'disk', 'AdvWorksData', 
'Z:\SQLServerBackups\AdvWorksData.bak';
GO
EXEC sp_addumpdevice 'disk', 'AdvWorksLog', 
'X:\SQLServerBackups\AdvWorksLog.bak';
GO

-- Back up the full AdventureWorks database.
BACKUP DATABASE AdventureWorks TO AdvWorksData;
GO
-- Back up the AdventureWorks log.
BACKUP LOG AdventureWorks
   TO AdvWorksLog;
GO

[!REMARQUE]

Pour une base de données de production, sauvegardez régulièrement le journal. Les sauvegardes du journal doivent être suffisamment fréquentes pour assurer une protection contre la perte des données.

C. Création d'une sauvegarde de fichiers complète des groupes de fichiers secondaires

L'exemple suivant crée une sauvegarde complète de tous les fichiers se trouvant dans les deux groupes de fichiers secondaires.

--Back up the files in SalesGroup1:
BACKUP DATABASE Sales
   FILEGROUP = 'SalesGroup1',
   FILEGROUP = 'SalesGroup2'
   TO DISK = 'Z:\SQLServerBackups\SalesFiles.bck'
GO

D. Création d'une sauvegarde de fichiers différentielle des groupes de fichiers secondaires

L'exemple suivant crée une sauvegarde différentielle de tous les fichiers se trouvant dans les deux groupes de fichiers secondaires.

--Back up the files in SalesGroup1:
BACKUP DATABASE Sales
   FILEGROUP = 'SalesGroup1',
   FILEGROUP = 'SalesGroup2'
   TO DISK = 'Z:\SQLServerBackups\SalesFiles.bck'
   WITH 
      DIFFERENTIAL
GO

E. Création et sauvegarde dans un support de sauvegarde miroir d'une seule famille

L'exemple ci-dessous illustre la création d'un support de sauvegarde miroir contenant une seule famille de supports et quatre miroirs, ainsi que la sauvegarde de la base de données AdventureWorks dans ces derniers.

BACKUP DATABASE AdventureWorks
TO TAPE = '\\.\tape0'
MIRROR TO TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2'
MIRROR TO TAPE = '\\.\tape3'
WITH
   FORMAT,
   MEDIANAME = 'AdventureWorksSet0'

F. Création et sauvegarde dans un support de sauvegarde miroir de plusieurs familles

L'exemple suivant illustre la création d'un support de sauvegarde miroir dans lequel chaque miroir contient deux familles de supports. La base de données AdventureWorks est sauvegardée sur les deux miroirs.

BACKUP DATABASE AdventureWorks
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2', TAPE = '\\.\tape3'
WITH
   FORMAT,
   MEDIANAME = 'AdventureWorksSet1'

G. Sauvegarde dans un support de sauvegarde miroir existant

L'exemple suivant illustre l'ajout d'un jeu de sauvegarde au support de sauvegarde créé dans l'exemple précédent.

BACKUP LOG AdventureWorks
TO TAPE = '\\.\tape0', TAPE = '\\.\tape1'
MIRROR TO TAPE = '\\.\tape2', TAPE = '\\.\tape3'
WITH 
   NOINIT,
   MEDIANAME = 'AdventureWorksSet1'

[!REMARQUE]

NOINIT, par défaut, est indiqué ici pour plus de clarté.

[Début des exemples]

H. Création d'une sauvegarde compressée dans un nouveau support de sauvegarde

L'exemple suivant illustre le formatage du support avec la création d'un support de sauvegarde et une sauvegarde complète compressée de la base de données AdventureWorks.

BACKUP DATABASE AdventureWorks TO DISK='Z:\SQLServerBackups\AdvWorksData.bak' 
WITH 
   FORMAT, 
   COMPRESSION

[Début des exemples]

Historique des modifications

Mise à jour du contenu

Clarification de la description de l'option NO_TRUNCATE.