IIV 5. 5Sauvegarde et restauration



Documents pareils
Sauvegarde d une base de données

Table des matières 1 DISASTER RECOVERY SAUVEGARDER RESTAURER BASE DE DONNÉS "SUSPECT"... 28

Sauvegarde et restauration de données

Corrigé de l'atelier pratique du module 3 : Récupération d'urgence

Gestion des sauvegardes

Restaurer des données

Netissime. [Sous-titre du document] Charles

MISE A JOUR : 04 FEVRIER 2011 PROCÉDURE D INSTALLATION. Cegid Business COMMENT INSTALLER CEGID BUSINESS V9 SOUS WINDOWS XP, VISTA ET 7

Windows Server 2008 R2

Mise à niveau de Windows XP vers Windows 7

Guide d utilisation WEBPORTAL CPEM Portail d Applications Web CPEM

Encryptions, compression et partitionnement des données

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Découvrez Windows NetMeeting

UltraBackup NetStation 4. Guide de démarrage rapide

Installation et utilisation du client FirstClass 11

Mes documents Sauvegardés

Tutorial sur SQL Server 2000

Sauvegarde des bases SQL Express

NOTICE D INSTALLATION ET D UTILISATION DE LIVE BACKUP

À propos de cette page Recommandations pour le mot de passe... 26

Guide SQL Server 2008 pour HYSAS

Créer et partager des fichiers

Tutorial Terminal Server sous

Logiciel HLA Fusion Version 3.X.X

Gestion des bases SQL Server Microsoft Guide pratique

Préconisations Techniques & Installation de Gestimum ERP

Sauvegarde d'une base de données SQL Server Express 2005

Prise en main. Norton Ghost Pour trouver des informations supplémentaires. A propos de Norton Ghost

Janvier Entretien de l ordinateur

Guide d installation UNIVERSALIS 2016

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Synerway - Agent SQL Server

Les sauvegardes de l ordinateur

Guide de configuration de SQL Server pour BusinessObjects Planning

Windows Internet Name Service (WINS)

Connecteur Zimbra pour Outlook 2007 et 2010 (ZCO) w

MS SQL Express 2005 Sauvegarde des données

Elle supporte entièrement la gestion de réseau sans fil sous Windows 98SE/ME/2000/XP.

Tutoriel. Votre site web en 30 minutes

Leçon N 4 Sauvegarde et restauration

Gestion des documents avec ALFRESCO

Disque Dur Internet «Découverte» Guide d utilisation du service

Instructions relatives à l installation et à la suppression des pilotes d imprimante PostScript et PCL sous Windows, version 8

VERITAS Backup Exec TM 10.0 for Windows Servers

Vous êtes bien à la bonne présentation, c est juste que je trouvais que le titre de cette présentation étais un peu long,

Copyright Arsys Internet E.U.R.L. Arsys Backup Online. Guide de l utilisateur

Manuel d utilisation

Mise à niveau Windows Vista

SOMMAIRE. Installation et utilisation HP RDX.doc

SQL Data Export for PS/PSS

Sauvegarder automatiquement ses documents

Guide de l administrateur DOC-OEMCS8-GA-FR-29/09/05

PLAN. Industrialisateur Open Source LANS DE SECOURS INFORMATIQUES PRINCIPES GENERAUX ETAT DE L ART SELON BV ASSOCIATES

Guide de l utilisateur Mikogo Version Windows

SUPPORT DE COURS ACCESS 2010

Administration Centrale : Opérations

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

COURS WINDEV NUMERO 3

Guide d installation des licences Solid Edge-NB RB

NOTICE D UTILISATION. PC / Version française

Proce dure Installation Cluster de basculement SQL Server 2005

SAGEM Wi-Fi 11g USB ADAPTER Guide de mise en route rapide

Boot Camp Guide d installation et de configuration

Nokia Internet Modem Guide de l utilisateur

Documentation Cobian

Guide d installation

TP WINDOWS 2008 SERVER - OUTILS DE SAUVEGARDE ET DE RESTAURATION

Guide d installation et d utilisation

SQL Server 2008 et YourSqlDba

Sauvegarde et protection des documents

Guide d installation UNIVERSALIS 2014

Maintenance de son PC

_ PARAMETRE DU COMPTE _ ACCEUIL. 1 ere Etape «Créer un compte principal» Créer un compte secondaire. Ouvrir un compte principal

Notice d installation du patch Lia 8.20

Instructions d installation de IBM SPSS Statistics pour Windows (mono-utilisateur)

Symantec Backup Exec 11d

Configuration de SQL server 2005 pour la réplication

Guide de l administrateur CorpoBack

Backup Premium Guide de démarrage de l utilisateur

Script de mise en miroir de base de données SQL Server

Organiser le disque dur Dossiers Fichiers

PROCÉDURE D'INSTALLATION WINDOWS 7 (32 ou 64 bit)

Seules les personnes intelligentes consultent le manuel.


Universalis Guide d installation. Sommaire

Le backup LOGOSw (Backup interne)

Fiche Pratique. Présentation du problème. Le cas le plus simple. Un cas plus compliqué. MAJ le 15/12/2011

DOCUMENT D ACCOMPAGNEMENT POUR L INSTALLATION DU LOGICIEL ESTIMACTION

Veeam Backup and Replication

Prise en main d une Cyberclasse

GUIDE D UTILISATION ADSL ASSISTANCE

1. Introduction Avantages, fonctionnalités, limitations et configuration requise Avantages... 2

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Procédure de restauration F8. Série LoRdi 2012 à Dell V131 V3360 L3330

Guide des fonctions avancées de mywishtv

La base de données dans ArtemiS SUITE

Your Detecting Connection. Manuel de l utilisateur. support@xchange2.net

Manuel du logiciel PrestaTest.

Transcription:

IIV 5 5Sauvegarde et restauration Parmi les tâches assignées à un administrateur, la sauvegarde et la gestion des jeux de sauvegardes occupent une place importante. Comme le dit l adage, on sait ce que l on perd, pas ce que l on gagne! En informatique, il est clair que la perte d une base de données peut avoir des répercussions importantes sur le fonctionnement d une société. Autant aborder la sauvegarde et la restauration avant de parler de sécurité ou de distribution de données. Trois raisons motivent ce choix : tout d abord, montrer que ces opérations sont parmi les plus importantes du système, ensuite sensibiliser tout de suite aux mécanismes simples de sauvegarde et enfin présenter l organisation d une véritable gestion des sauvegardes. Dans ce chapitre, nous aborderons en premier lieu les principes généraux de la sauvegarde, en nous attardant à ce qu il faut sauvegarder, et quand. Ensuite, nous verrons en détail toutes les subtilités des sauvegardes des bases, des journaux de transactions et des tables seules. Nous étudierons les mécanismes de restauration des bases et surtout des journaux de transactions. Enfin, nous conclurons sur tout ce qui peut arriver pendant une sauvegarde, et sur les précautions à prendre pour que tout se passe au mieux.

216 Administration et maintenance PARTIE II Sauvegarde : pourquoi, comment? Personne n est à l abri d un crash du disque dur ou d une mauvaise manipulation, qui écrase des dizaines de méga-octets de données. Que celui qui n a jamais fait un DEL *.* dans le mauvais répertoire ou sur le mauvais disque, aux temps héroïques du tout DOS, s avance afin que je le félicite. Pour se préserver de ces erreurs, il faut sauvegarder ses données. Pour éviter que tout finisse mal, SAUVEGARDEZ VOS DONNÉES!!!! Oui, mais : quoi et quand sauvegarder? Quoi sauvegarder? Vous me demandez ce qu il faut sauvegarder? Mais tout, bien sûr. Non seulement les bases de données que vous avez créées, mais aussi les bases système master, msdb et distribution si vous faites de la réplication et êtes distributeur, ainsi que les journaux de transactions, pour tenir compte des modifications apportées aux données. Bien évidemment, il n est pas question de sauvegarder bêtement ces bases, sans réfléchir à une politique générale de sauvegarde : cela implique de décider quand les sauvegardes doivent avoir lieu. Quand sauvegarder? Tous les jours, ou presque! N exagérons rien, tout dépend du type de vos bases de données. Généralement, on se fonde sur un certain nombre de critères pour établir une stratégie de sauvegarde. En voici quelques-uns : l indice de volatilité des données, qui indique si vos données sont fréquemment mises à jour ou non. Pourquoi sauvegarder tous les jours une base d infocentre qui n est qu en consultation? l espace alloué au journal des transactions. Si votre journal est de faible taille, il faudra le sauvegarder fréquemment et le purger, tout en conservant des mécanismes de tolérance de pannes ; la confiance que vous accordez aux bandes de sauvegarde ou à leur mode de stockage. Plus vous faites confiance aux bandes, moins vous sauvegardez. Mais attention, ces choses-là ne devraient pas inspirer confiance. Méfiez-vous en comme de la peste. Qu y a-t-il d aussi peu fiable qu une bande?

Sauvegarde et restauration CHAPITRE V 217 le temps imparti aux sauvegardes. Si vous n avez pas le temps de sauvegarder votre base pendant la nuit, car ladite sauvegarde prend plus de 12 heures, il faut penser à une politique de sauvegarde plus judicieuse. De manière générale, sauvegardez vos bases de données toutes les semaines, y compris master, msdb et distribution. Souvenez-vous que master est la clé de voûte de SQL Server. Si vous en faites une sauvegarde hebdomadaire, vous prévenez les risques de crash du disque. En effet, vous serez à nouveau opérationnel rapidement en remontant l une des sauvegardes de master et de vos bases de données. En règle générale, il est préférable, pour une base transactionnelle, d adopter un plan de sauvegarde incrémental, comme celui-ci :. Figure 5 1 Exemple de planning de sauvegarde incrémentale La sauvegarde du mardi ne contient donc que les transactions survenues depuis la sauvegarde du journal du lundi. Puis, le dimanche suivant, on refait une sauvegarde complète de la base. Ensuite, les jeux de sauvegardes sont permutés de façon à n en conserver que deux ou trois. Si le nombre d utilisateurs est important et qu ils font de nombreuses modifications, on peut être amené à sauvegarder le journal plusieurs fois par jour, et de ce fait, à réaliser la sauvegarde, complète ou différentielle de la base, tous les jours. L intérêt de cette dernière méthode de sauvegarde est double : d une part, sauvegarder le journal est infiniment plus rapide que sauvegarder la base, d autre part, sauvegarder le journal le vide et contribue donc à ne conserver en permanence qu un journal de faible volume. Enfin la sauvegarde différen-

218 Administration et maintenance PARTIE II Figure 5 2 Exemple de planning de sauvegarde différentielle et incrémentale tielle est plus rapide qu une sauvegarde complète, puisqu elle ne contient que les pages de la base modifiées depuis la dernière sauvegarde complète, et elle contribue à accélérer les restaurations, comme nous le verrons un peu plus loin dans ce chapitre. Soyez rusé! Dans tous les cas, si la sauvegarde de votre base de données est rapide, de quelques minutes à quelques heures, et qu elle peut se faire de nuit, je vous conseille de sauvegarder le journal plusieurs fois par jour et la base tous les jours. Cette stratégie de sauvegarde, d une part, minimise le risque de perte d informations et, d autre part, garantit que le journal garde une taille gérable dans la journée. Principes généraux Pour faire des sauvegardes avec SQL Server, vous devez créer des unités de sauvegarde. Elles peuvent accueillir indifféremment les sauvegardes complètes et différentielles des bases de donnée et celles des journaux de transactions. Une fois l unité créée, vous pouvez sauvegarder une ou plusieurs bases, mélanger bases et journaux, ou encore écraser les anciennes sauvegardes par une nouvelle. Une base un journal, un fichier ou un groupe de fichiers peut également être sauvegardée sur plusieurs unités, en parallèle ; chaque unité en contiendra une portion. La réunion de ces unités permettra donc de restaurer la base. Cette fonctionnalité propre à SQL Server permet d accélérer de manière significative les sauvegardes 1. La démarche est simple : créer les unités, sauvegarder, puis restaurer en cas de problème.

Sauvegarde et restauration CHAPITRE V 219 Soyez rusé! Une stratégie d accélération des sauvegardes, quand vous ne disposez pas de lecteur de bande rapide (comme les lecteurs DLT Digital Linear Tape) consiste à sauvegarder les bases dans des unités sur disques (c est-à-dire dans des fichiers), puis de sauvegarder ces fichiers grâce au gestionnaire de sauvegardes de Windows 2000 ou de tout autre logiciel approprié. Attention : il n est pas possible de sauvegarder directement les fichiers de bases de données avec le gestionnaire de sauvegarde de Windows 2000. En effet, dans la mesure où SQL Server en a l utilisation exclusive, Windows 2000 ne peut y accéder, à moins d arrêter le serveur SQL. Les unités de sauvegarde Avant de se lancer dans la première sauvegarde, il est préférable de créer au moins une ou plusieurs unités permanentes de sauvegarde. Les différents types d unités Il existe plusieurs types d unités, regroupant les différents media standards de stockage informatique : bande ; disque ; disque réseau ; canal nommé. Les trois premiers types sont accessibles depuis l interface graphique. Pour ce qui est du dernier, on ne peut créer l unité qu à partir de la procédure stockée sp_addumpdevice. Unités sur bande SQL Server n accepte que les lecteurs de bandes locaux, c est-à-dire connectés directement sur la machine et reconnus par Windows 2000. Il n est donc pas possible de lancer une sauvegarde sur un lecteur de bandes en réseau, à moins d utiliser un logiciel de sauvegarde comme ARCSERVE ou BACKUPEXEC avec l agent adéquat. 1. En test, j ai réussi à sauvegarder une base de 30 giga-octets sur deux lecteurs de bandes DLT en moins d une demi-heure. On peut mieux faire, mais c est plus cher!

220 Administration et maintenance PARTIE II Avant de créer une unité de sauvegarde sur bande, on doit installer le pilote du lecteur de bandes dans Windows 2000. Par défaut, cette unité aura pour nom \\.\TAPE0. S il y en a plusieurs sur la même machine, elles s appelleront \\.\TAPE1, \\.\TAPE2, et ainsi de suite. Il est possible de sauvegarder plusieurs bases sur une seule bande, ainsi qu une base sur plusieurs bandes. De plus avec le nouveau format de sauvegarde sur bande (MSTF, Microsoft Tape Format), il est possible de grouper sauvegardes Windows et SQL sur la même bande. Unité sur disque La création d une unité sur disque se résume en fait à la création d un fichier local ou d un fichier situé sur un répertoire partagé distant. Le fichier n est créé qu au moment de la première sauvegarde sur cette unité. Dans le cas d une unité sur disque réseau, on peut (et c est préférable) utiliser un nom UNC (Universal Naming Convention), par exemple, \\GODZILLA\SAUVESQL\PLANNING.BAK, pour sauvegarder dans le répertoire partagé SAUVESQL du serveur GODZILLA. Bien évidemment, la sauvegarde sur une unité réseau est subordonnée au fait que le disque distant soit en marche et accessible. Unités de canal nommé Cette fonctionnalité est proposée pour permettre la connexion de logiciels de sauvegarde. Il est alors possible de faire des sauvegardes sur des unités de bande se trouvant sur le réseau ou sur des périphériques particuliers. La différence majeure avec les autres types d unités est qu elles ne possèdent pas de nom logique. Le canal est appelé pendant la sauvegarde ou la restauration (voir les instructions BACKUP et RESTORE, plus loin dans ce chapitre). La création des unités La création d une unité peut se faire depuis SQL Enterprise Manager ou depuis Transact-SQL. Avec SQL Enterprise Manager, on ne peut créer que des unités sur disque ou sur bande. Création avec SQL Enterprise Manager Voici les étapes de création d une unité depuis SQL Enterprise Manager : 1. Depuis SQL Enterprise Manager, ouvrir le dossier Gestion ;

Sauvegarde et restauration CHAPITRE V 221 2. Sur l icône Sauvegarde, cliquer avec le bouton droit de la souris et sélectionner la commande Nouvelle unité de sauvegarde : la fenêtre de création d une unité apparaît (figure 5 3) ; Figure 5 3 Création d une unité de sauvegarde 3. Dans la zone Nom, donner le nom de l unité de sauvegarde ; 4. Dans la zone Nom de fichier ou Nom du lecteur de bande, donner le nom physique de l unité. Dans le cas d unités sur disque, donner le nom du fichier avec son chemin complet. Exemple : G:\BACKUP\MABASE.BAK. Dans le cas d unités sur disque réseau, indiquer le nom du fichier avec son chemin, par exemple : \\GODZILLA\BACKUP\MABASE.BAK. Il est préférable de donner un nom UNC plutôt que d utiliser une lettre de lecteur logique, celle-ci pouvant changer au redémarrage de la machine. Dans le cas d unités sur bande, donner le nom de la bande conforme à sa définition dans le gestionnaire de bande de Windows 2000, par exemple : \\.\TAPE0. S il y a plusieurs lecteurs de bandes sur la machine, ils sont identifiés par leur numéro (TAPE0, TAPE1, TAPE2...). 5. Cliquer sur le bouton OK. L unité est créée. Important Dans le cas d une sauvegarde sur disque, si vous allez voir sur le disque où se trouve le fichier, vous constaterez qu il n existe pas, contrairement aux fichiers de base de données. Ce fichier ne sera créé que lors de la première sauvegarde. Création avec Transact-SQL Il existe une instruction permettant de créer tout type d unité (à part les unités de canaux nommés) : sp_addumpdevice.

222 Administration et maintenance PARTIE II Syntaxe sp_addumpdevice [@devtype =] 'type_d unité', [@logicalname =] 'nom_logique', [@physicalname =] 'nom_physique' [, { [@cntrltype =] type_de_contrôleur [@devstatus =] 'état_unité' } ] Exemple : sp_addumpdevice 'disk', 'SAUVEMABASE', 'C:\MSSQL\BACKUP\MABASE.BAK' crée une unité de sauvegarde sur disque appelée MABASE.BAK. La maintenance des unités Comme pour tout composant du serveur, il est possible d éditer l état et le contenu d une unité et, bien évidemment, de la supprimer. Éditer le contenu d une unité Une unité va contenir une ou plusieurs sauvegardes de bases de données, de journaux de transaction et de tables. Le moyen le plus simple est de passer par SQL Enterprise Manager. Une fois l unité créée, elle apparaît dans la liste des unités dans le dossier Sauvegarde. Faire un clic droit sur l unité dont on souhaite éditer le contenu et choisir Propriétés, ou double-cliquer sur le nom de l unité : la fenêtre de Propriétés apparaît (figure 5 4). Figure 5 4 Propriétés d une unité de sauvegarde Appuyer sur le bouton Afficher le contenu pour visualiser le contenu de l unité sélectionnée (figure 5 5).

Sauvegarde et restauration CHAPITRE V 223 Figure 5 5 Contenu d une unité de sauvegarde On peut également obtenir des informations sur une unité de sauvegarde à partir de la fenêtre Restauration de la base de données. Nous reviendrons sur les informations contenues dans cette fenêtre et sur leur interprétation, plus loin dans ce chapitre. Figure 5 6 Contenu d une unité de sauvegarde depuis la fenêtre Restauration Enfin, pour obtenir des informations sous forme de texte, on peut utiliser la procédure stockée système sp_helpdevice, qui interroge la table master..sysdevices. Syntaxe sp_helpdevice [[@devname=] 'nom'] Le tableau 5 1 montre le résultat obtenu en exécutant cette procédure sans paramètres. Dans la mesure où la table sysdevices contient la référence des unités de base de données et celle des unités de sauvegarde, le résultat de sp_helpdevice contient la liste de toutes les unités.

224 Administration et maintenance PARTIE II Tableau 5 1 Résultat de sp_helpdevice device_name physical_name description status cntrltype size master C:\Program Files\Microsoft SQL Server\MSSQL\data\master.mdf special, physical disk, 4 MB 2 0 512 mastlog C:\Program Files\Microsoft SQL Server\MSSQL\data\mastlog.ldf special, physical disk, 0.8 MB 2 0 128 modeldev C:\Program Files\Microsoft SQL Server\MSSQL\data\model.mdf special, physical disk, 0.6 MB 2 0 80 modellog C:\Program Files\Microsoft SQL Server\MSSQL\data\modellog.ldf special, physical disk, 0.8 MB 2 0 96 tempdev C:\Program Files\Microsoft SQL Server\MSSQL\data\tempdb.mdf special, physical disk, 2 MB 2 0 256 templog C:\Program Files\Microsoft SQL Server\MSSQL\data\templog.ldf special, physical disk, 0.5 MB 2 0 64 Supprimer une unité de sauvegarde Supprimer une unité de sauvegarde ne supprime pas le fichier physique associé, mais simplement sa référence dans la table sysdevices. Pour supprimer, en mode graphique, une unité de sauvegarde, il suffit, à partir du dossier Sauvegarde de SQL Enterprise Manager, de sélectionner le nom de l unité et d appuyer sur la touche SUPPR ou de choisir Supprimer dans le menu contextuel. À partir de Transact-SQL, utiliser la procédure système sp_dropdevice. Syntaxe sp_dropdevice [@logicalname =] 'unité' [, [@delfile =] 'suppr_fichier'] La sauvegarde Lorsque les unités sont créées, on peut passer à la sauvegarde des informations. SQL Server 2000 permet de sauvegarder cinq types de composants : la base de données complète ; la base de données en mode différentiel ; le journal des transactions ;

Sauvegarde et restauration CHAPITRE V 225 un fichier ; un groupe de fichiers. L une des fonctionnalités les plus puissantes de SQL Server concerne la possibilité de sauvegarder une base, alors même qu elle est en cours d utilisation : il s agit du mécanisme de sauvegarde dynamique. Sauvegarde dynamique Il n est pas nécessaire d arrêter l exploitation d une base de données pour en faire la sauvegarde. En effet, le mécanisme de sauvegarde dynamique donne la possibilité de la sauvegarder alors que des utilisateurs y sont connectés. Pour comprendre comment cela est possible, il nous faut revenir sur la structure interne d une base de données SQL Server. Toutes les informations sont stockées dans des pages de 8 kilo-octets, que SQL Server sauvegarde, dans l ordre du fichier, que les pages aient été modifiées ou non depuis le début de la sauvegarde. Mais sauvegarder une page modifiée, alors que la transaction qui la modifie n est pas terminée, est une opération dangereuse. En effet, si la transaction échoue, les données modifiées doivent revenir dans l état précédant la modification. C est pourquoi, le système sauvegarde le journal des transactions en même temps que la base de données. Le schéma ci-dessous résume ce fonctionnement (figure 5 7). Figure 5 7 Mécanisme de sauvegarde d une base de données Pendant la sauvegarde de la base, SQL Server capture les pages de données directement sur le disque sans chercher à savoir si ces pages sont cohérentes ou non. La sauvegarde de la base seule est donc incohérente, s il y a une activité sur le système. Pour assurer la cohérence de la sauvegarde, SQL Server enregistre la portion du journal des transactions correspondant à la période de

226 Administration et maintenance PARTIE II sauvegarde. Ainsi, si la base doit être restaurée, SQL Server rejouera le journal qu il a sauvegardé en même temps que la base pour ramener les données dans un état cohérent. Dans ce cas, à la différence de la sauvegarde du journal des transactions seul, celui-ci n est pas purgé. Sauvegarde complète de la base de données La première chose à sauvegarder est la base elle-même : cela assure qu en cas de crash, on pourra revenir à la dernière sauvegarde pour restaurer les structures et les données. Une sauvegarde complète est le point de références des sauvegardes de journaux et différentielles ultérieures. Sauvegarder avec SQL Enterprise Manager Pour sauvegarder la base avec SQL Enterprise Manager, il est préférable d avoir créé une ou plusieurs unités de sauvegarde. Ensuite, rien n est plus simple. 1. Dans SQL Enterprise Manager, sélectionner le serveur sur lequel se trouve la base à sauvegarder. 2. Sélectionner la base et dans le menu Outils, choisir Sauvegarder la base de données (on peut aussi obtenir cette commande via le menu contextuel, sur le dossier de la base de données). La fenêtre de sauvegarde apparaît alors (figure 5 8). Figure 5 8 Boîte de dialogue de sauvegarde d une base de données

Sauvegarde et restauration CHAPITRE V 227 3. Dans la liste Base de données, sélectionner la base à sauvegarder. 4. Choisir le type de sauvegarde dans la zone Sauvegarde. Souvenez-vous qu il faut impérativement commencer par une sauvegarde complète de la base de données avant de sauvegarder le journal ou de faire une sauvegarde différentielle. 5. Dans la zone Destination, ajouter la ou les unités dans lesquelles on souhaite sauvegarder la base, en cliquant sur le bouton Ajouter. Si l on souhaite effectuer une sauvegarde en agrégat (c est-à-dire sur plusieurs unités simultanément), indiquer les unités les unes après les autres. Figure 5 9 Sélection d une unité de sauvegarde 6. Si l on souhaite écraser le contenu d une ou des unités sélectionnées, cocher le bouton Remplacer le support existant. 7. Choisir éventuellement les options de sauvegarde, telles la vérification de la sauvegarde 2 ou la date d expiration du jeu de sauvegarde (figure 5 10). 8. Si l unité sélectionnée est une bande, on peut choisir d Éjecter la bande après sauvegarde. 9. Cliquer sur le bouton OK pour lancer la sauvegarde. Soyez rusé! La sauvegarde est une opération qui bloque l interface graphique de SQL Enterprise Manager. Donc, pendant qu elle s exécute, il ne vous reste plus qu à regarder le curseur d avancement! Pour éviter cela, cochez la case Planification, puis cliquez sur le bouton contenant trois points de la zone Planification. La boîte de planification de la sauvegarde apparaît alors. Cochez la case Une fois et sélectionnez une planification dans quelques minutes, puis cliquez sur le bouton OK. Le système revient à la fenêtre 2. Dans la boîte de dialogue, Vérifier que la sauvegarde est terminée est une erreur de traduction. Il faut lire Vérification du jeu de sauvegarde à la fin de l opération de sauvegarde.

228 Administration et maintenance PARTIE II Figure 5 10 Sélection des options de sauvegarde de sauvegarde de la base de données, que vous pouvez fermer en cliquant sur le bouton OK. Votre sauvegarde va se dérouler à l arrière-plan à l heure indiquée. De plus, vous avez créé une tâche que vous pouvez invoquer à tout moment. Sauvegarder avec Transact-SQL La sauvegarde avec le code, bien que plus contraignante (il faut taper la totalité de la commande), est beaucoup plus souple en termes de fonctionnalités. Syntaxe BACKUP DATABASE {nom_base @var_nom_base} TO <unité_sauvegarde> [,...n] [WITH [BLOCKSIZE = {taille_bloc @var_taille_bloc}] [[,] DESCRIPTION = {texte @var_texte}] [[,] DIFFERENTIAL] [[,] EXPIREDATE = {date @var_date} RETAINDAYS = {jours @var_jours}] [[,] PASSWORD = { mot_de_passe @var_mot_de_passe } ] [[,] FORMAT NOFORMAT] [[,] {INIT NOINIT}] [[,] MEDIADESCRIPTION = {texte @var_texte}] [[,] MEDIANAME = {nom_support @var_nom_support}] [[,] MEDIAPASSWORD = { mot_de_passe_media @var_mot_de_passe_media } ] [[,] [NAME = {nom_jeu_sauve @var_nom_jeu_sauve}] [[,] {NOSKIP SKIP}] [[,] {NOREWIND REWIND} ]

Sauvegarde et restauration CHAPITRE V 229 [[,] {NOUNLOAD UNLOAD}] [[,] [RESTART] [[,] STATS [= pourcentage]] Exemple : BACKUP DATABASE mabase TO sauvemabase sauvegarde la base mabase dans l unité sauvemabase. Le paramètre unité_sauvegarde de l instruction BACKUP peut prendre les valeurs suivantes : nom de l unité de sauvegarde ; variable contenant le nom de l unité de sauvegarde ; {DISK TAPE PIPE} = nom de l unité physique. Si l on souhaite faire une sauvegarde sans créer d unité de sauvegarde au préalable, on peut se servir de la troisième valeur. Par exemple, pour sauvegarder dans un fichier appelé C:\BACKBASE.BAK, il suffit d exécuter la ligne suivante : BACKUP DATABASE MABASE TO DISK='C:\BACKBASE.BAK'. Voici la description exhaustive des options disponibles : BLOCKSIZE : il s agit de la taille de bloc à utiliser. Cette taille est fonction du type d unité de bande utilisée. SQL Server détecte automatiquement le type de bande et y adapte la taille de bloc. À moins d y être invité par le fabricant du lecteur de bande, ne modifiez pas ce paramètre qui a des répercutions importantes sur la vitesse de sauvegarde. De plus, il faut utiliser cette option conjointement avec FORMAT pour formater la bande avec la taille de bloc définie ; DESCRIPTION, MEDIADESCRIPTION, MEDIANAME : DESCRIPTION donne la description du jeu de sauvegarde, alors que MEDIADESCRIPTION et MEDIA- NAME donnent la description et le nom du média sur lequel se fait la sauvegarde ; EXPIREDATE={date @var_date} : précise une date au-delà de laquelle la sauvegarde est considérée comme obsolète et peut être écrasée. Cette option ne peut être employée que pour les unités sur bande ou sur disque, avec le paramètre INIT ; FORMAT NOFORMAT : invalide tout le contenu de l unité de sauvegarde. Cette option valide implicitement INIT et va plus loin que cette dernière option puisque le contenu de la bande est alors totalement écrasé, qu il existe un mot de passe ou non ;

230 Administration et maintenance PARTIE II MEDIAPASSWORD : permet de protéger le support de sauvegarde par un mot de passe ; INIT NOINIT : précise s il faut ou non initialiser la bande avant la sauvegarde. Cependant, s il existe d autres jeux de sauvegardes sur le bande qui ne sont pas arrivés à expiration, ils ne sont pas impactés par cette option ; UNLOAD NOUNLOAD : spécifie s il faut ou non décharger la bande en fin de sauvegarde ; PASSWORD : permet de protéger le jeu de sauvegarde par un mot de passe qui sera demandé à chaque restauration ultérieure ; RETAINDAYS={jours @var_jours} : donne le nombre de jours pendant lesquels la sauvegarde ne peut pas être écrasée. Comme EXPIREDAYS, cette option n est utilisée qu avec les unités sur bande ou sur disque avec le paramètre INIT ; STATS : définit la fréquence des messages en pourcentage de pages sauvegardées. Si vous ne renseignez pas ce paramètre, sa valeur est 10, c est-àdire que vous recevrez 10 messages pendant la sauvegarde (de 0 à 100%) ; RESTARTS : indique que la sauvegarde précédente a échoué et qu il faut la redémarrer là où elle s est arrêtée. REWIND NOREWIND : spécifie s il faut ou non fermer la bande après la sauvegarde. NOREWIND implique NOUNLOAD ; SKIP NOSKIP : indique s il faut lire ou non l en-tête des bandes contenant le nom et la date d expiration du jeu de sauvegarde ; STATS : définit la fréquence des messages en pourcentage de pages sauvegardées. Si vous ne renseignez pas ce paramètre, sa valeur est 10, c est-àdire que vous recevrez 10 messages pendant la sauvegarde (de 0 à 100%). La sauvegarde d une base de données sauve tous les objets et toutes les données de la base, ainsi que toutes les modifications validées pendant la sauvegarde. Cela signifie que si l on effectue une sauvegarde de la base alors que plusieurs utilisateurs sont au travail, la sauvegarde contient le reflet exact de l état réel de la base à la fin de la sauvegarde. Sauvegarde du journal des transactions Une transaction est définie par quatre caractéristiques : Atomique, Cohérente, Isolée, Durable (ACID). Voir «Transactions», page 54. Le journal des transactions permet de s assurer de la durabilité des transactions. Il peut être sauvegardé indépendamment de la base de données. C est en fait une double opération : outre son enregistrement sur disque, bande ou canal

Sauvegarde et restauration CHAPITRE V 231 nommé, le journal est purgé des transactions validées (ce que l on appelle sa partie inactive). La sauvegarde est donc un mécanisme qui ne conserve qu un journal des transactions de faible volume. Sauvegarder avec SQL Enterprise Manager Avec SQL Enterprise Manager, la sauvegarde du journal se déroule comme la sauvegarde d une base de données. Cependant, il n est pas possible de passer tous les paramètres spécifiques des journaux de transactions comme avec Transact-SQL. Sauvegarder avec Transact-SQL La syntaxe est similaire à celle qui sert à sauvegarder une base de données, mais on dispose de trois options supplémentaires, spécifiques des journaux. Comme avec BACKUP DATABASE, l unité de sauvegarde peut être une unité existante ou une variable contenant un nom d unité ou un nom d unité physique. Syntaxe BACKUP LOG {nom_base_de_données @var_nom_base_de_données} { [WITH { NO_LOG TRUNCATE_ONLY }] } { TO <unité_sauvegarde> [,...n] [WITH [BLOCKSIZE = {taille_bloc @var_taille_bloc}] [[,] DESCRIPTION = {texte @var_texte}] [[,] EXPIREDATE = {date @var_date} RETAINDAYS = {jours @var_jours}] [[,] PASSWORD = { mot_de_passe @var_mot_de_passe } ] [[,] FORMAT NOFORMAT] [[,] {INIT NOINIT}] [[,] MEDIADESCRIPTION = {texte @var_texte}] [[,] MEDIANAME = {nom_support @var_nom_support}] [[,] MEDIAPASSWORD = { mot_de_passe_media @var_mot_de_passe_media } ] [[,] [NAME = {nom_jeu_sauve @var_nom_jeu_sauve}] NO_TRUNCATE [[,] {NOREWIND REWIND} ] [[,] {NOSKIP SKIP}] [[,] {NOUNLOAD UNLOAD}] [[,] [RESTART] [[,] STATS [= pourcentage]] ] }

232 Administration et maintenance PARTIE II Exemple : BACKUP LOG Mabase TO Sauvelog sauvegarde le journal de la base mabase dans l unité Sauvelog. Truncate_only No_log No_truncate Cette option permet de vider la partie inactive du journal sans la sauvegarder. Bien évidemment, cette opération est risquée sur un site de production puisqu on perd la capacité de recharger une sauvegarde de la base et des journaux. Elle sert surtout au cours des phases de développement ou de test, pendant lesquelles les journaux n ont pas besoin d être conservés. Toutes les modifications faites depuis la dernière synchronisation sont perdues corps et biens : sauvegardez donc toujours la base après un BACKUP LOG WITH TRUNCATE_ONLY. Il n est pas nécessaire de préciser le nom d une unité de sauvegarde, puisque le journal n est pas sauvegardé. Un exemple? En voici un : backup log mabase with truncate_only. Important Après un BACKUP LOG WITH TRUNCATE_ONLY, il faut faire une sauvegarde de la base de données : sinon, on ne pourra pas faire d autres BACKUP LOG. Comme TRUNCATE_ONLY, NO_LOG vide le journal. La différence concerne l enregistrement dans le journal. Sans l option NO_LOG, BACKUP LOG est une transaction inscrite dans le journal ; avec cette option, BACKUP LOG vide la partie inactive du journal et n enregistre pas le fait que le journal a été vidé. NO_LOG est l option à utiliser si le journal est saturé. On ne peut rien faire d autre! Il faut d abord vider le journal avant de continuer à travailler. Bien évidemment, pensez à faire une sauvegarde de la base immédiatement après (en priant que tout se passe bien!). Attention : ne pas confondre NO_TRUNCATE avec TRUNCATE_ONLY ou NO_LOG. Cette option sert lorsque la base est suspecte, et que le journal de transactions est accessible. Si la base est suspecte défaillance du disque sur lequel elle est stockée, par exemple, il est impossible de sauvegarder le journal normalement. Avec cette option, on peut faire une sauvegarde du journal, ce qui permettra de recharger la base et les journaux jusqu au moment de la défaillance.

Sauvegarde et restauration CHAPITRE V 233 Pour que cette opération soit possible, master doit être accessible. Si, par malheur, master et la base de données se trouvaient sur le même disque défaillant, il ne vous reste que les yeux pour pleurer sur la dépouille des transactions perdues. Important Dans SQL Server 7, si le fichier.mdf de la base de données n est pas accessible, on ne peut pas sauvegarder le journal avec l option NO_TRUNCATE. On obtient les messages d erreurs 3446 et 3013 qui indiquent que la sauvegarde a échoué. Microsoft a confirmé le problème (note Q218739 du TechNet) sans apporter de solutions autre que la protection du fichier.mdf par du RAID 1 ou 5. Ce dysfonctionnement a été corrigé dans SQL Server 2000 : il est donc possible de sauvegarder le journal des transactions, même si le fichier.mdf n est pas accessible. Sauvegarde différentielle et incrémentale La mise en œuvre d une sauvegarde complète de base de données et du journal des transactions est appelée sauvegarde incrémentale. Figure 5 11 Sauvegarde incrémentale Dans l exemple de la figure 5 11, le journal de mardi 8h00 contient uniquement les modifications ayant eu lieu sur la base entre la sauvegarde complète de la base et la sauvegarde du journal des transactions. De même, la sauvegarde de mardi 12h00 contient les modifications ayant eu lieu sur la base entre la sauvegarde du journal de 8h00 et celle de 12h00. On peut dire qu il s agit d une stratégie incrémentale, puisque les sauvegardes de journaux ne contiennent que la partie ajoutée l incrément des modifications depuis la dernière sauvegarde. L inconvénient d une telle stratégie est qu en cas de restauration, il faut réappliquer tous les journaux des transactions. L application de certaines transactions peut engendrer un traitement long et fastidieux. De plus, il n est pas toujours possible de sauvegarder la

234 Administration et maintenance PARTIE II base tous les jours. En effet, si la sauvegarde de la base dépasse la durée impartie pendant la nuit, vous devez utiliser une autre stratégie. C est ici qu entre en jeu la sauvegarde différentielle. La sauvegarde différentielle est une sauvegarde de base de données qui capture les pages modifiées depuis la dernière sauvegarde complète. Figure 5 12 Sauvegarde différentielle La sauvegarde différentielle est donc plus rapide, puisqu elle ne contient que les différences survenues depuis la dernière sauvegarde complète. Dans l exemple de la figure 5 12, la sauvegarde différentielle effectuée lundi à 22h00 contient les pages modifiées depuis samedi 22h00, date et heure de dernière la sauvegarde complète, rendant ainsi caduques les sauvegardes du journal de la journée de lundi. De plus, elle est le point de départ de la sauvegarde suivante du journal de mardi 8h00. Si un crash se produit après 8h00 le mardi, il faut restaurer la sauvegarde complète de la base, puis la sauvegarde différentielle et enfin le journal de mardi. L intérêt de la sauvegarde différentielle réside surtout dans le fait qu elle est plus rapide qu une sauvegarde complète et que sa restauration est plus rapide que celle du journal des transactions : elle restaure des pages, alors que celle d un journal rejoue les transactions. Dans le cas, par exemple, de la création d un index, le journal des transactions ne contient que l instruction de création de l index, alors que la sauvegarde différentielle contient les pages de l index créé. Depuis SQL Server 7, la sauvegarde différentielle a été améliorée et accélérée par l introduction des pages DCM (Differential Changed Map). Cette page système, située en début de fichier de données, permet de suivre 64 000 extensions. Si une extension est modifiée depuis la dernière sauvegarde complète de la base de données, son bit dans la DCM passe à 1. Lors de la sauvegarde différentielle, SQL Server a juste besoin de parcourir la DCM pour trouver les extensions à sauvegarder. Cette stratégie évite le parcours de la base à la recherche des extensions modifiées.