Académique Documents
Professionnel Documents
Culture Documents
Mode NOARCHIVLOG
2
Sauvegardes et Restaurations d’une Base de données oracle
3 celle-ci ?
Sauvegardes et Restaurations d’une Base de données oracle
S’il n’est pas possible d’arrêter la base ou de faire une sauvegarde complète, il
sera toujours possible de faire des sauvegardes partielles.
La sauvegarde diffère en fonction de la nature de la base de données
Base de petits volumes,
Base contenant des données stratégiques
Base de volumes importants.
Par exemple, pour certaines bases de données, il sera préférable de recharger
certaines tables plutôt que de les restaurer (gain de temps pour de gros
volumes).
Ne pas oublier que le tablespace est l’unité de sauvegarde. Il faudra penser au
stockage des tables dans des tablespaces dédiés (les grosses tables ou les tables
6
Sauvegardes et Restaurations d’une Base de données oracle
Le mode NOARCHIVELOG
Dans ce mode:
Un fichier de Redo Log peut être réutilisé immédiatement après qu’un
point de synchronisation (checkpoint) ait eu lieu.
Une fois le contenu d’un fichier de RedoLog ait été écrasé par une
nouvelle écriture les données à restaurer sont perdues.
7
Sauvegardes et Restaurations d’une Base de données oracle
SQL> shutdown
SQL> startup mount
8
Sauvegardes et Restaurations d’une Base de données oracle
Le mode ARCHIVELOG
La synchronisation des fichiers de données est basée sur le numéro de séquence
du fichier de Redo Log
Le mode ARCHIVELOG :
Ce mode permet de garantir qu’un groupe de fichiers de Redo Log non
archivés ne sera pas écrasé par LGWR.
En version 9i, mettre la base en ARCHIVELOG ne démarrait pas
automatiquement le processus ARCH. Il fallait le faire en positionnant le
paramètre LOG_ARCHIVE_START à TRUE.
10
Sauvegardes et Restaurations d’une Base de données oracle
MODE OPERATOIRE :
Arrêter la base de données : SHUTDOWN IMMEDIATE
Monter la base : STARTUP MOUNT
Passer la base en ARCHIVELOG : ALTER DATABASE ARCHIVELOG ;
Ouvrir la base : ALTER DATABASE OPEN
Après avoir passé la base en mode ARCHIVELOG, vérifiez que les archives sont
générées correctement et apparaissent à l’emplacement demandé, puis arrêtez la
base de données et faites une première sauvegarde.
11
Sauvegardes et Restaurations d’une Base de données oracle
En règle générale, il est conseillé d’avoir des basculements de fichiers de Redo Log
(et donc des archivages en mode ARCHIVELOG) toutes les 20 à 30 minutes.
Mode Avantages
ARCHIVELOG Vous pouvez effectuer des sauvegardes en cours d'exécution
(quand la base de données est en ligne).
Les journaux archivés et la dernière sauvegarde complète (hors
ligne ou en ligne) ou une sauvegarde antérieure permettent de
récupérer entièrement la base de données sans perte de données,
car le fichier journal enregistre toutes les modifications apportées à
la base de données.
14
Sauvegardes et Restaurations d’une Base de données oracle
Mode Inconvénients
ARCHIVELOG Un espace disque supplémentaire est requis pour le stockage des fichiers journaux
archivés.
La durée des temps d'arrêt de la base de données est importante car la sauvegarde en
ligne de la base de données est impossible. Cette limitation pose un très sérieux
Eviter de sauvegarder les blocs Oracle vides, ce qui permet un gain significatif de volume de
sauvegarde.
S'interfacer avec un outil de sauvegarde externe (gestionnaire de médias).
Garder la trace des sauvegardes soit dans un catalogue de récupération (recovery catalog),
soit dans les fichiers de contrôle
Effectuer des restaurations globales ou partielles.
De paralléliser les opérations de sauvegarde/restauration afin d'accroître les performances.
De gérer les périodes de conservation des sauvegardes.
De placer les opérations de sauvegarde/restauration courantes dans le catalogue sous forme
de scripts (à la condition d'utiliser le catalogue RMAN).
17
Sauvegardes et Restaurations d’une Base de données oracle
De mutualiser les scripts de sauvegardes, ils ne sont pas dépendants du système
d'exploitation. RMAN dispose de son propre langage de script.
D'éditer des rapports.
De sauvegarder ou dupliquer les bases de données. Les copies n'ont qu'un intérêt limité
par rapport aux copies OS.
De vérifier les sauvegardes effectuées en termes de corruption et ne corrompt pas les
bases qu'il sauvegarde (contrairement à la copie de fichiers de données sans positionner
les tablespaces en mode backup) ce qui est un avantage non négligeable.
18
Sauvegardes et Restaurations d’une Base de données oracle
19
Sauvegardes et Restaurations d’une Base de données oracle
20
Sauvegardes et Restaurations d’une Base de données oracle
21
Sauvegardes et Restaurations d’une Base de données oracle
22
Sauvegardes et Restaurations d’une Base de données oracle
24
Sauvegardes et Restaurations d’une Base de données oracle
Lister les fichiers pour lesquels il manque des sauvegardes si on veut répondre à la
politique de sauvegarde définie (durée de rétention, nombre de sauvegardes...)
RMAN> report need backup;
La sauvegarde
26
Sauvegardes et Restaurations d’une Base de données oracle
La sauvegarde
On peut également stipulé le numéro d’id du datafile à sauvegarder. Cette information peut
s’obtenir avec la requête suivante : SQL> select file_id,file_name from dba_data_files ;
FILE_ID FILE_NAME
-------- -------------------------------------------------
3 /u02/oradata/mgmt/users01.dbf
2 /u02/oradata/mgmt/undotbs01.dbf
1 /u02/oradata/mgmt/system01.dbf
4 /u02/oradata/mgmt/example01.dbf
La commande suivante sauvegardera donc le fichier "/u02/oradata/mgmt/example01.dbf" :
La sauvegarde
. Cependant, si on est en mode autobackup ON, une copie du fichier sera effectuée à
chaque fin de sauvegarde.
28
Sauvegardes et Restaurations d’une Base de données oracle
La sauvegarde
•La commande ci-dessous va sauvegarder les journaux de transactions archivés du mois écoulé.
29
Sauvegardes et Restaurations d’une Base de données oracle
La sauvegarde
30
Sauvegardes et Restaurations d’une Base de données oracle
La sauvegarde
Exemple:
? = Repertoire
31
Sauvegardes et Restaurations d’une Base de données oracle
La sauvegarde
Sauvegarde incrémentale
Lors d’un backup incrémental, on doit toujours spécifier le niveau 0 qui correspond à une
sauvegarde complète de la base.
Dans notre exemple, seuls les blocs ayant été modifiés depuis la sauvegarde de niveau 0
seront sauvegardés.
32
Sauvegardes et Restaurations d’une Base de données oracle
On peut tester le fonctionnement d’une sauvegarde sans générer de sortie avec l’option
VALIDATE.
Par exemple :
L’outil RMAN permet également de réaliser des copies de fichiers. Ces copies sont
équivalentes à des copies de fichiers OS. Cela peut s’avérer nécessaire lorsque
l’on désire réaliser des restaurations « user-managed ».( Restauration par des
commndes OS Sans avoir recours à Rman )
Restauration complète
La restauration complète d’une base de données s’effectue de la manière suivante :
Notons que pour effectuer cette opération la base doit être en mode MOUNT (montée).
NB : l’option FORCE va réaliser la combinaison SHUTDOWN ABORT / STARTUP..
35
Sauvegardes et Restaurations d’une Base de données oracle
Restauration incomplète:
Généralement, ce type de restauration s’effectue dans les cas suivants :
Un ou tous les redo-log en lignes ont été détruits.
Une perte de données : un utilisateur qui a réalisé un DROP TABLE (par exemple) et on ne dispose pas d’un
export assez récent.
Impossibilité d’effectuer une restauration complète par absence d’un ou de plusieurs fichier de logs archivés.
.
La restauration incomplète se fera en mode point-in-time. Dans ce cas, on doit savoir exactement à quelle date
était le dernier état stable de la base et savoir également que toute sauvegarde de ce type entraînera une perte
de données :
Pour se faire, il faut exécuter les commandes suivantes :
RMAN> RUN {
2> SET UNTIL TIME = ‘2022-12-09 11:00:00';
3> RESTORE DATABASE;
4> RECOVER DATABASE;
5> ALTER DATABASE OPEN RESETLOGS;
}
Notons que le format de date doit correspondre aux variables d’environnement systèmes NLS_LANG et surtout
NLS_DATE_FORMAT.
36
Sauvegardes et Restaurations d’une Base de données oracle
La Resstauration
Réstaurer Un tablespace
La restauration d’un tablespace peut se faire en ligne, avec les commandes suivantes :
RMAN> RUN {
2> SQL 'ALTER TABLESPACE users OFFLINE';
3> RECOVER TABLESPACE users;
4> SQL 'ALTER TABLESPACE users ONLINE';
}
Dans un tel cas, les fichiers seront restaurés au même endroit que le précédent. Si on veut
modifier cet endroit, il suffit d’exécuter les commandes suivantes (répéter la ligne 2 en
fonction du nombre de fichiers contenus par le tablespace) :
La Resstauration
RMAN offre la possibilité de restaurer un fichier de données. Cette opération est similaire à la
restauration d’un tablespace. L’obtention de l’identifiant du fichier se fait par la requête SQL
suivante :
Si on avait voulu restaurer le fichier à l’endroit suivant /u03/restore, nous aurions du exécuter
les commandes suivantes :
NB : Attention a la validité du fichier (si l’entête du fichier de contrôle courant correspond
aux fichiers à restaurer, alors aucune restauration ne sera effectuée).
39
Sauvegardes et Restaurations d’une Base de données oracle
La Resstauration
40
Sauvegardes et Restaurations d’une Base de données oracle
La Resstauration
V$ARCHIVED_LOG
RECID Identifiant de l’enregistrement
NAME Chemin complet de l’archive
SEQUENCE# Numéro de séquence du fichier de Redo Log correspondant
FIRST_CHANGE# Plus petit numéro de SCN (numéro de transaction) écrit dans l’archive
FIRST_TIME Date et heure du plus petit numéro de SCN
NEXT_CHANGE# Plus grand numéro SCN écrit dans l’archive
NEXT_TIME Date et heure du plus grand numéro de SCN
COMPLETION_TIME Date et heure de l’archivage
V$ARCHIVED_DEST
DEST_NAME Nom de la destination
DESTINATION Chemin complet de la destination
STATUS Statut de la destination (VALID, ERROR, …)
ERROR Message d’erreur (en cas d’erreur)
41
Sauvegardes et Restaurations d’une Base de données oracle
43
Sauvegardes et Restaurations d’une Base de données oracle
Si tous les fichiers de contrôle ont été perdus : s'assurer que l'instance est bien arrêtée
(SHUTDOWN ABORT si ce n'est pas le cas, car un IMMEDIATE ne marchera pas). Puis,
procéder comme suit :
RMAN> startup force mount;
RMAN> restore controlfile from autobackup;
RMAN> alter database open;
Rq : cette manipulation suppose que les fichiers de contrôle étaient en mode AUTOBACKUP
dans RMAN.
Si ce n'est pas le cas, faire appel à tout les DBA il y a un grand travail à faire
44