En tant qu’administrateur ou développeur SQL Server, il est crucial de comprendre l’importance de la sauvegarde et de la restauration pour maintenir un système de base de données sain et fiable. Dans cet article, nous explorerons les différentes méthodes de sauvegarde et de restauration dans SQL Server et discuterons des scénarios réels où elles peuvent être appliquées.
Types courants de sauvegarde et de restauration dans SQL Server
SQL Server propose plusieurs méthodes de sauvegarde et de restauration de bases de données. Examinons quelques types courants :
Sauvegarde complète
Une sauvegarde complète crée une copie complète de la base de données, y compris toutes les données et les objets. C’est le type de sauvegarde le plus complet et permet une restauration complète de la base de données en cas de panne.
BACKUP DATABASE [NomBaseDeDonnées]
TO DISK = 'C:\Sauvegarde\NomBaseDeDonnées.bak'
WITH INIT;
Sauvegarde différentielle
Une sauvegarde différentielle capture uniquement les modifications apportées depuis la dernière sauvegarde complète. Elle est plus rapide et nécessite moins d’espace de stockage par rapport à une sauvegarde complète. Cependant, elle ne peut être restaurée qu’en conjonction avec la dernière sauvegarde complète.
BACKUP DATABASE [NomBaseDeDonnées]
TO DISK = 'C:\Sauvegarde\NomBaseDeDonnées_diff.bak'
WITH DIFFERENTIAL;
Sauvegarde du journal des transactions
Une sauvegarde du journal des transactions capture les modifications apportées à la base de données depuis la dernière sauvegarde du journal des transactions. Elle permet une récupération à un moment donné et est essentielle pour maintenir l’intégrité des données.
BACKUP LOG [NomBaseDeDonnées]
TO DISK = 'C:\Sauvegarde\NomBaseDeDonnées_log.bak';
Scénarios de sauvegarde et de restauration en temps réel
Explorons quelques scénarios réels où la sauvegarde et la restauration jouent un rôle crucial :
Restauration d’une base de données à un moment donné
En cas de corruption des données ou de suppression accidentelle, il peut être nécessaire de restaurer une base de données à un moment précis. Cela peut être réalisé en restaurant une sauvegarde complète, suivie de sauvegardes du journal des transactions jusqu’au moment souhaité.
RESTORE DATABASE [NomBaseDeDonnées]
FROM DISK = 'C:\Sauvegarde\NomBaseDeDonnées.bak'
WITH NORECOVERY;
RESTORE LOG [NomBaseDeDonnées]
FROM DISK = 'C:\Sauvegarde\NomBaseDeDonnées_log.bak'
WITH NORECOVERY;
-- Répétez la commande de restauration du journal des transactions ci-dessus pour chaque fichier de sauvegarde du journal des transactions
RESTORE DATABASE [NomBaseDeDonnées]
WITH RECOVERY;
Restauration d’une base de données sur un serveur différent
Dans certains cas, il peut être nécessaire de restaurer une base de données sur un serveur différent. Cela peut être réalisé en effectuant une sauvegarde complète de la base de données, en copiant le fichier de sauvegarde sur le serveur cible, puis en le restaurant.
BACKUP DATABASE [NomBaseDeDonnées]
TO DISK = 'C:\Sauvegarde\NomBaseDeDonnées.bak';
-- Copiez le fichier de sauvegarde sur le serveur cible
RESTORE DATABASE [NomBaseDeDonnées]
FROM DISK = 'D:\Sauvegarde\NomBaseDeDonnées.bak'
WITH NORECOVERY;
Récupération d’une table à un moment donné
Parfois, il peut être nécessaire de récupérer une table spécifique à un moment donné. Cela peut être réalisé en restaurant une sauvegarde complète, suivie de sauvegardes du journal des transactions jusqu’au moment souhaité, et en utilisant la clause STOPAT
pour spécifier le point de récupération.
RESTORE DATABASE [NomBaseDeDonnées]
FROM DISK = 'C:\Sauvegarde\NomBaseDeDonnées.bak'
WITH NORECOVERY;
RESTORE LOG [NomBaseDeDonnées]
FROM DISK = 'C:\Sauvegarde\NomBaseDeDonnées_log.bak'
WITH NORECOVERY;
-- Répétez la commande de restauration du journal des transactions ci-dessus pour chaque fichier de sauvegarde du journal des transactions
RESTORE DATABASE [NomBaseDeDonnées]
WITH RECOVERY,
STOPAT = '2022-01-01 12:00:00';
Conclusion
La sauvegarde et la restauration sont des composants essentiels pour maintenir un environnement SQL Server fiable et sécurisé. Comprendre les différents types de sauvegardes et les scénarios de restauration peut vous aider à protéger efficacement vos données et à récupérer de tout problème imprévu. Il est important d’effectuer régulièrement des sauvegardes et de tester le processus de restauration pour garantir l’intégrité de vos bases de données.