![Free-eBooks.net](/resources/img/logo-nfe.png)
![All New Design](/resources/img/allnew.png)
La sauvegarde de base de données complète copie tous les objets, tables système, données
et les lignes du journal des transactions nécessaires à la restauration dans l’état ou la base se
trouve en fin de sauvegarde. Elle sert de point de référence lors d’une défaillance du système.
La sauvegarde différentielle est conçue pour réduire la durée de restauration d’une base de
données fréquemment modifiée. Seules les données modifiées depuis la dernière sauvegarde
complète de la base de données et les lignes du journal des transactions nécessaires à la
restauration sont sauvegardées. Attention :
· Une sauvegarde différentielle requiert une sauvegarde de base de données complète.
· Lors d’une succession de modifications sur une même ligne de données, seule la dernière est
sauvegardée dans la sauvegarde différentielle ;
La sauvegarde du journal des transactions est effectuée pour enregistrer toutes les
modifications apportées à la base de données ; La sauvegarde stocke les modifications
intervenues depuis la dernière sauvegarde de ce journal, puis le vide par défaut de toutes les
transactions confirmées ou annulées(tronquer).
La sauvegarde d’un fichier ou groupe de fichiers est intéressante dans le cas de base de
données volumineuse : elle permet de sauvegarder la base en plusieurs opérations, tout en
gardant leur cohérence en sauvegardant aussi le journal des transactions.
Différentes stratégies de sauvegarde
Sauvegarde complète de base de données : La base de données est petite, sa durée de
sauvegarde est de l’ordre de quelques minutes ; elle est très peu modifiée, et le risque de
perdre une journée de modifications est acceptable. Une sauvegarde complète de base de
données est effectuée tous les jours à 18 heures.
En cas de dommage sur la base mercredi à 13h, la sauvegarde complète de mardi 18h sera
restaurée : Toutes les modifications effectuées entre mardi 18h et mercredi 13h seront
perdues.
Sauvegarde complète de base de données et sauvegarde du journal des
transactions : Les modifications apportées à la base sont plus fréquentes que dans le cas
83
précédent, le journal des transactions est stocké sur une unité physique différente de celle de
la base de données. Une sauvegarde complète de base de données est effectuée tous les
jours à 18 heures, le journal des transactions est sauvegardé tous les jours à 9h, 12h et 15h.
En cas de dommage sur la base mardi à 13h, la sauvegarde complète de lundi 18h sera
restaurée puis les journaux successifs seront appliqués. Si le journal des transactions en cours
peut être sauvegardé avant la restauration, la perte de données est minimum, sinon la perte
de données ne concernera que les modifications apportées sur la base entre 12h et 13h.
Sauvegarde différentielle : Cette stratégie sera appliquée pour réduire la durée de
restauration de la base de données endommagée : plutôt que d’appliquer plusieurs journaux
de transactions volumineux, une sauvegarde différentielle sera effectuée pour appliquer les
modifications apportées à la base depuis la dernière sauvegarde complète. Une sauvegarde
complète de la base est effectuée une fois par semaine, le dimanche à 18h ; Le journal des
transactions est sauvegardé tous les jours ouvrés à 9h, 12h et 15h ; Une sauvegarde
différentielle est effectuée chaque jour ouvré à 18h.
En cas de dommage sur la base mardi à 13h, sauvegardez si possible, le journal des
transactions en cours. Restaurez la sauvegarde complète de dimanche 18h, la sauvegarde
différentielle de lundi 18h, et les journaux de transaction de mardi 9h et 12h. Si le journal des
transactions en cours a pu être sauvegardé avant la restauration, la perte de données est
minimum, sinon le perte de données ne concernera que les modifications apportées sur la
base entre 12h et 13h, avec moins de manipulation de journaux.
Sauvegarde de fichiers ou de groupe de fichiers de base de données : Cette stratégie
sera appliquée pour des bases de données très volumineuses partitionnées sur plusieurs
fichiers, dans le but de gagner du temps de sauvegarde (éclatement d’une sauvegarde de
3heures pendant 1 heure par jour). Une sauvegarde complète de la base, répartie sur les
84
fichiers 1 2 et 3 est effectuée une fois par semaine, le dimanche à 18h ; Le fichier 1 est
sauvegardé lundi à 18h, le fichier 2 mardi à 18h, le fichier 3 mercredi à 18h ; Le journal des
transactions est sauvegardé à 9h, 12h et 15h tous les jours.
En cas de dommage sur le support du fichier 2 jeudi à 13h, sauvegardez si possible, le journal
des transactions en cours. Restaurez la sauvegarde du fichier 2 créée mardi 18h et appliquez
tous les journaux de transaction créés depuis mardi 18h. Le gain de performance réalisé vient
de ce que seules les transactions concernant le fichier 2 sont appliquées.
Définition des stratégies de sauvegarde sous Oracle
Une sauvegarde peut être cohérente ou incohérente. Une sauvegarde cohérente est une
sauvegarde de la totalité de la base de données après un arrêt normal de la base de données,
c’est une sauvegarde « Base de données fermée », les données sont synchrones. Après la
restauration de la base de données suite à une sauvegarde « cohérente », celle-ci peut être
utilisée immédiatement sans application de la journalisation. Ce mode de sauvegarde est le
seul à fonctionner avec le mode NOARCHIVELOG de la base de données Oracle.
Une sauvegarde incohérente est une sauvegarde effectuée alors que la base de données est
ouverte et que les activités de mise à jour se poursuivent pendant la sauvegarde, c’est une
sauvegarde « Base de données ouverte », les données ne sont pas synchrones du point de
vue des modifications enregistrées. Après la restauration de la base de données suite à une
sauvegarde « incohérente », il faut appliquer les fichiers de journalisation pour rendre la base
de données cohérente. Ce mode de sauvegarde ne fonctionne qu’avec le mode ARCHIVELOG
de la base de données Oracle.
NB : Comment savoir si la base de données est en ARCHIVLOG ou non
· Par la commande SQL connectée en tant que SYSDBA
SQL> ARCHIVE LOG LIST
85
Il faut être connecté en tant que SYSDBA, sous peine d'obtenir l'erreur suivante :
Ou par la requête :
Select name, log_mode from v$database
Avec v$database : vue sur le mode fonctionnement de la base de données (paramètrage)
86
Une sauvegarde peut être complète, partielle ou incrémentale.
· Une sauvegarde complète est une sauvegarde de la totalité de la base de données.
· Une sauvegarde partielle est une sauvegarde incluant uniquement une partie de la base de
données.
· Une sauvegarde incrémentale est une sauvegarde qui ne contient que les blocs modifiés
depuis la dernière sauvegarde. Une sauvegarde incrémentale peut être complète ou partielle.
Comment activer l'archivage dans Oracle ?
1. Il faut tout d'abord arrêter la base :
Sql> SHUTDOWN
2. Il faut ensuite sauvegarder la base : en effet, avant de faire des modifications majeures
dans la base, il faut toujours la sauvegarder pour se protéger pour des raisons de sécurité.
3. Éditer le fichier d'initialisation pour ajouter les paramètres qui spécifient la destination des
archives.
4. Démarrer la base en mode mount sans l'ouvrir :
sql> STARTUP MOUNT
87
5. Modifier le mode d'archivage et ouvrir la base.
sql> ALTER DATABASE ARCHIVELOG;
sql> ALTER DATABASE OPEN;
Le changement du mode d'archivage mettra à jour le fichier de contrôle et rendra les
anciennes sauvegardes inutilisables.
6. Arrêter la base :
sql> SHUTDOWN IMMEDIATE
7. Sauvegarde la base : À partir de la version 10g, il n'est pas nécessaire de renseigner le
paramètre d'initialisation :
LOG_ARCHIVE_START = TRUE
8. Démarrer la base
STARTUP
88
Sauvegardes / restauration avec Oracle 11G
Pour effectuer des sauvegardes/restaurations d’une base de données Oracle, il existe
plusieurs possibilités, dont :
· Utiliser l’outil Recovery Manager (RMAN) fourni avec Oracle : c’est la méthode
recommandée par Oracle.
· Utiliser les utilitaires de sauvegarde/restauration EXP/IMP
· Procéder avec des commandes système du système d’exploitation des scripts SQL.
Sauvegarde / restauration des bases de données avec l’outil Recovery