37
ن م ح ر ل ه ا ل ل م ا س ب م ي ح ر ل ا

بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Embed Size (px)

Citation preview

Page 1: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

الله بسمالرحيم الرحمن

Page 2: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Réalisé parRéalisé par : : RAOUIA HAFID RAOUIA HAFID

Page 3: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

• PARTIE IPARTIE I  : : IntroductionIntroduction• ObjectifsObjectifs

• PARTIE IIPARTIE II : : Pourquoi sauvegarder Pourquoi sauvegarder ??

• PARTIE IIIPARTIE III :  : Présentation des sauvegardesPrésentation des sauvegardes

– 2.1 Généralités2.1 Généralités– 2.2 Les différents supports de sauvegarde2.2 Les différents supports de sauvegarde– 2.3 Les moments appropriés pour sauvegarder2.3 Les moments appropriés pour sauvegarder– 2.4 Création des unités de sauvegarde2.4 Création des unités de sauvegarde– 2.5 création des sauvegardes2.5 création des sauvegardes

• PARTIE IVPARTIE IV  : : Planification d’une stratégie de sauvegardePlanification d’une stratégie de sauvegarde

– Sauvegarde complèteSauvegarde complète– Sauvegarde des journaux de transactionsSauvegarde des journaux de transactions– Sauvegarde différentielleSauvegarde différentielle– Sauvegarde d’un fichier ou d’un groupe de fichiersSauvegarde d’un fichier ou d’un groupe de fichiers

• PARTIE V PARTIE V :: Quelques conseilsQuelques conseilsConclusionConclusion

Page 4: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

IntroductionIntroduction

Page 5: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Introduction:Introduction:

Objectifs :Objectifs :• Microsoft SQL Server® 2000 est un système de gestion de bases de données Microsoft SQL Server® 2000 est un système de gestion de bases de données

relationnelles. Il a l'avantage d'être puissant, multi-utilisateurs et il permet de relationnelles. Il a l'avantage d'être puissant, multi-utilisateurs et il permet de supporter un volume important de données. Ce SGBDR est souvent utilisé dans supporter un volume important de données. Ce SGBDR est souvent utilisé dans un environnement de production en entreprise. un environnement de production en entreprise.

• C'est pourquoi il est important de réfléchir et d'appliquer une solution de C'est pourquoi il est important de réfléchir et d'appliquer une solution de sauvegarde des différentes bases de données. Une entreprise ne peut en effet sauvegarde des différentes bases de données. Une entreprise ne peut en effet en aucun cas se permettre d'avoir une interruption de services au niveau d'une en aucun cas se permettre d'avoir une interruption de services au niveau d'une base de données en cas de défaillances partielles ou complètes de celle-ci.base de données en cas de défaillances partielles ou complètes de celle-ci.

• Ce document a donc pour objectif de vous décrire l'importance de la sauvegarde Ce document a donc pour objectif de vous décrire l'importance de la sauvegarde des bases de données dans un milieu professionnel et de vous montrer les des bases de données dans un milieu professionnel et de vous montrer les différentes méthodes qu'un administrateur de base de données dispose pour différentes méthodes qu'un administrateur de base de données dispose pour préserver les données de l'entreprise dans un environnement de production.préserver les données de l'entreprise dans un environnement de production.

• Les utilisateurs et les administrateurs de bases de données pourront ainsi Les utilisateurs et les administrateurs de bases de données pourront ainsi comprendre l'importance d'une bonne gestion des sauvegardes et voir pourquoi comprendre l'importance d'une bonne gestion des sauvegardes et voir pourquoi celles-ci influent directement sur la productivité et la rentabilité de l'entreprisecelles-ci influent directement sur la productivité et la rentabilité de l'entreprise..

Page 6: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Pourquoi sauvegarder ?

Page 7: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

1. Pourquoi Sauvegarder ?1. Pourquoi Sauvegarder ?

• De nos jours, les composants matériels et logiciels sont performants et De nos jours, les composants matériels et logiciels sont performants et beaucoup plus fiables que par le passé. Cependant, aucun d'eux n'est parfait et beaucoup plus fiables que par le passé. Cependant, aucun d'eux n'est parfait et la possibilité d'avoir une défaillance n'est jamais nulle. Celle-ci peut-être la possibilité d'avoir une défaillance n'est jamais nulle. Celle-ci peut-être provoquée par un événement extérieur.provoquée par un événement extérieur.

• Exemple : Exemple :

• • • Destruction logicielle dûe à un virus.Destruction logicielle dûe à un virus.• Utiliser une clause UPDATE sans spécifier une clause de condition WHERE.• Utiliser une clause UPDATE sans spécifier une clause de condition WHERE.• Défaillance d'un disque dur supportant une base de données.• Défaillance d'un disque dur supportant une base de données.• Destruction par un élément naturel (feu, inondation) des serveurs • Destruction par un élément naturel (feu, inondation) des serveurs del'Entreprise.del'Entreprise.• Corruption d'une base de données.• Corruption d'une base de données.

• Toutes ces situations peuvent entraîner des pertes de données des différentes Toutes ces situations peuvent entraîner des pertes de données des différentes bases défaillantes et provoquer l'arrêt de la production, ce qui peut être dans bases défaillantes et provoquer l'arrêt de la production, ce qui peut être dans certains cas très préjudiciable pour une entreprise.certains cas très préjudiciable pour une entreprise.

• C'est pourquoi il est important de sauvegarder efficacement les bases de C'est pourquoi il est important de sauvegarder efficacement les bases de données afin de remettre le plus rapidement possible le serveur en production données afin de remettre le plus rapidement possible le serveur en production en minimisant la perte éventuelle de données.en minimisant la perte éventuelle de données.

Page 8: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Présentation des Présentation des sauvegardes:sauvegardes:

Page 9: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

2. Présentation des Sauvegardes :2. Présentation des Sauvegardes :

2.1 Généralités :2.1 Généralités :

• Avant de restaurer une base de données, il faut bien évidemment la Avant de restaurer une base de données, il faut bien évidemment la sauvegarder au préalable.sauvegarder au préalable.

• Voici des informations importantes concernant la sauvegarde :Voici des informations importantes concernant la sauvegarde :

• ••Un administrateur peut effectuer une sauvegarde de base de données Un administrateur peut effectuer une sauvegarde de base de données lorsque SQL Server est en cours d'utilisation. lorsque SQL Server est en cours d'utilisation.

• Toutefois, dans les différents cas suivants, il faut éviter d'effectuer des Toutefois, dans les différents cas suivants, il faut éviter d'effectuer des sauvegardes :sauvegardes :

•        •        • Lors de la création ou la modification d'une base de données.Lors de la création ou la modification d'une base de données.       • Lors de l'exécution d'opérations de croissance automatique.       • Lors de l'exécution d'opérations de croissance automatique.       • Lors de la création d'index.       • Lors de la création d'index.       • Lors du compactage de la base de données.       • Lors du compactage de la base de données.       • Lors de l'exécution d'opérations non journalisées.        • Lors de l'exécution d'opérations non journalisées.

Page 10: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

• • • Une sauvegarde contient les éléments suivants :Une sauvegarde contient les éléments suivants :       • Le schéma.       • Le schéma.       • La structure de fichiers.       • La structure de fichiers.       • Les données.       • Les données.       • Une portion du journal de transactions contenant l'activité de la base        • Une portion du journal de transactions contenant l'activité de la base de données depuis la dernière sauvegarde. de données depuis la dernière sauvegarde.

• La sauvegarde peut être lancée soit en utilisant des scripts TRANSACT-• La sauvegarde peut être lancée soit en utilisant des scripts TRANSACT-SQL, soit en utilisant Enterprise Manager. Pour pouvoir effectuer des SQL, soit en utilisant Enterprise Manager. Pour pouvoir effectuer des sauvegardes, vous devrez être membre de l'un des 3 rôles suivants :sauvegardes, vous devrez être membre de l'un des 3 rôles suivants :

•       •      •sysadmin (rôle fixe   de serveur).sysadmin (rôle fixe   de serveur).      •db_owner (rôle fixe de base de données).      •db_owner (rôle fixe de base de données).      •      •db_backupoperator (rôle fixe de base de données)db_backupoperator (rôle fixe de base de données)

Page 11: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

2.2 2.2 Les différents supports de Les différents supports de sauvegarde :sauvegarde :

• SQL Server met à votre disposition 3 types de supports pour effectuer vos SQL Server met à votre disposition 3 types de supports pour effectuer vos sauvegardes : sauvegardes :

•        •        • Sauvegarde sur disques.Sauvegarde sur disques.

•        •        • Sauvegarde sur bandes.Sauvegarde sur bandes.

•        •        • Sauvegarde sur canaux nommés.Sauvegarde sur canaux nommés.

• Dans la mesure du possible, effectuer 2 sauvegardes identiques lorsque vous Dans la mesure du possible, effectuer 2 sauvegardes identiques lorsque vous faites une opération de sauvegarde. En effet, vous pourrez ainsi limiter les faites une opération de sauvegarde. En effet, vous pourrez ainsi limiter les risques d'incidents qui peuvent subvenir. De plus, essayez dans la mesure du risques d'incidents qui peuvent subvenir. De plus, essayez dans la mesure du possible de ne pas centraliser les sauvegardes dans le même lieu possible de ne pas centraliser les sauvegardes dans le même lieu géographique géographique

Page 12: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

2.3 2.3 Les Moments appropriés pour Les Moments appropriés pour sauvegarder :sauvegarder :

• La stratégie que vous allez mettre en place va dépendre pleinement du La stratégie que vous allez mettre en place va dépendre pleinement du volume de données que vous être prêt à perdre lorsqu'une défaillance volume de données que vous être prêt à perdre lorsqu'une défaillance quelconque survient au niveau du serveur de base de données. Toutefois, il quelconque survient au niveau du serveur de base de données. Toutefois, il est conseillé d'effectuer des sauvegardes dans différents cas.est conseillé d'effectuer des sauvegardes dans différents cas.

Page 13: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

        

2.3.1 2.3.1 Bases de données système :Bases de données système :

1/ 1/ Base de données MasterBase de données Master : :

• La base de données MASTER contient des informations sur toutes les bases de données La base de données MASTER contient des informations sur toutes les bases de données présentes sur le serveur. Si suite à une défaillance, vous devez effectuer la réinstallation présentes sur le serveur. Si suite à une défaillance, vous devez effectuer la réinstallation complète du serveur, la base de données Mastercomplète du serveur, la base de données Master

• devra donc être restaurée en premier pour que l'administrateur puisse par la suite devra donc être restaurée en premier pour que l'administrateur puisse par la suite restaurer les bases de données utilisateurs.restaurer les bases de données utilisateurs.

• Il conviendra de sauvegarder la base de données MASTER dans les cas suivants.Il conviendra de sauvegarder la base de données MASTER dans les cas suivants.• • • Utilisation des commandes suivantes :Utilisation des commandes suivantes :

• CREATE DATABASE, ALTER DATABASE, DROP DATABASE.CREATE DATABASE, ALTER DATABASE, DROP DATABASE.

• • • Utilisation de la procédure stockée Sp_logdevice qui modifie le journal des Utilisation de la procédure stockée Sp_logdevice qui modifie le journal des transactions.transactions.

• • • Utilisation des procédures stockées suivantes : Sp_addserver, sp_dropserver, Utilisation des procédures stockées suivantes : Sp_addserver, sp_dropserver, sp_addlinkedserver qui permettent d'ajouter ou de supprimer des serveurs. sp_addlinkedserver qui permettent d'ajouter ou de supprimer des serveurs. • Modification des options de sécurité, ajout de comptes de connexion. • Modification des options de sécurité, ajout de comptes de connexion.

• • • Modifications des options d'une base de données. Modifications des options d'une base de données. • • • Création des différentes unités de sauvegarde. Création des différentes unités de sauvegarde.

• Etc… • Etc…

Page 14: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

              2/ 2/ Bases de données Msdb et Model :Bases de données Msdb et Model :

• Dès lors que vous modifiez les bases de données Msdb et Model, vous Dès lors que vous modifiez les bases de données Msdb et Model, vous devrez les sauvegarder.devrez les sauvegarder.

• La base de données Msdb contient toutes les informations concernant les La base de données Msdb contient toutes les informations concernant les travaux, les alertes et les opérateurs que vous avez crées sur le serveur de travaux, les alertes et les opérateurs que vous avez crées sur le serveur de bases de données. Ainsi, si cette base de données n'est pas sauvegardée, bases de données. Ainsi, si cette base de données n'est pas sauvegardée, vous devrez recréer tous vos objets.vous devrez recréer tous vos objets.

• La base de données Model contient quand à elle le modèle de la création La base de données Model contient quand à elle le modèle de la création d'une nouvelle base de données. C'est pourquoi son rôle est important et d'une nouvelle base de données. C'est pourquoi son rôle est important et qu'elle doit être sauvegardée.qu'elle doit être sauvegardée.

Page 15: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

2.3.2 2.3.2 Bases de données utilisateurs :Bases de données utilisateurs :

• Les bases de données utilisateurs doivent également être sauvegardées Les bases de données utilisateurs doivent également être sauvegardées régulièrement. Ces opérations doivent se faire dans les cas suivants : régulièrement. Ces opérations doivent se faire dans les cas suivants :

• • • Après la création d'une base de données utilisateur.Après la création d'une base de données utilisateur.• Après le vidage du journal de transactions au moyen des commandes • Après le vidage du journal de transactions au moyen des commandes BACKUP LOG WITH TRUNCATE ONLY ou BACKUP LOG WITH NO LOG. En BACKUP LOG WITH TRUNCATE ONLY ou BACKUP LOG WITH NO LOG. En effet, si effet, si

• vous effectuez ses commandes, le journal de transactions ne contient plus vous effectuez ses commandes, le journal de transactions ne contient plus d'enregistrements, ce qui rend impossible la restauration en cas de d'enregistrements, ce qui rend impossible la restauration en cas de problèmes.problèmes.

• • • Après l'exécution d'opérations non journalisées. Ici, les opérations Après l'exécution d'opérations non journalisées. Ici, les opérations effectuées ne seront pas inscrites dans le journal de transactions, ce qui effectuées ne seront pas inscrites dans le journal de transactions, ce qui rendra impossible la restaurationrendra impossible la restauration..

Page 16: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

2.4 2.4 Création des Unités de sauvegardeCréation des Unités de sauvegarde : :

• Afin d'effectuer des sauvegardes de bases de données, vous devez dans un Afin d'effectuer des sauvegardes de bases de données, vous devez dans un premier temps crée des unités de sauvegarde. Ce sont des conteneurs qui premier temps crée des unités de sauvegarde. Ce sont des conteneurs qui vont stocker une sauvegarde de base de données.vont stocker une sauvegarde de base de données.

• Une unité de sauvegarde peut être crée de 2 manières différentes : Une unité de sauvegarde peut être crée de 2 manières différentes :

• • • en utilisant Enterprise Manager.en utilisant Enterprise Manager.• en utilisant la procédure stockée sp_addumpdevice.• en utilisant la procédure stockée sp_addumpdevice.

• Une fois que la procédure sp_addumpdevice est utilisée pour créer un Une fois que la procédure sp_addumpdevice est utilisée pour créer un fichier de sauvegarde, il faut savoirfichier de sauvegarde, il faut savoir

• • • que SQL Server crée les noms logiques et physiques dans la table que SQL Server crée les noms logiques et physiques dans la table sysdevices de la base de données MASTER.sysdevices de la base de données MASTER.

• • • qu'il est possible de créer au maximum 32 unités de sauvegarde.qu'il est possible de créer au maximum 32 unités de sauvegarde.

Page 17: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Voici la syntaxe générale pour créer une unité de sauvegarde ainsi que 2 Voici la syntaxe générale pour créer une unité de sauvegarde ainsi que 2 exemples d'application : exemples d'application :

• sp_addumpdevice [@devtype =] 'type_d'unité',sp_addumpdevice [@devtype =] 'type_d'unité',

• [@logicalname =] 'nomologique', [@logicalname =] 'nomologique',

• [@physicalname =] 'nom physique' [, [@physicalname =] 'nom physique' [,

• { [@cntrltype =] type_de_contrôleur | [@devstatus =] 'état_unité' } ]{ [@cntrltype =] type_de_contrôleur | [@devstatus =] 'état_unité' } ]USE USE master EXEC sp_addumpdevice 'disk', 'SauvegardeMaster', 'D:\Master\master EXEC sp_addumpdevice 'disk', 'SauvegardeMaster', 'D:\Master\master.bak' USE master EXEC sp_addumpdevice 'tape', 'SauvegardeMaster', master.bak' USE master EXEC sp_addumpdevice 'tape', 'SauvegardeMaster', '\\.\tape0''\\.\tape0'Si vous souhaitez n'effectuer une sauvegarde qu'une seule fois, il ne Si vous souhaitez n'effectuer une sauvegarde qu'une seule fois, il ne sera bien évidemment pas nécessaire de créer une unité de sauvegarde. sera bien évidemment pas nécessaire de créer une unité de sauvegarde. Vous pourrez Vous pourrez

• dans ce cas utiliser le nom du fichier de sauvegarde directement dans dans ce cas utiliser le nom du fichier de sauvegarde directement dans l'instruction Backupl'instruction Backup

• Exemple :Exemple :• USE master BACKUP DATABASE Test TO DISK = 'D:\SauvegardeBaseTest\USE master BACKUP DATABASE Test TO DISK = 'D:\SauvegardeBaseTest\

Test.bakTest.bak

Page 18: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

2.5 2.5 Création des Sauvegardes :Création des Sauvegardes :

• Afin d'effectuer une sauvegarde de bases de données, il faut utiliser l'instruction Afin d'effectuer une sauvegarde de bases de données, il faut utiliser l'instruction BACKUP DATABASE. BACKUP DATABASE.

• Voici sa syntaxe : Voici sa syntaxe :

• BACKUP DATABASE {nom_base_de_données | @var_nom_base_de_données} TO BACKUP DATABASE {nom_base_de_données | @var_nom_base_de_données} TO <unité_sauvegarde> [,...n]<unité_sauvegarde> [,...n][WITH … ]Cette instruction dispose d'une multitude de commandes. Je vous [WITH … ]Cette instruction dispose d'une multitude de commandes. Je vous invite donc à visiter la MSDN pour plus de détails à l'adresses suivante : invite donc à visiter la MSDN pour plus de détails à l'adresses suivante :

• http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ba-http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ba-bz_35ww.aspbz_35ww.asp

• Vous pourrez ainsi voir les options de sauvegarde sur bande, les options pour Vous pourrez ainsi voir les options de sauvegarde sur bande, les options pour sauvegarder sur des disques multiples ...sauvegarder sur des disques multiples ...

• Enfin, sachez que pour une gestion facilitée de votre stratégie, vous pourrez Enfin, sachez que pour une gestion facilitée de votre stratégie, vous pourrez effectuer une planification de travaux pour gérer vos différentes sauvegardes.effectuer une planification de travaux pour gérer vos différentes sauvegardes.

Page 19: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Planification d’une Planification d’une stratégie de stratégie de sauvegarde :sauvegarde :

Page 20: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

3. 3. Planification d'une stratégie dePlanification d'une stratégie de Sauvegarde :Sauvegarde :

3.1 3.1 Sauvegarde Complète :Sauvegarde Complète :

• 3.1.1 But d'une Sauvegarde Complète :3.1.1 But d'une Sauvegarde Complète :

• Dans le cadre des sauvegardes de votre base de données, vous devrez avoir fait Dans le cadre des sauvegardes de votre base de données, vous devrez avoir fait préalablement au minimum une sauvegarde complète de votre base de données. préalablement au minimum une sauvegarde complète de votre base de données. En effet, ce type de sauvegarde sert de point de référence en cas de défaillance En effet, ce type de sauvegarde sert de point de référence en cas de défaillance d'une base de données.d'une base de données.

• Une sauvegarde complète contient : Une sauvegarde complète contient :

• • • L'ensemble des données et objets de la base de données. L'ensemble des données et objets de la base de données. • L'ensemble des tables systèmes de la base de données. • L'ensemble des tables systèmes de la base de données. • L'ensemble des transactions ouvertes du journal de transactions. C'est à dire • L'ensemble des transactions ouvertes du journal de transactions. C'est à dire l'ensemble des opérations journalisées.l'ensemble des opérations journalisées.

Page 21: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

• Exemples d'applicationExemples d'application : :

• ----Création d'une unité de sauvegarde testbakCréation d'une unité de sauvegarde testbakUSE master EXEC sp_addumpdevice 'disk' , 'testbak' , 'D:\SauvegardeTest\USE master EXEC sp_addumpdevice 'disk' , 'testbak' , 'D:\SauvegardeTest\test.bak'test.bak'

--On utilise l'unité de sauvegarde pour effectuer la sauvegarde complète --On utilise l'unité de sauvegarde pour effectuer la sauvegarde complète de la base de données Test.de la base de données Test.BACKUP DATABASE TestBACKUP DATABASE Test TO testbakTO testbak

----On utilise l'unité de sauvegarde pour effectuer la sauvegarde complète On utilise l'unité de sauvegarde pour effectuer la sauvegarde complète de la base de données Test en supprimant les sauvegardes précédentesde la base de données Test en supprimant les sauvegardes précédentesBACKUP DATABASE Test TO testbak WITH INIT--On peut effectuer la BACKUP DATABASE Test TO testbak WITH INIT--On peut effectuer la sauvegarde complète sans utiliser d'unité de sauvegardesauvegarde complète sans utiliser d'unité de sauvegardeBACKUP DATABASE Test TO DISK='D:\SauvegardeTest\test.bakBACKUP DATABASE Test TO DISK='D:\SauvegardeTest\test.bak

Page 22: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

    3.1.2 3.1.2 Planification de sauvegarde complète :Planification de sauvegarde complète :

• Cette stratégie s'applique dans les cas suivants : Cette stratégie s'applique dans les cas suivants :

• • • La base que vous souhaitez sauvegarder régulièrement a une faible La base que vous souhaitez sauvegarder régulièrement a une faible taille.taille.

• • • La base que vous souhaitez sauvegarder est peu ou pas modifiée.La base que vous souhaitez sauvegarder est peu ou pas modifiée.

• • • La quantité maximum d'informations que vous pouvez perdre se situe La quantité maximum d'informations que vous pouvez perdre se situe dans l'intervalle des sauvegardes. C'est à dire que si vous effectuez des dans l'intervalle des sauvegardes. C'est à dire que si vous effectuez des sauvegardes complète journalière et en soirée, votre entreprise ne subira sauvegardes complète journalière et en soirée, votre entreprise ne subira pas de préjudice dans le cas où l'une des bases de données devient pas de préjudice dans le cas où l'une des bases de données devient défaillance en milieu de défaillance en milieu de

• journée.journée.

• (Dans ce cas, la sauvegarde de la veille devant être utilisée pour la (Dans ce cas, la sauvegarde de la veille devant être utilisée pour la restaurationrestauration).).

Page 23: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID
Page 24: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

3.2 3.2 Sauvegarde des Journaux de Sauvegarde des Journaux de Transactions :Transactions :

          3.2.1 3.2.1 But de la sauvegarde des journaux :But de la sauvegarde des journaux :

• Un journal de transactions va contenir l'ensemble des opérations simples Un journal de transactions va contenir l'ensemble des opérations simples (Select, Update, Delete, ...) qui ont été effectuées sur la base de données.(Select, Update, Delete, ...) qui ont été effectuées sur la base de données.

• Vous devrez obligatoirement avoir fait une sauvegarde complète pour Vous devrez obligatoirement avoir fait une sauvegarde complète pour pouvoir effectuer ce type de sauvegarde. La sauvegarde complète étant la pouvoir effectuer ce type de sauvegarde. La sauvegarde complète étant la référence.référence.

Voici quelques notions qu'il est important de connaître :Voici quelques notions qu'il est important de connaître :• ••SQL Server sauvegarde le journal de transactions depuis la dernière SQL Server sauvegarde le journal de transactions depuis la dernière

instruction BACKUP LOG réussie.instruction BACKUP LOG réussie.

• ••Si une base de données devient défaillante, vous pourrez tout de même Si une base de données devient défaillante, vous pourrez tout de même effectuer l'instruction BACKUP LOG en utilisant l'option NO_TRUNCATE. effectuer l'instruction BACKUP LOG en utilisant l'option NO_TRUNCATE. Dans ce cas, le journal de transactions sera sauvegardé normalement, Dans ce cas, le journal de transactions sera sauvegardé normalement, depuis la dernière instruction BACKUP LOG valide.depuis la dernière instruction BACKUP LOG valide.

Page 25: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

• ••Il existe une multitude d'options pour l'instruction BACKUP LOG. En Il existe une multitude d'options pour l'instruction BACKUP LOG. En l'occurrence, les options TRUNCATE_ONLY et NO_LOG permettent de l'occurrence, les options TRUNCATE_ONLY et NO_LOG permettent de tronquer la taille du journal de transactions sans en faire la sauvegarde. Il est tronquer la taille du journal de transactions sans en faire la sauvegarde. Il est primordial de tronquer le journal de transactions de temps en temps afin primordial de tronquer le journal de transactions de temps en temps afin

• d'éviter qu'il atteigne une taille trop importante. Sachez que si le journal de d'éviter qu'il atteigne une taille trop importante. Sachez que si le journal de transactions est plein, les modifications apportées à la base de données ne transactions est plein, les modifications apportées à la base de données ne seront pas journalisées et vous ne pourrez donc pas les restaurer seront pas journalisées et vous ne pourrez donc pas les restaurer complètement en cas de défaillance. Vous pouvez donc tronquer le journal complètement en cas de défaillance. Vous pouvez donc tronquer le journal de transactions en effectuant soit une sauvegarde complète, soit en utilisant de transactions en effectuant soit une sauvegarde complète, soit en utilisant l'instruction BACKUP LOG WITH TRUNCATE_ONLY ou BACKUP LOG WITH l'instruction BACKUP LOG WITH TRUNCATE_ONLY ou BACKUP LOG WITH NO_LOG. NO_LOG.

• Exemple d'applicationExemple d'application : :

• --On utilise l'unité de sauvegarde pour effectuer la sauvegarde des journaux --On utilise l'unité de sauvegarde pour effectuer la sauvegarde des journaux de transactions de la base de données Test en utilisant l'option de transactions de la base de données Test en utilisant l'option NO_TRUNCATENO_TRUNCATEBACKUP LOG Test TO testbak WITH NO_TRUNCATEBACKUP LOG Test TO testbak WITH NO_TRUNCATE

Page 26: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

  3.2.2 3.2.2 Planification de la sauvegarde des Planification de la sauvegarde des journaux :journaux :

• Afin de disposer de l'activité de la base de données entre les différentes Afin de disposer de l'activité de la base de données entre les différentes sauvegardes complètes, vous pouvez mettre en place une planification de sauvegardes complètes, vous pouvez mettre en place une planification de sauvegarde des journaux de transactions au cours de la journée.sauvegarde des journaux de transactions au cours de la journée.

Vous limiterez ainsi le risque de perte de données.Vous limiterez ainsi le risque de perte de données.

Si une défaillance survient au niveau de la base de données, il suffira alors Si une défaillance survient au niveau de la base de données, il suffira alors de restaurer la dernière sauvegarde complète, puis d'appliquer la de restaurer la dernière sauvegarde complète, puis d'appliquer la succession des journaux de transactions jusqu'au moment de la succession des journaux de transactions jusqu'au moment de la défaillance.défaillance.

Si la sauvegarde des journaux de transactions est réalisée dans un temps Si la sauvegarde des journaux de transactions est réalisée dans un temps acceptable, cette stratégie s'avèrera très efficace car elle limitera le risque acceptable, cette stratégie s'avèrera très efficace car elle limitera le risque de perte de données et optimisera ainsi le temps de restauration en cas de de perte de données et optimisera ainsi le temps de restauration en cas de défaillance du serveur de base de donnéesdéfaillance du serveur de base de données..

Page 27: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID
Page 28: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

3.3 3.3 Sauvegarde Différentielle :Sauvegarde Différentielle :

           3.3.1 3.3.1 But d'une Sauvegarde Différentielle :But d'une Sauvegarde Différentielle :

• Afin de réduire le temps de sauvegarde sur une base de données qui est Afin de réduire le temps de sauvegarde sur une base de données qui est fréquemment utilisée, vous pourrez effectuer une sauvegarde fréquemment utilisée, vous pourrez effectuer une sauvegarde différentielle. différentielle.

• Celle ci s'effectue plus rapidement qu'une sauvegarde complète. Toutefois, Celle ci s'effectue plus rapidement qu'une sauvegarde complète. Toutefois, • comme dit précédemment, une sauvegarde complète devra avoir été faite comme dit précédemment, une sauvegarde complète devra avoir été faite

pour servir de point de référence.pour servir de point de référence.• La sauvegarde différentielle contient :La sauvegarde différentielle contient :

• • • Toutes les parties de la base de données qui ont changé depuis la Toutes les parties de la base de données qui ont changé depuis la dernière sauvegarde complète.dernière sauvegarde complète.

• • • Toutes les instructions survenant pendant l'opération de sauvegarde Toutes les instructions survenant pendant l'opération de sauvegarde ainsi que les transactions ouvertes du journal de transactions.ainsi que les transactions ouvertes du journal de transactions.

• Exemples d'applicationExemples d'application : :

• --On utilise l'unité de sauvegarde pour effectuer la sauvegarde --On utilise l'unité de sauvegarde pour effectuer la sauvegarde différentielle de la base de données Test.différentielle de la base de données Test.BACKUP DATABASE Test TO testbak WITH DIFFERENTIAL BACKUP DATABASE Test TO testbak WITH DIFFERENTIAL

Page 29: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

3.3.2 3.3.2 Planification de sauvegarde différentielle :Planification de sauvegarde différentielle :

• Si vous décidez de mettre en plus une solution de planification de Si vous décidez de mettre en plus une solution de planification de sauvegarde différentielle, il est conseillé d'inclure des journaux de sauvegarde différentielle, il est conseillé d'inclure des journaux de transactions et des sauvegardes complètes. transactions et des sauvegardes complètes.

• La sauvegarde différentielle permet en effet de restaurer une base de La sauvegarde différentielle permet en effet de restaurer une base de données plus rapidement en cas de défaillance, car elle ne va sauvegarder données plus rapidement en cas de défaillance, car elle ne va sauvegarder que les parties de la base de données qui ont été modifiées depuis le que les parties de la base de données qui ont été modifiées depuis le dernière sauvegarde complète. dernière sauvegarde complète.

• Ainsi, en cas de défaillance, l'administrateur de base de données n'aura Ainsi, en cas de défaillance, l'administrateur de base de données n'aura juste qu'une sauvegarde complète à restaurer, suivi de la sauvegarde juste qu'une sauvegarde complète à restaurer, suivi de la sauvegarde différentielle et des journaux de transactions éventuelles.différentielle et des journaux de transactions éventuelles.

Page 30: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID
Page 31: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

3.4 3.4 Sauvegarde d'un fichier ou d'un Sauvegarde d'un fichier ou d'un groupe de fichiers :groupe de fichiers :

• Si votre base de données est très volumineuse (plusieurs dizaines de Go de Si votre base de données est très volumineuse (plusieurs dizaines de Go de données),il est bien évident qu'une sauvegarde complète et régulière de la données),il est bien évident qu'une sauvegarde complète et régulière de la base de données va prendre un temps conséquent. base de données va prendre un temps conséquent.

• Vous devrez alors séparer votre base de données en plusieurs fichiers et Vous devrez alors séparer votre base de données en plusieurs fichiers et planifier leur sauvegarde de manière cyclique au cours de la semaine. planifier leur sauvegarde de manière cyclique au cours de la semaine.

Cette stratégie ne sera pas détaillée dans ces moindres détails dans la Cette stratégie ne sera pas détaillée dans ces moindres détails dans la mesure où son utilisation dépendra grandement de vos besoins au niveau mesure où son utilisation dépendra grandement de vos besoins au niveau de la base de données. de la base de données.

Cependant, voici un exemple d'application de cette stratégie * : Cependant, voici un exemple d'application de cette stratégie * :

Page 32: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Une sauvegarde complète est effectuée le lundi.

Les journaux de transactions sont sauvegardés périodiquement au cours de la semaine.

Les fichiers de données sont sauvegardés cycliquement.

Page 33: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Quelques conseilsQuelques conseils

Page 34: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

4. 4. Quelques Conseils :Quelques Conseils :

• Afin d'améliorer les sauvegardes de façon générale, voici quelques Afin d'améliorer les sauvegardes de façon générale, voici quelques considérations que vous devrez prendre en compte lors du déploiement de considérations que vous devrez prendre en compte lors du déploiement de votre stratégie : votre stratégie :

• •  •  Lorsque vous effectuez la sauvegarde sur des contrôleurs de disques Lorsque vous effectuez la sauvegarde sur des contrôleurs de disques multiples, celle-ci sera beaucoup plus rapide.multiples, celle-ci sera beaucoup plus rapide.•  Le temps nécessaire pour accomplir une sauvegarde de base de données est •  Le temps nécessaire pour accomplir une sauvegarde de base de données est

• variable et va dépendre de la performance de votre matériel (disque dur , variable et va dépendre de la performance de votre matériel (disque dur , lecteur de bande ...).lecteur de bande ...).•  De façon générale, la sauvegarde sur un disque dur est plus performante •  De façon générale, la sauvegarde sur un disque dur est plus performante que sur un lecteur de bande.que sur un lecteur de bande.• Dans la mesure où la sauvegarde demande des ressources système au • Dans la mesure où la sauvegarde demande des ressources système au niveau disque, processeur ..., les utilisateurs de base de données peuvent niveau disque, processeur ..., les utilisateurs de base de données peuvent rencontrer une baisse de performance au niveau du serveur de bases de rencontrer une baisse de performance au niveau du serveur de bases de données. C'est la raison pour laquelle, il sera préférable d'effectuer les données. C'est la raison pour laquelle, il sera préférable d'effectuer les sauvegardes lorsqu'il y aura peu d'activité au niveau du serveur.sauvegardes lorsqu'il y aura peu d'activité au niveau du serveur.

• Afin d'éviter de sauvegarder des bases de données corrompues, il est impératif Afin d'éviter de sauvegarder des bases de données corrompues, il est impératif de vérifier l'intégrité des données avant d'effectuer des sauvegardes de bases de vérifier l'intégrité des données avant d'effectuer des sauvegardes de bases de données. La raison est simple : si une base de données corrompue a été de données. La raison est simple : si une base de données corrompue a été sauvegardée, la restauration sera compromise si cette base venait à être sauvegardée, la restauration sera compromise si cette base venait à être défaillante ultérieurement ...défaillante ultérieurement ...

Page 35: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

• Pour éviter ce genre de désagrément, je vous invite donc à vérifier la Pour éviter ce genre de désagrément, je vous invite donc à vérifier la cohérence des bases de données en utilisant des commandes DBCC. Sur la cohérence des bases de données en utilisant des commandes DBCC. Sur la MSDN, vous pourrez trouver une multitude d'information sur ces MSDN, vous pourrez trouver une multitude d'information sur ces commandes à l'adresse suivante : commandes à l'adresse suivante :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tshttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_dbcc_217n.aspqlref/ts_dbcc_217n.asp

• Si vous avez une erreur qui est retournée par une de ces commandes, cela Si vous avez une erreur qui est retournée par une de ces commandes, cela veut peut-être dire que l'une des bases de données est corrompues, veut peut-être dire que l'une des bases de données est corrompues, auquel cas, auquel cas,

• celle-ci devra être restaurée dans les plus brefs délais afin d'éviter des celle-ci devra être restaurée dans les plus brefs délais afin d'éviter des désagréments.désagréments.

• Enfin, il est conseillé de tester la validité de ses sauvegardes de temps en Enfin, il est conseillé de tester la validité de ses sauvegardes de temps en temps. Ainsi, sur un serveur de test, vous pourrez restaurer les différentes temps. Ainsi, sur un serveur de test, vous pourrez restaurer les différentes sauvegardes et vérifier que celle-ci sont correctes. Ceci permettra d'éviter sauvegardes et vérifier que celle-ci sont correctes. Ceci permettra d'éviter des pertes de données non négligeables pour une entreprise en cas de des pertes de données non négligeables pour une entreprise en cas de problèmes au niveau du processus de sauvegarde. problèmes au niveau du processus de sauvegarde.

Page 36: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID

Conclusion :Conclusion :

• Ce document vous a donc permis de vous rendre compte que les Ce document vous a donc permis de vous rendre compte que les sauvegardes sont un élément essentiel pour administrer de façon optimal sauvegardes sont un élément essentiel pour administrer de façon optimal un serveur de bases de données. Les méthodes que vous choisirez pour un serveur de bases de données. Les méthodes que vous choisirez pour sauvegarder vos bases de données vont donc directement conditionner les sauvegarder vos bases de données vont donc directement conditionner les données de votre entreprise.données de votre entreprise.

• Disposant des contraintes techniques et fonctionnelles de l'entreprise, il Disposant des contraintes techniques et fonctionnelles de l'entreprise, il conviendra donc à l'administrateur de bases de données d'effectuer tout ce conviendra donc à l'administrateur de bases de données d'effectuer tout ce qui est en son pouvoir pour réfléchir à une solution de sauvegarde, qui est en son pouvoir pour réfléchir à une solution de sauvegarde, l'analyser dans ses moindres détails et la tester. l'analyser dans ses moindres détails et la tester.

• Il sera ainsi apte à remettre un serveur de bases de données le plus Il sera ainsi apte à remettre un serveur de bases de données le plus rapidement possible, en perdant le moins de données en cas d'un éventuel rapidement possible, en perdant le moins de données en cas d'un éventuel sinistresinistre

Page 37: بسم الله الرحمن الرحيم. Réalisé par : RAOUIA HAFID