You are on page 1of 10

Sauvegarde et restauration dune base de donnes

ORACLE

Extrait Dossier 6 Certa Dijon

6. Sauvegarde et Restauration dune base ORACLE..................................................................2


6.1. Le point de contrle : checkpoint.....................................................................................2
6.2. Archivage.........................................................................................................................2
6.2.1. Pourquoi activer l'archivage ?...................................................................................2
6.2.2. Comment activer l'archivage ?..................................................................................3
6.3. Sauvegarde de la base......................................................................................................3
6.3.1. La sauvegarde partir du systme d'exploitation.....................................................3
6.4. Restauration de la base.....................................................................................................5
6.4.1. Restauration la suite d'un incident d'instance.........................................................5
6.4.2. Restauration la suite d'un incident disque..............................................................5
7. Export et Import......................................................................................................................7
7.1. Sauvegarde par l'outil EXPORT......................................................................................7
7.2. Les types d'exports...........................................................................................................7
7.2.1. Le mode incrmental.................................................................................................8
7.2.2. Le mode cumulatif....................................................................................................8
7.2.3. Le mode complet.......................................................................................................8
7.2.4. Scnario de sauvegarde.............................................................................................8
7.3. Restauration par l'outil IMPORT.....................................................................................9
7.3.1. Comment appliquer l'import incrmental ?...............................................................9
7.4. Rorganisation de la base...............................................................................................10
6. Sauvegarde et Restauration dune base ORACLE

Assurer la scurit de fonctionnement de la base est une tche essentielle du Dba. Ce


dernier est appel mettre en place une stratgie et des procdures garantissant le retour la
normale en cas d'incident logiciel ou matriel.

Avant de prsenter les diffrents types de sauvegardes, de restauration et de


rorganisation de la base, nous allons expliquer le mcanisme de checkpoint (point de
contrle).

6.1. Le point de contrle : checkpoint

Avec la version 6 d'Oracle, le noyau d'Oracle n'crit pas systmatiquement dans ces
fichiers les blocs modifis en mmoire SGA. Il crit quant la SGA est pleine, ou l'issue d'un
checkpoint.

Le checkpoint a lieu dans les cas suivants :


- lorsque le fichier redo log courant est plein et que Oracle va passer un autre
fichier redo log;
- lorsqu'un certain nombre de blocs ont t crits dans le fichier redo log. Ce
nombre est prcis par le paramtre LOG_CHECKPOINT_INTERNAL (de 20
l'infini) du fichier des paramtres Init.ora. La valeur par dfaut de ce paramtre
dpend du systme d'exploitation.

Quelles sont les actions effectues par le checkpoint ?


- Ecriture dans les fichiers base des blocs en SGA qui ont t modifis depuis
la dernire criture ;
- Changement du fichier redo log ; passage un autre fichier redo log qui
devient le fichier courant et incrmentation de 1 du numro de squence ;
- Enregistrement dans le fichier contrle du numro de squence du fichier
redo log courant ;
- Enregistrement dans l'en-tte de chaque fichier base du numro de
squence du fichier redo log courant.

A cause de l'criture dans les fichiers base, ces derniers sont jour par rapport la SGA.
De ce fait le fichier redo log qui tait courant lors de l'occurrence du checkpoint ne sera plus
ncessaire lors d'une ventuelle opration de restauration.

A la reprise Oracle essaie de restaurer partir du dernier fichier redo log courant, celui
qui n'avait pas encore connu de checkpoint. Ce sont les numros enregistrs dans les fichiers
base et de contrle qui permettent de dcider du fichier redo log appliquer.

6.2. Archivage

6.2.1. Pourquoi activer l'archivage automatique ?

Les fichiers redo log contiennent une trace de toutes les modifications successives de la
base de donnes.
Ces fichiers sont utiliss de faon circulaire : ils sont remplis squentiellement. Lorsque
le fichier est plein, Oracle rutilise le premier bloc et ainsi de suite.

La rutilisation d'un fichier consiste craser son contenu. La sauvegarde du contenu du


fichier avant crasement est possible grce au processus d'archivage.

En effet, lorsque le processus d'archivage (ARCH) est actif, Oracle copie tout fichier
redo log (qui vient d'tre rempli) sur un mdia particulier prcis par le Dba. De cette faon,
on archive toutes les traces de mise jour sans aucune perte.

Les fichiers archivs servent donc lors de la phase de restauration de la base suite sa
perte : leur contenu sera appliqu squentiellement sur une ancienne sauvegarde des fichiers
base, jusqu' ce qu'on rtablisse la base dans l'tat qu'elle avait juste avant sa perte.

Activer l'archivage pour pouvoir restaurer ultrieurement revient assurer un niveau


maximum de scurit.

Nanmoins l'archivage a deux inconvnients qui restent tout de mme mineurs par
rapport au gain en matire de scurit.
les fichiers archivs prennent de la place et peuvent accaparer un drouleur de bande
par exemple ,
le systme est plus charg cause du processus supplmentaire (ARCH) qui copie
ailleurs chaque fichier redo log plein.

Remarque : l'option d'archivage est obligatoire pour effectuer une sauvegarde des
fichiers d'un tablespace en service .

6.2.2. Comment activer l'archivage ?

La mise en place du mode d'archivage d'une base de donnes est spcifie lors de la
cration de la base (Create Database ..).

Par dfaut le mode d'archivage de la base installe est inactif (noarchivelog). Pour
activer larchivage, la base doit tre monte et non ouverte.

6.3. Sauvegarde de la base

L'opration de sauvegarde consiste copier la base de donnes dans un endroit sr,


typiquement sur une bande ou un autre disque.

La sauvegarde peut tre effectue de deux manires :


- par une commande ou un utilitaire du systme d'exploitation
- par l'outil export (chapitre suivant)

6.3.1. La sauvegarde partir du systme d'exploitation

Cette sauvegarde peut s'effectuer de deux manires : base ferme ou base ouverte
6.3.1.1. Sauvegarde d'une base ferme

Ne ncessite pas d'activer l'archivage.

Lorsque la base est ferme (non accessible aux utilisateurs), l'opration de sauvegarde
consiste copier tous les fichiers de la base dans un endroit sr :
- tous les fichiers physiques de la base
- tous les fichiers redo log (au moins deux)
- tous les fichiers de contrles

L'oubli d'un fichier peut tre l'origine de l'impossibilit de reconstituer la base en cas
de restauration.

En gnral, cette sauvegarde est faite rgulirement par le responsable systme lorsqu'il
fait des "backup" des disques.

6.3.1.2. Sauvegarde Tablespace OffLine avec une base ouverte

Ne ncessite pas d'activer l'archivage.

Lorsque la base est ouverte (en production accessible aux utilisateurs), le Dba a la
possibilit de faire une sauvegarde des fichiers d'un tablespace en service (On line) ou hors
service (Off line)

Pour faire la sauvegarde d'un tablespace hors service (offline), il suffit de le mettre
offline, de sorte que personne ne puisse l'utiliser, et de copier par une commande de systme
d'exploitation tous les fichiers base du tablespace.

6.3.1.3. Sauvegarde Tablespace ONLine avec une base ouverte

Ncessite d'activer l'archivage.

Dans le cas d'une sauvegarde d'un tablespace en service, le Dba va pouvoir copier les
fichiers base dans un endroit sr pendant que les utilisateurs continuent y lire et crire. Cette
possibilit permet aux utilisateurs de travailler 7 jours sur 7 et 24 heures sur 24 avec des
sauvegardes rgulires.

Nanmoins ceci n'est possible qu' condition que le processus d'archivage (ARCH) des
fichiers redo log soit actif (mode archivage).

6.3.1.4. Sauvegarde totale d'une base ouverte

Ncessite d'activer l'archivage.

Pour sauvegarder la base entire, il faut le faire tablespace par tablespace, y compris le
tablespace SYSTEM.

Il faut noter qu'il est impossible de mettre hors service le tablespace SYSTEM.
Dans ce cas il ne faut pas oublier de sauvegarder les fichiers de contrles en utilisant la
commande : ALTER DATABASE BACKUP CONTROLFILE TO 'nomfichier';

6.4. Restauration de la base

La restauration est l'opration qui consiste remettre dans un tat cohrent la base de
donnes suite un incident. Le type d'incident induit le type de restauration.

Les types d'incidents prendre en compte sont ceux de l'instance et ceux des mdias
disque.

6.4.1. Restauration la suite d'un incident d'instance

Ce type d'incident est de loin le moins grave, puisque la restauration se fait


automatiquement (sans l'intervention du Dba).

Un tel incident se produit lorsque les processus dtachs d'Oracle ne peuvent plus
continuer travailler. Les raisons suivantes peuvent en tre la cause :
- une coupure de courant,
- un crash du systme d'exploitation,
- un crash d'un des process dtach d'Oracle,
- un des fichiers de la base devient inaccessible pour une raison ou une autre, mais
il est perdu pour autant.

Quelle que soit la raison, la restauration suite un incident d'instance est effectue
automatiquement par Oracle. Cette restauration se fait au dmarrage (Startup).

Lors de ce dmarrage Oracle tient compte du contenu des fichiers redo log et des
Rollback segments.

6.4.2. Restauration la suite d'un incident disque

On parle d'incident disque lors de la perte de l'un des fichiers de la base de donnes, par
exemple les fichiers base, ou redo log ou de contrle.

6.4.2.1. Restauration en mode NOARCHIVELOG

Cas1:Pertedesfichiersbase

Redmarrez partir des fichiers de sauvegarde. Perte de toutes les mises jour faites
aprs la dernire sauvegarde.

Cas2:Pertedesfichiersdecontrle

Il faut absolument rcuprer une ancienne sauvegarde du fichier de contrle. Nanmoins


le numro de fichier de redo log contenu dans l'ancien fichier de contrle ne correspond pas
celui contenu dans les fichiers base.

Une mise niveau doit tre effectue en restaurant la base manuellement avec la
commande : RECOVER DATABASE MANUAL ;( base monte et non ouverte)
Cas3:Pertedesfichiersredolog

Il faut partir d'une ancienne sauvegarde de ces fichiers.

Une mise niveau doit tre effectue en restaurant la base manuellement avec la
commande : RECOVER DATABASE MANUAL ;( base monte et non ouverte)

6.4.2.2. Restauration en mode ARCHIVELOG

Il faut partir de :
- la sauvegarde des fichiers base et redo log
- des fichiers journaux (.arc)
- des fichiers redo log et contrle actuels

Restaurer la base avec la commande : RECOVER DATABASE en indiquant les fichiers


journaux rtablir.

6.4.2.3. Restauration d'une base partir de sauvegarde


d'une base ferme

Recopier les fichiers de sauvegarde qui correspondent l'tat de la base au jour J-n.
recopie physique de tous les fichiers de la base
recopie physique de tous les fichiers redo log
recopie physique de tous les fichiers de contrle
dmarrage de la base avec startup

6.4.2.4. Restauration d'un tablespace partir d'une


sauvegarde tablespace avec base ouverte

La base est disponible pour les utilisateurs


rendre le tablespace restaurer OFFLINE
recopie physique de tous les fichiers de la base du tablespace concern
RECOVER TABLESPACE
Si les fichiers redo log sauvegards sont ncessaires
alors (* sauvegarde en mode archivage et tablespace on line*)
recopie des fichiers redo log demands
fsi
mettre le tablespace Online

Les donnes du tablespace disponible seront celles la date J si le mode archivage est
activ et seront celles de J-n si le mode d'archivage n'est pas actif.

6.4.2.5. Restauration d'une Base totale partir d'une


sauvegarde totale avec base ouverte
Utiliser la commande Recover Database

6.4.2.6. Restauration d'un fichier redo log on line

Aprs restauration de la base par recover database manual, alter


database open resetlogs rend la base disponible sans les donnes contenues dans
le fichier redo log perdu.
7. Export et Import

7.1. Sauvegarde par l'outil EXPORT

On peut utiliser l'outil EXPORT d'Oracle pour effectuer une sauvegarde complte ou
partielle de la base.

Une sauvegarde faite par cet outil est dite sauvegarde logique car le fichier gnr
contient des pseudo ordres SQL (Insert, create, ...)

Lors d'une opration de restauration, ces ordres permettent de rgnrer la base ou une
partie de la base. Cette restauration ne peut tre qu'une opration effectue avec l'outil
IMPORT d'Oracle.

La base doit tre active, les utilisateurs peuvent continuer travailler. L'export utilise
une vue de lecture cohrente des donnes, mme si les utilisateurs sont entrain de modifier la
base pendant l'export.

Les avantages de l'Export par rapport au backup systme sont les suivants :

Export permet des sauvegardes plus fines.


En effet, on peut faire une sauvegarde de quelques tables seulement, d'objets
d'utilisateurs choisis, ou de toute la base. De cette faon on ne sauvegarde que les objets
souhaits.

Quand on sauvegarde une base entire, on peut demander de ne sauvegarder que ce


qui a t modifi depuis la dernire sauvegarde. Ainsi on rduit considrablement le temps de
sauvegarde.
Cette possibilit s'appelle la sauvegarde incrmentale.

Le Dba n'a pas prciser tous les fichiers base lors de l'opration d'export : c'est
l'outil qui s'en occupe en crant un seul fichier d'export contenant toutes les donnes de la
base.

Un autre avantage de taille est qu'avec l'export, le Dba peut rorganiser sa base
donnes.

L'inconvnient d'une sauvegarde de la base entire par Export est que cette opration
peut tre plus longue qu'un Backup Systme.

7.2. Les types d'exports

L'outil export offre 3 modes de sauvegarde :


- le mode table,
- le mode utilisateur,
- le mode base entire (rserv au Dba)
Un utilisateur quelconque peut
exporter : Un dba peut exporter la base entire
- ses tables dans un fichier d'export (tout ce qu'elle contient). Pour ce faire, il
(mode Table) ou peut choisir un des trois modes :
- tous les objets (tables, vues, - incrmental,
squences, clusters) dont il est propritaire - cumulatif,
(mode User) - complet.

7.2.1. Le mode incrmental

Dans ce cas, l'outil exporte les objets (et non pas seulement les lignes) qui ont t
modifis depuis le dernier Export (quel qu'il soit : incrmental, cumulatif ou complet).

7.2.2. Le mode cumulatif

Avec ce mode, l'outil exporte les objets qui ont t modifis depuis le dernier export
cumulatif ou complet.

Ce mode permet de compresser plusieurs fichiers d'exports incrmentaux dans un fichier


cumulatif. Les fichiers incrmentaux ne sont plus ncessaires aprs un export cumulatif.

7.2.3. Le mode complet


Avec ce mode, l'outil fait un export total de la base .

Recommandations : Dans la pratique le Dba doit toujours :


- commencer par un export complet de la base,
- pratiquer des exports incrmentaux rgulirement,
- pratiquer des exports cumulatifs de temps temps,
- pratiquer un export complet de temps en temps.

7.2.4. Scnario de sauvegarde

Exemple de scnario de sauvegardes des donnes par Export.

- Jour J : Export complet dans le fichier f1


- Fin de Jour J+2 : Export incrmental dans le fichier f2
- Fin de Jour J+3 : Export incrmental dans le fichier f3
- Fin de Jour J+4 : Export incrmental dans le fichier f4
- Fin de Jour J+5 : Export incrmental dans le fichier f5
- Fin de Jour J+6 : Export incrmental dans le fichier f6
- Fin de Jour J+7 : Export cumulatif dans le fichier f7

A ce stade le Dba peut supprimer les fichiers f2 f6 car toutes les modifications ont t
rcupres dans le fichier f7.

- Fin de Jour J+8 : Export incrmental dans le fichier f2


- Fin de Jour J+9 : Export incrmental dans le fichier f3
- Fin de Jour J+10 : Export incrmental dans le fichier f4
- Fin de Jour J+11 : Export incrmental dans le fichier f5
- Fin de Jour J+12 : Export incrmental dans le fichier f6
- Fin de Jour J+13 : Export complet dans le fichier f8

A ce stade le Dba peut supprimer les fichiers f1 f7 car toutes les modifications ont t
rcupres dans le fichier f8.

7.3. Restauration par l'outil IMPORT

L'outil IMPORT permet de restaurer totalement ou partiellement une base de donnes.


Pour cela, il utilise des fichiers gnrs par l'outil EXPORT.

L'import est utile pour :


restaurer des objets de la base endommags accidentellement. Par exemple, une fois
qu'une table a t supprime par mgarde de la base, on peut la rintroduire partir d'une
sauvegarde se trouvant dans un fichier export.
Ceci est une restauration partielle.
restaurer une base entirement jusqu' une date correspondant la date du dernier
export de la base. Dans ce cas, il faut crer une base avec les mmes noms de fichiers redo log
et base que ceux de la base endommage, et appliquer un import incrmental. Cette opration
permet de restaurer, toute la base jusqu' la date du dernier fichier export.

7.3.1. Comment appliquer l'import incrmental ?

Prenons les hypothses suivantes :


- un fichier export complet appel expC0.dmp au jour J
- un fichier export cumulatif appel expU7.dmp jour J+7
- deux fichiers d'export incrmentaux expI8.dmp et expI9.dmp au jours J+8 et J+9

Malheureusement vous tes victime d'un crash disque le jour J+10 et vous n'avez pas
d'autres sauvegardes que celles mentionnes ci-dessus.

Cas 1 : Pas de journaux d'archive car l'archivage n'est pas activ J+10

Les tapes de restauration sont les suivantes :

1. Crer une nouvelle base ayant les mmes caractristiques initiales que la base perdue.
2. Appliquer l'import incrmental avec les commandes suivantes :
A partir d'un compte dba (system/manager)

IMP system/manager INCREMENTAL=SYSTEM FULL=Y FILE=expI9.dmp


IMP system/manager INCREMENTAL=RESTORE FULL=Y FILE=expC0.dmp
IMP system/manager INCREMENTAL=RESTORE FULL=Y FILE=expU7.dmp
IMP system/manager INCREMENTAL=RESTORE FULL=Y FILE=expI8.dmp
IMP system/manager INCREMENTAL=RESTORE FULL=Y FILE=expI9.dmp

Cas 2 : On dispose de journaux d'archive car l'archivage a t activ au dmarrage de la


base J+10

1. Appliquer les tapes du cas prcdent


2. Restaurer la base (Recover database)
On rcupre la base jusqu'au moment du crash.

7.4. Rorganisation de la base

A sa cration et aprs les premires insertions, la base est dans un "parfait" tat.
Au fur et mesure que les utilisateurs modifient les tables et les index, les blocs
contenant les donnes et les index ont tendance se dsorganiser. Cette dsorganisation
consiste en :
- des blocs incorrectement remplis la suite des mises jour ou de suppressions. On dit
qu'on est en prsence de "trous" dans les blocs.
- des blocs de donnes ayant des blocs de dbordement dits blocs chans ;
- des blocs d'index reprsentant des B-arbres dsquilibrs.

Une table ayant beaucoup de blocs de ce type occupe probablement des blocs non
contigus rpartis sur plusieurs extensions. Cette structure est nfaste pour les traitements de
recherche et de mise jour, donc pnalisante pour les temps de rponse.

La rorganisation d'un index consiste le rquilibrer. Pour cela il suffit de le supprimer


(par Drop) et de le recrer par (Create).

La rorganisation d'une table consiste la compacter en liminant les trous et les blocs
chans et en la rangeant dans une mme extension physique qui est l'extension initiale.
La mthode propose pour cette rorganisation permet de rduire les blocs chans et les
extensions.
- Faire un export de la table T avec l'option Compress. L'option compress recalcule
l'extension initiale d'une table et stocke ses donnes dans cette extension.
- Supprimer la table T
- Faire un import de la table T

La rorganisation d'une base consiste rorganiser toutes les tables et leur index et
compacter les Rollback Segments.
1. Faire un export complet de la base avec l'option Compress,
EXP system/manager FILE=expC1.dmp FULL=Y GRANTS=Y COMPRESS=Y
2. Crer une nouvelle base avec les mmes caractristiques que la base rorganiser
3. Faire un Import de la base.
IMP system/manager FILE=expC1.dmp