Sauvegarde
Introduction
La gestion des sauvegardes reste l’une des tâches les plus importantes qui doivent être réalisées par l’administrateur de bases de données. Si les opérations de sauvegardes sont planifiées avec exactitude et rigueur, il est tout à fait envisageable de réaliser les sauvegardes sous forme de travaux automatisés et le responsable sera prévenu par e-mail du bon déroulement des opérations.
Les sauvegardes sont réalisées pour se prémunir des pertes de données suite à :
-
une panne de support,
-
des erreurs utilisateur,
-
une perte permanente du serveur.
Les sauvegardes SQL Server permettent de sauvegarder la base de données alors que des utilisateurs y sont connectés. Cette sauvegarde va prendre en compte tous les fichiers constituant la base de données et va enregistrer leur emplacement. Le processus de sauvegarde assure la cohérence des données et des journaux en capturant toutes les activités survenant durant le processus de sauvegarde.
Bien que la base reste accessible durant la sauvegarde, certaines opérations sont impossibles, à savoir :
-
la création ou la modification d’une base de données (notamment l’extension automatique du journal des transactions),
-
la création d’un index,
-
l’exécution d’opérations non journalisées car le processus de sauvegarde utilise le journal pour garantir la cohérence des données.
Planification
La planification des opérations de sauvegarde entraîne également celle de la restauration, en effet l’une ne va pas sans l’autre. Ce sont les exigences en matière de disponibilité des données qui vont constituer le critère déterminant pour la mise en place des sauvegardes. Pour réaliser cette planification il faut réfléchir à tous les incidents qui peuvent survenir et connaître quels seront les besoins en sauvegarde pour restaurer au mieux l’information. Il sera ensuite possible d’automatiser tous ces travaux de sauvegarde, et des tests de restauration valideront le bon déroulement des procédures de sauvegarde.
1. Les questions
Voici les principales questions qu’il faut se poser pour planifier au mieux les sauvegardes :
-
Quelle est la taille de chacune des bases de données ?
-
Quel est le volume des modifications de données ?
-
Certaines tables sont-elles plus sujettes que d’autres aux modifications ?
-
Combien de temps la base de données peut-elle rester indisponible ?
-
La perte de modifications est-elle cruciale ?
-
Est-il facile de recréer les données perdues ?
-
Quelles sont les périodes importantes d’utilisation de la base de données ?
-
La base subit-elle des surcharges de travail ponctuelles pendant lesquelles il n’est pas envisageable de lancer une sauvegarde ?
-
Les sauvegardes sont-elles conservées de façon cyclique ?
-
Le serveur SQL est-il dans un environnement multiserveur avec une administration centralisée ?
-
Quelle est la durée d’une opération de sauvegarde complète de la base de données ?
La durée des opérations de sauvegarde va dépendre de la volumétrie des données ainsi que du support sur lequel les sauvegardes...
Mise en œuvre des sauvegardes
Les opérations de sauvegarde peuvent être mises en place soit à partir de SQL Server Management Studio, soit à l’aide de procédures stockées en Transact SQL. Comme toujours, la solution graphique propose la facilité de mise en œuvre mais les commandes Transact SQL permettent quant à elles d’accéder à la totalité des options proposées.
1. Les modes de récupération
Les possibilités offertes au niveau de la sauvegarde et donc de la restauration sont directement liées au mode de récupération défini au niveau de chaque base de données. Voici les trois modes possibles :
-
Le mode de récupération simple : le journal est utilisé uniquement pour garantir la persistance des opérations apportées sur les données. Il est tronqué lors de chaque point de synchronisation.
-
Le mode de récupération complet : dans ce mode, toutes les transactions sont consignées dans le journal et y restent enregistrées même après le point de synchronisation. En cas d’échec, la perte de données est réduite car l’opération de restauration est possible jusqu’au point de défaillance (sous réserve d’avoir adopté la bonne politique de sauvegarde). Il s’agit du mode de récupération par défaut défini au niveau des bases de données utilisateur.
-
Le mode de récupération journalisé en bloc : ce mode de récupération est similaire au mode de récupération complet : toutes les transactions sont consignées dans le journal et y restent enregistrées même après le point de synchronisation. Mais seules les occurrences de ces actions...
Exercice : sauvegarder la base de données
1. Énoncé
Effectuez une sauvegarde complète de la base LivreTSQL dans le fichier c:\sauvegarde\LivreTSQL.bak.
2. Corrigé
Avant d’effectuer cette sauvegarde, il faut s’assurer que le dossier c:\sauvegarde existe bien et le créer si besoin.
À l’aide de SQL Server Management Studio
Depuis l’explorateur d’objets, positionnez-vous sur la base LivreTSQL et sélectionnez l’option Tâches - Sauvegarder dans le menu contextuel.
Renseignez alors la boîte de dialogue comme illustré ci-dessous :
À l’aide d’un script TransactSQL
C’est à l’aide de l’instruction BACKUP qu’il est possible de sauvegarder la base de données :
BACKUP DATABASE [livreTSQL] TO DISK = N'c:\sauvegarde\livreTSQL.bak'
WITH NOFORMAT, NOINIT, NAME = N'livreTSQL-Complète Base de données
Sauvegarde'
GO