Comment sauvegarder et restaurer une base de données SQL Server ? – Un guide complet
Résumé: Il est important de créer des sauvegardes des bases de données SQL Server afin d'éviter la perte de données en cas d'événement imprévu. Dans ce guide, nous allons vous expliquer comment créer différents types de sauvegardes dans SQL Server et comment remettre en état ces sauvegardes de bases de données SQL. Nous mentionnerons également un outil de réparation SQL avancé qui peut s'avérer utile au cas où le fichier de sauvegarde serait corrompu.
L’une des principales tâches des administrateurs de bases de données SQL Server (DBA) est de garantir la disponibilité constante des données et d’empêcher leur perte en cas de problème ou de catastrophe. Pour ce faire, il est important d’effectuer des sauvegardes régulières des bases de données et de stocker les copies de sauvegarde dans un bureau hors site sûr. Une sauvegarde saine et valide prévient la perte potentielle de données et aide à récupérer les données en un temps d’arrêt minimal.
Les sauvegardes permettent de remettre les données en état en cas de défaillances ou de problèmes matériels, de pannes de serveur, d’erreurs humaines (par exemple, suppression accidentelle d’une table), de catastrophes naturelles, de corruption de la base de données, etc. Les sauvegardes sont également utiles pour migrer les bases de données d’un serveur à un autre.
Dans ce guide détaillé, nous vous expliquons comment créer différents types de sauvegardes de bases de données dans SQL Server et comment remettre en état les sauvegardes de bases de données SQL Server.
Comment créer différents types de sauvegardes de bases de données SQL Server ?
Vous pouvez créer différents types de sauvegardes de bases de données dans le serveur SQL. Nous vous présentons ci-dessous 4 types courants de sauvegardes de bases de données SQL.
1. Sauvegarde complète
Il s’agit d’une copie complète de votre base de données SQL. Elle stocke toutes les données et tous les objets, y compris les tables, les fonctions, les procédures, les vues, les index, etc. Avec une sauvegarde complète, vous pouvez facilement remettre la base de données exactement dans la forme où elle se trouvait au moment de la création de la sauvegarde. Elle sert de base à tous les autres types de sauvegardes. Toutefois, la création d’une sauvegarde complète de bases de données volumineuses nécessite beaucoup d’espace de stockage et de temps. Voyons comment créer une sauvegarde complète de la base de données SQL Server.
Vous pouvez créer une sauvegarde complète à l’aide de SQL Server Management Studio (SSMS). Voici les étapes à suivre :
- Ouvrez SSMS. Dans l’Explorateur d’objets, faites un clic droit sur la base de données et sélectionnez Tâches > Sécurité.
- Dans la fenêtre Sauvegarde de la base de données, sélectionnez le type de sauvegarde complète.
- Sous Composant de sauvegarde, sélectionnez l’option Base de données, choisissez un bureau de stockage pour la sauvegarde et cliquez sur Ajouter.
- Cliquez sur OK. Attendez que la sauvegarde soit terminée.
- Cliquez ensuite sur OK pour fermer la boîte de dialogue.
Vous pouvez également créer une sauvegarde complète à l’aide de la commande T-SQL. Voici la syntaxe :
BACKUP DATABASE [AdventureWorks2019] TO DISK = N'C:\backups\AdventureWorks2019.bak' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks2019-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10Copy
Code GOCopy
2. fusible différentiel
Avec une sauvegarde différentielle, seuls les changements survenus depuis la dernière sauvegarde complète sont sauvegardés. Cela permet d’économiser de l’espace de stockage et du temps. Moins d’informations sont nécessaires, car seules les modifications apportées depuis la dernière sauvegarde complète de la base de données sont enregistrées. Cependant, vous devez remettre la sauvegarde complète avant de remettre la sauvegarde différentielle.
Voici les étapes de la création d’une sauvegarde différentielle avec SSMS :
Note : Assurez-vous que vous disposez d’une sauvegarde complète de la base de données avant de procéder.
- Ouvrez SSMS. Dans l’Explorateur d’objets, faites un clic droit sur la base de données et sélectionnez Tâches > Sécurité.
- Dans la liste déroulante Type de sauvegarde, sélectionnez l’option Sauvegarde différentielle.
- Sous Composant base de données, sélectionnez l’option Base de données, choisissez un bureau de stockage pour la sauvegarde, cliquez sur Ajouter, puis sur OK.
Vous pouvez également utiliser les commandes T-SQL pour créer une sauvegarde différentielle. Voici la syntaxe :
BACKUP DATABASE [AdventureWorks2019] TO DISK = N'C:\backups\AdventureWorks2019.bak' WITH DIFFERENTIAL, NOFORMAT, NOINIT, NAME = N'AdventureWorks2019-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10Copy
Code GOCopy
3. sauvegarde du journal des transactions
Une sauvegarde du journal des transactions est un type de sauvegarde incrémentielle qui enregistre tous les journaux des transactions. Elle ne contient que les modifications apportées à la base de données depuis la dernière sauvegarde du journal des transactions. Cette sauvegarde permet de remettre la base de données à un point précis dans le temps et de minimiser les pertes de données. Pour créer la sauvegarde du journal des transactions, votre type de sauvegarde doit être une sauvegarde complète ou une récupération de données avec des journaux en vrac.
Pour créer la sauvegarde du journal des transactions, vous pouvez utiliser la commande suivante.
BACKUP LOG
To Disk = 'E:\NBackupDrive\NDatabasename_log.TRN'
4. sauvegarder des fichiers et des groupes de fichiers
La sauvegarde de fichiers et de groupes de fichiers permet d’enregistrer une copie des fichiers ou des groupes de fichiers sélectionnés dans la base de données. Ce type de sauvegarde convient si vous n’avez besoin de sauvegarder qu’une certaine quantité de données de façon régulière. Vous pouvez ainsi économiser beaucoup d’espace de stockage et de temps.
Vous trouverez ci-dessous les étapes à suivre pour créer une sauvegarde de fichiers ou de groupes de fichiers avec SSMS :
- Dans le SSMS, allez dans l’Explorateur d’objets, faites un clic droit sur la base de données et sélectionnez Tâches > Sécurité.
- Sélectionnez l’option Fichiers et groupes de fichiers.
- Sélectionnez les fichiers et les groupes de fichiers à sauvegarder, le nom de la base de données, le jeu de sauvegarde et la destination de la sauvegarde.
- Cliquez sur OK.
Vous pouvez également utiliser la commande T-SQL suivante pour créer une sauvegarde de fichiers ou de groupes de fichiers.
BACKUP DATABASE [Northwind] FILEGROUP = N'PRIMARY' TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\Northwind.bak' WITH NOFORMAT, NOINIT, NAME = N'Northwind-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10Copy
Code GOCopy
Comment remettre en état une sauvegarde de base de données SQL Server ?
Si vous avez réussi à créer une sauvegarde de votre base de données SQL Server, vous pouvez facilement remettre cette sauvegarde en état lorsque la situation se présente. Voyons comment vous pouvez remettre une sauvegarde complète d’une base de données SQL Server à l’aide de commandes T-SQL :
- Ouvrez SSMS et établissez une connexion avec votre instance de serveur SQL.
- Cliquez sur l’option Nouvelle requête.
- Dans la fenêtre de l’éditeur de requêtes, exécutez la commande suivante pour remettre l’intégralité de la base de données à partir du fichier .bak :
USE[master];
Code GOCopy
BACKUP DATABASE [test1]
TO DISK = N'C:\NProgramme\NMicrosoft SQL Server\NMSSQL14.MSSQLSERVER\NMSSQL\NBackup\Ntest1.bak'
AVEC NOFORMAT, NOINIT,
NAME = N'test1-Sauvegarde complète de la base de données', SKIP, NOREWIND, NOUNLOAD, STATS = 10;
Code GOCopy
Vous pouvez également remettre la sauvegarde de la base de données du serveur SQL à l’aide de SSMS ou de Windows PowerShell.
Problèmes et erreurs courants lors de la remise en état d’une sauvegarde de base de données SQL
Parfois, lors de la remise en état du fichier de sauvegarde de la base de données SQL Server (.BAK), divers problèmes et erreurs se produisent et empêchent la remise en état de la sauvegarde. Examinons quelques messages d’erreur courants qui peuvent survenir lors de la remise en état de la sauvegarde de la base de données SQL :
Erreur 3183 : Fichier de sauvegarde SQL corrompu
Cette erreur indique que le fichier de sauvegarde (.BAK) est endommagé ou présente un problème d’intégrité. Vous pouvez essayer de remettre la base de données avec l’option CONTINUE_AFTER_ERROR. Celle-ci ignorera l’erreur et remettra la sauvegarde en état. Si le fichier de sauvegarde est corrompu, vous pouvez le réparer pour corriger l’erreur 3183.
Échec de la remise en état de la base de données SQL, base de données en cours d’utilisation
Cette erreur indique que le fichier de sauvegarde que vous essayez de remettre est déjà utilisé ou qu’il présente des problèmes. Vous pouvez vérifier et déconnecter toutes les connexions existantes et redémarrer les services. Si le fichier de sauvegarde est corrompu, vous pouvez le réparer pour remédier à l’échec de la restauration de la base de données SQL.
La base de données ne peut pas être ouverte : Elle est en cours de remise en état.
Cette erreur indique que la base de données est déjà en mode de remise en état. Vous devez donc attendre que la base de données soit remise en état. Un fichier de sauvegarde endommagé peut également être à l’origine de cette erreur. Vous pouvez réparer le fichier de sauvegarde pour corriger l’erreur La base de données ne peut pas être ouverte : Elle est en cours d’erreur de remise en état.
Erreur de restauration de la base de données SQL 5243
Cette erreur se produit en raison d’incohérences dans le fichier de sauvegarde ou d’un manque d’espace sur le disque dur sur lequel le fichier de base de données est stocké. Vous pouvez vérifier l’espace de stockage sur le disque dur ou réparer le fichier de sauvegarde (.bak) pour corriger l’erreur 5243 .
La base de données ne peut pas être remise en état car le journal n’a pas été restauré
Cette erreur se produit lorsque votre base de données SQL Server est bloquée à l’état RESTORING. Cela peut être dû à une corruption de la base de données SQL ou du fichier de sauvegarde. Vous pouvez réparer la base de données ou le fichier de sauvegarde pour résoudre l’erreur ‘La base de données ne peut pas être remise en état car le journal n’a pas été restauré’.
Erreur de base de données SQL 3241 : La remise en état n’est pas possible.
Cette erreur peut se produire si vous essayez de remettre le fichier de sauvegarde qui a été créé dans une version supérieure de SQL Server, dans une version antérieure de SQL Server ou dans un fichier de sauvegarde corrompu. Vous pouvez vérifier la version du fichier de sauvegarde pour résoudre l’erreur 3241 de la base de données SQL Headeronly error on restore.
Erreur 3013 lors de la restauration d’une sauvegarde SQL
Cette erreur peut se produire en raison de problèmes avec le fichier de sauvegarde, de problèmes d’autorisation de fichier et d’autres raisons. Vous pouvez vérifier les autorisations du fichier ou réparer le fichier de sauvegarde pour résoudre l’erreur SQL 3013.
Conclusion
Dans ce guide, nous avons vu comment créer différents types de sauvegardes de bases de données dans SQL Server. Pour économiser du temps et des efforts, vous pouvez utiliser l’assistant de planification de la maintenance et la tâche de l’agent SQL Server pour créer des sauvegardes automatiques. Avec l’assistant, vous pouvez réserver une planification pour la sauvegarde automatique de la base de données SQL.
Nous avons également abordé les étapes à suivre pour remettre les sauvegardes en état. Cependant, il arrive que des erreurs se produisent lors de la remise en état de la sauvegarde et empêchent la restauration de celle-ci. Ces erreurs sont généralement dues à des incohérences ou à la corruption des fichiers de sauvegarde. Si vous rencontrez des erreurs lors de la remise en état de la sauvegarde SQL, exécutez la commande ‘RESTORE VERIFYONLY‘ pour déterminer si le fichier de sauvegarde SQL est corrompu. Si le fichier de sauvegarde est corrompu, vous pouvez utiliser un logiciel de réparation SQL avancé comme Stellar Repair for MS SQL Technician. Le logiciel peut facilement réparer les fichiers de sauvegarde de base de données SQL Server (.BAK) corrompus et remettre toutes les données. Il peut vous aider à récupérer les données à partir des sauvegardes complètes, différentielles et du journal des transactions. Il peut même récupérer les registres supprimés du fichier .BAK corrompu. L’outil est soutenu par les systèmes Linux et Windows. Il est compatible avec SQL Server 2022, 2019 et les versions inférieures.