Sauvegarder un journal des transactions
S’applique à : SQL Server
Cet article explique comment sauvegarder un journal des transactions dans SQL Server en utilisant SQL Server Management Studio, Azure Data Studio, Transact-SQL ou PowerShell.
Limites
L’instruction BACKUP
n’est pas autorisée dans une transaction explicite ni implicite. Une transaction est explicite si vous définissez le début et la fin de la transaction de manière explicite.
Les sauvegardes de journal des transactions de la base de données système master
ne sont pas prises en charge.
Recommandations
Si une base de données est configurée pour le mode de récupération complète ou le mode de récupération utilisant les journaux de transactions, vous devez sauvegarder le journal des transactions assez régulièrement pour protéger vos données et éviter une saturation de ce dernier. Cela tronque le journal et prend en charge la restauration de la base de données à un point précis dans le temps.
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 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, voir Indicateurs de trace (Transact-SQL).
Autorisations
Vérifiez les autorisations appropriées avant de commencer, au niveau de l’instance et au niveau du stockage.
Autorisations des moteurs de base de données
Les autorisations BACKUP DATABASE
et BACKUP LOG
requises sont octroyées 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.
Autorisations des unités de sauvegarde
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. Le compte de système d’exploitation sous lequel le service SQL Server s'exécute doit avoir des autorisations de lecture et d'écriture sur l’unité. Les problèmes relatifs aux autorisations portant sur le fichier physique de l’unité de sauvegarde n’apparaissent clairement qu’une fois que vous tentez d’accéder à la ressource physique lorsque vous tentez d’effectuer une sauvegarde ou une restauration.
Remarque
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.
Utilisez SQL Server Management Studio.
Remarque
Les étapes décrites dans cette section s’appliquent également à Azure Data Studio.
Après vous être connecté à l'instance appropriée du moteur de base de données SQL Server, dans l'Explorateur d'objets, sélectionnez le nom du serveur pour développer l'arborescence du serveur.
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.
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.
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.
Vérifiez que le mode de récupération est FULL ou BULK_LOGGED.
Dans la zone de liste Type de sauvegarde , sélectionnez Journal des transactions.
(facultatif) Sélectionnez Sauvegarde de copie uniquement pour créer une sauvegarde de copie uniquement. Une sauvegarde de copie uniquement est une sauvegarde SQL Server indépendante de la séquence classique des sauvegardes SQL Server. Voir sauvegardes de copie uniquement.
Remarque
Lorsque l'option Différentielle est sélectionnée, vous ne pouvez pas créer de sauvegarde de copie uniquement.
Acceptez le nom du jeu de sauvegarde par défaut proposé dans la zone de texte Nom , ou attribuez-lui un autre nom.
(facultatif) Dans la zone de texte Description, entrez une description du jeu de sauvegarde.
Indiquez quand le jeu de sauvegarde arrivera à expiration :
Pour que le jeu de sauvegarde expire au bout d’un nombre de jours spécifique, cliquez sur Après (option par défaut) et entrez le nombre de jours souhaité pour l’expiration du jeu après sa création. Cette valeur doit être comprise entre 0 et 99999 jours ; une valeur de 0 jour signifie que le jeu de sauvegarde n'expirera jamais.
La valeur par défaut est définie dans l’option Délai de rétention par défaut du support de sauvegarde (jours) de la boîte de dialogue Propriétés du serveur (pageParamètres de base de données ). Pour accéder à cette base de données, cliquez avec le bouton droit sur le nom du serveur dans l’Explorateur d’objets et sélectionnez Propriétés. Ensuite, sélectionnez la page Paramètres de base de données.
Pour que le jeu de sauvegarde expire à une date spécifique, sélectionnez Activé et saisissez la date à laquelle le jeu expirera.
Choisissez le type de destination de la sauvegarde en sélectionnant Disque, URL ou Bande. Pour sélectionner les chemins d'accès à 64 lecteurs de bande ou de disque au maximum contenant un seul support de sauvegarde, sélectionnez 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 sélectionnez Supprimer. Pour afficher le contenu d’une destination de sauvegarde, sélectionnez-la, puis sélectionnez Contenu.
Pour afficher ou sélectionner les options avancées, sélectionnez Options dans le volet Sélectionner une page.
Sélectionnez une option Remplacer le support en sélectionnant l’un des éléments suivants :
Sauvegarder sur le support de sauvegarde existant
Pour cette option, sélectionnez Ajouter au jeu de sauvegarde existant ou Remplacer tous les jeux de sauvegarde existants, voir Jeux de supports, familles de supports et jeux de sauvegarde (SQL Server).
(facultatif) Sélectionnez Vérifier le nom du support de sauvegarde et la date d’expiration du jeu de sauvegarde pour forcer l’opération de sauvegarde à vérifier la date et l’heure de l’expiration du jeu de supports ou du jeu de sauvegarde.
(facultatif) Entrez un nom dans la zone de texte Nom du support de sauvegarde. Si aucun nom n’est spécifié, un support de sauvegarde avec un nom vide est créé. Si vous spécifiez un nom pour le support de sauvegarde, ce support (bande ou disque) est vérifié pour voir si le nom réel correspond bien au nom que vous entrez ici.
Si vous n'entrez pas de nom et que vous activez la case à cocher pour demander la vérification par rapport au support, le nom du support est également vide sur le support.
Sauvegarder sur un nouveau support de sauvegarde et effacer tous les jeux de sauvegarde existants
Pour cette option, entrez un nom dans la zone de texte Nouveau nom du support de sauvegarde et décrivez éventuellement le jeu de supports dans la zone de texte Description du nouveau support de sauvegarde, voir Jeux de supports, familles de supports et jeux de sauvegarde (SQL Server).
Dans la section Fiabilité, vous pouvez éventuellement activer les cases à cocher :
Vérifier la sauvegarde en fin d'opération.
Effectuer une somme de contrôle avant d’écrire sur le support et (facultatif) Continuer lors d’erreurs de somme de contrôle.
Pour obtenir des informations sur les sommes de contrôle, consultez Erreurs de support possibles pendant les opérations de sauvegarde et de restauration (SQL Server).
Dans la section Journal des transactions :
Pour les sauvegardes normales du journal, conservez la sélection par défaut, Tronquer le journal des transactions en supprimant les entrées inactives.
Pour sauvegarder la fin du journal (le journal actif), cochez la case Sauvegarder la fin du journal et laisser la base de données dans l’état de restauration.
Une sauvegarde de la fin du journal est effectuée après une défaillance pour éviter de perdre des données. Sauvegardez le journal actif (sauvegarde de la fin du journal) après une défaillance, avant de commencer la restauration de la base de données ou en cas de basculement sur une base de données secondaire. Sélectionner cette option équivaut à spécifier l'option NORECOVERY dans l'instruction BACKUP LOG de Transact-SQL.
Pour plus d’informations sur les sauvegardes de la fin du journal, consultez Sauvegardes de la fin du journal (SQL Server).
Si vous effectuez la sauvegarde sur un lecteur de bande (spécifié dans la section Destination de la page Général ), l’option Décharger la bande après la sauvegarde est active. Vous pouvez sélectionner cette option pour activer l'option Rembobiner la bande avant de décharger.
Par défaut, la compression d’une sauvegarde dépend de la valeur de l’option de configuration de serveur Compression par défaut des sauvegardes. Toutefois, quelle que soit la valeur par défaut actuelle au niveau du serveur, vous pouvez compresser une sauvegarde en activant Compresser la sauvegarde, et vous pouvez empêcher la compression en activant Ne pas compresser la sauvegarde.
La Compression de sauvegarde est prise en charge sur SQL Server 2008 (10.0.x) Enterprise et versions ultérieures, et SQL Server 2016 (13.x) Standard avec Service Pack 1 et versions ultérieures.
Pour visualiser le paramètre par défaut actuel de compression des sauvegardes, consultez Afficher ou configurer l’option de compression de sauvegarde par défaut (option de configuration de serveur).
Pour chiffrer le fichier de sauvegarde, activez la case à cocher Chiffrer le fichier de sauvegarde. Sélectionnez l'algorithme de chiffrement à utiliser pour chiffrer le fichier de sauvegarde et fournissez un certificat ou une clé asymétrique. Les algorithmes disponibles pour le chiffrement sont :
- AES 128
- AES 192
- AES 256
- Triple DES
Utiliser Transact-SQL
Exécutez l'instruction BACKUP LOG pour sauvegarder le journal des transactions, en indiquant les informations suivantes :
- Le nom de la base de données à laquelle appartient le journal des transactions à sauvegarder.
- l'unité de sauvegarde où sera écrite la sauvegarde du journal des transactions.
Important
Cet exemple utilise la base de données AdventureWorks2022
, qui fait appel au mode de récupération simple. Pour autoriser les sauvegardes de fichier journal, avant d'effectuer une sauvegarde complète de base de données, la base de données a été configurée pour utiliser le mode de récupération complète.
Pour plus d’informations, consultez Afficher ou modifier le mode de récupération d’une base de données (SQL Server).
L'exemple suivant crée une sauvegarde du journal des transactions pour la base de données AdventureWorks2022
sur l'unité de sauvegarde nommée qui a été précédemment créée, MyAdvWorks_FullRM_log1
.
BACKUP LOG AdventureWorks2022
TO MyAdvWorks_FullRM_log1;
GO
Utiliser PowerShell
Configurez et utilisez le fournisseur SQL Server PowerShell. Utilisez l’applet de commande Backup-SqlDatabase et spécifiez Log comme valeur du paramètre -BackupAction.
L'exemple suivant crée une sauvegarde de fichier journal de la base de données <myDatabase>
à l'emplacement de sauvegarde par défaut de l'instance de serveur Computer\Instance
.
Backup-SqlDatabase -ServerInstance Computer\Instance -Database <myDatabase> -BackupAction Log
Tâches associées
- Restaurer une sauvegarde de journal des transactions (SQL Server)
- Restaurer une base de données SQL Server jusqu’à une limite de restauration dans le temps (mode de récupération complète)
- Détecter un problème lié à un journal des transactions saturé (erreur de serveur SQL 9002)