Partager via


Sauvegarder le journal des transactions lorsque la base de données est endommagée (SQL Server)

Cette rubrique explique comment sauvegarder un journal des transactions lorsque la base de données est endommagée dans SQL Server 2014 à l’aide de SQL Server Management Studio ou de Transact-SQL.

Dans cette rubrique

Avant de commencer

Limitations et restrictions

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

Recommandations

  • Pour une base de données qui utilise le modèle de récupération complète ou journalisée en bloc, vous devez généralement sauvegarder la fin du journal avant de commencer à restaurer la base de données. Vous devez également sauvegarder la fin du journal de la base de données primaire avant de basculer vers une configuration de log shipping. La restauration de la sauvegarde du journal complet en tant que dernière sauvegarde du journal avant la récupération de la base de données évite la perte de données après une défaillance. Pour plus d’informations sur les sauvegardes de fin de journal, consultez Tail-Log Sauvegardes (SQL Server).

Sécurité

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 .

Des problèmes de propriété et d'autorisations sur le fichier physique de l'unité de sauvegarde sont susceptibles de perturber une opération de sauvegarde. SQL Server doit être en mesure de lire et d'écrire sur l'unité ; le compte sous lequel le service SQL Server s'exécute doit avoir 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. Ces problèmes sur le fichier physique de l’appareil de sauvegarde peuvent ne pas apparaître tant que la ressource physique n’est pas accessible lorsque la sauvegarde ou la restauration est tentée.

Utilisation de SQL Server Management Studio

Pour sauvegarder la fin du journal des transactions

  1. Après vous être connecté à l’instance appropriée du moteur de base de données Microsoft SQL Server, dans l’Explorateur d’objets, cliquez sur le nom du serveur pour développer l’arborescence du serveur.

  2. Développez Bases de donnéespuis, selon la base de données, sélectionnez une base de données utilisateur ou développez Bases de données système et sélectionnez une base de données système.

  3. Cliquez avec le bouton droit sur la base de données, pointez sur Tâches, puis cliquez sur Sauvegarder. La boîte de dialogue Sauvegarder la base de données s’affiche.

  4. Dans la zone de liste Base de données , vérifiez le nom de la base de données. Vous pouvez éventuellement sélectionner une autre base de données dans la liste.

  5. Vérifiez que le modèle de récupération est FULL ou BULK_LOGGED.

  6. Dans la zone de liste Type de sauvegarde , sélectionnez Journal des transactions.

  7. Laissez la sauvegarde de copie uniquement désélectionnée.

  8. Dans la zone Jeu de sauvegarde, acceptez le nom du jeu de sauvegarde par défaut suggéré dans la zone de texte Nom ou entrez un autre nom pour le jeu de sauvegarde.

  9. Dans la zone de texte Description, entrez une description pour la sauvegarde du journal des transactions.

  10. Spécifiez quand le jeu de sauvegarde expirera :

    • Pour que le jeu de sauvegarde expire après un nombre spécifique de jours, cliquez sur Après (l’option par défaut) et entrez le nombre de jours après la création du jeu pour lesquels il expirera. Cette valeur peut être comprise entre 0 et 99999 jours ; une valeur de 0 jours signifie que le jeu de sauvegarde n’expirera jamais.

      La valeur par défaut est définie dans l’option de rétention du support de sauvegarde par défaut (en jours) de la boîte de dialogue Propriétés du serveur (page Paramètres de base de données ). Pour accéder à cette boîte de dialogue, cliquez avec le bouton droit sur le nom du serveur dans l’Explorateur d’objets et sélectionnez les propriétés ; puis sélectionnez la page Paramètres de la base de données .

    • Pour que le jeu de sauvegarde expire à une date spécifique, cliquez sur le bouton "On", puis entrez la date à laquelle le jeu expirera.

  11. Choisissez le type de destination de sauvegarde en cliquant sur Disque ou Bande. Pour sélectionner les chemins d’accès d’un maximum de 64 lecteurs de disque ou de bande contenant un seul support, cliquez sur Ajouter. Les chemins d'accès sélectionnés apparaissent dans la zone de liste Sauvegarde sur.

    Pour supprimer une destination de sauvegarde, sélectionnez-la, puis cliquez sur Supprimer. Pour afficher le contenu d’une destination de sauvegarde, sélectionnez-le, puis cliquez sur Contenu.

  12. Dans la page Options , sélectionnez une option Remplacer le média , en cliquant sur l’une des options suivantes :

    • Sauvegarder sur l'ensemble de supports existant

      Pour cette option, cliquez sur Ajouter au jeu de sauvegarde existant ou remplacer tous les jeux de sauvegarde existants.

      Si vous le souhaitez, sélectionnez Vérifier le nom du support multimédia et l’expiration du jeu de sauvegarde pour que l’opération de sauvegarde vérifie la date et l’heure à laquelle le jeu de supports et le jeu de sauvegarde expirent.

      Si vous le souhaitez, entrez un nom dans la zone de texte Nom du jeu de supports . Si aucun nom n’est spécifié, un jeu de médias avec un nom vide est créé. Si vous spécifiez un nom de jeu de supports média, le média (bande ou disque) est vérifié pour s'assurer que le nom réel correspond au nom que vous entrez ici.

      Si vous laissez le nom du média vide et cochez la case pour le comparer au média, la réussite consiste à ce que le nom du média sur ce média soit également vide.

    • Créer une sauvegarde sur un nouveau jeu de supports et effacer toutes les séries de sauvegardes existantes

      Pour cette option, entrez un nom dans la zone de texte Nouveau nom du jeu de médias et, si nécessaire, décrivez le jeu de médias dans la zone de texte Nouvelle description du jeu de médias.

    Pour plus d'informations sur les options de jeux de médias, consultez Jeux de médias, Familles de médias et Jeux de sauvegarde (SQL Server).

  13. Dans la section Fiabilité , vérifiez éventuellement :

    • Vérifiez la sauvegarde lorsque vous avez terminé.

    • Effectuez la somme de contrôle avant d’écrire sur le support.

    • Continuer malgré l'erreur de somme de contrôle

    Pour des informations sur les sommes de contrôle, consultez Erreurs de média possibles lors de la sauvegarde et de la restauration (SQL Server).

  14. Dans la section Journal des transactions, cochez Sauvegarder la fin du journal et laisser la base de données en état de restauration.

    Cela équivaut à spécifier l’instruction BACKUP suivante :

    BACKUP LOG <database_name> TO <backup_device> WITH NORECOVERY

    Important

    Au moment de la restauration, la boîte de dialogue de restauration de la base de données affiche le type d’une sauvegarde journal de queue comme journal des transactions (copie uniquement).

  15. Si vous sauvegardez sur un lecteur de bande (comme spécifié dans la section Destination de la page Général), l'option Décharger la bande après la sauvegarde est active. Cliquez sur cette option pour activer l’option Rembobiner la bande avant déchargement.

  16. SQL Server 2008 Enterprise et versions ultérieures prennent en charge la compression de sauvegarde. Par défaut, si une sauvegarde est compressée dépend de la valeur de l’option de configuration de serveur par défaut de compression de sauvegarde . Toutefois, quelle que soit la valeur par défaut du serveur actuel, vous pouvez compresser une sauvegarde en vérifiant compresser la sauvegarde et en empêchant la compression en vérifiant Ne pas compresser la sauvegarde.

    Pour afficher la compression de sauvegarde actuelle par défaut

Utilisation de Transact-SQL

Pour créer une sauvegarde du journal des transactions actuellement actif

  1. Exécutez l’instruction BACKUP LOG pour sauvegarder le journal des transactions actif, en spécifiant :

    • La base de données à laquelle le journal des transactions à sauvegarder est associé.

    • Périphérique de sauvegarde où la sauvegarde du journal des transactions sera écrite.

    • Clause NO_TRUNCATE.

      Cette clause permet à la partie active du journal des transactions d’être sauvegardée même si la base de données est inaccessible, à condition que le fichier journal des transactions soit accessible et non endommagé.

Exemple (Transact-SQL)

Remarque

Cet exemple utilise AdventureWorks2012, qui utilise le modèle de récupération simple. Pour autoriser les sauvegardes de journaux, avant d’effectuer une sauvegarde complète de base de données, la base de données a été définie pour utiliser le modèle de récupération complète. Pour plus d’informations, consultez Afficher ou modifier le modèle de récupération d’une base de données (SQL Server).

Cet exemple sauvegarde le journal des transactions actuellement actif lorsqu’une base de données est endommagée et inaccessible, si le journal des transactions n’est pas endommagé et accessible.

BACKUP LOG AdventureWorks2012  
   TO MyAdvWorks_FullRM_log1  
   WITH NO_TRUNCATE;  
GO  

Voir aussi

Restaurer une sauvegarde de journal des transactions (SQL Server)
Restaurer une base de données SQL Server à un point dans le temps (modèle de récupération complète)
Sauvegarder la base de données (page Options de sauvegarde)
Sauvegarder la base de données (page Général)
Appliquer des sauvegardes de journal des transactions (SQL Server)
BACKUP (Transact-SQL)
Restaurations de fichiers (modèle de récupération simple)
Restaurations de fichiers (mode de récupération complète)