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...
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
Les principales questions qu’il faut se poser pour planifier au mieux les sauvegardes sont :
-
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 sont effectuées. Deux supports sont possibles : les bandes (à condition que le lecteur de bande soit installé sur le serveur SQL) et les fichiers.
2. Choisir une stratégie de sauvegarde
Pour chaque base de données, il faut choisir une stratégie de sauvegarde qui va être une combinaison de sauvegardes complètes de bases de données et de sauvegardes du journal des transactions. Pour améliorer les performances de sauvegardes, SQL Server propose des sauvegardes différentielles....
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 configuration défini au niveau de chaque base de données. Les trois modes de récupération qu’il est possible de configurer sont :
-
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 sans le détail y sont consignées. Ainsi, lors d’opérations d’insertion en bloc (bcp, BULK INSERT…), les temps de traitement seront réduits.
Le choix du mode de récupération dépendra donc de la stratégie de sauvegarde mise en place :
-
Il n’y a pas de sauvegarde du journal des transactions => Mode de récupération simple.
-
Il y a des sauvegardes du journal => Mode...
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