S’applique à :
Oracle Database – 11gR2
Problème :
Souvent, lors de l’exécution de tests d’évaluation, il est nécessaire de charger une base de données propre avant d’exécuter un nouveau test. Pour s’assurer que la base de données est propre, il faut recréer la base de données dans son intégralité avant chaque test, mais, en fonction de la taille de celle-ci, cette approche peut nécessiter beaucoup de temps ou s’avérer inefficace.
Solution :
Cet article explique comment utiliser la fonction de flashback d’Oracle pour restaurer rapidement une base de données sur l’état existant juste avant l’exécution de la charge de travail. Plus précisément, cet article décrit les étapes à suivre pour utiliser les « points de restauration garantis ».
Point de restauration :
Le point de restauration est le nom associé à un horodatage ou à un SCN de la base de données. Vous pouvez créer un point de restauration normal ou un point de restauration garanti. La différence entre les deux est que le point de restauration garanti vous permet d’effectuer un flashback vers le point de restauration, quel que soit le paramètre de réinitialisation DB_FLASHBACK_RETENTION_TARGET. Il est donc toujours disponible (en supposant que vous avez suffisamment d’espace dans la zone de restauration flash).
Remarque : Dans cet article, la journalisation Flashback n’a pas été activée.
Point de restauration garanti :
Configuration requise : La création d’un point de restauration garanti requiert les conditions suivantes :
- L’utilisateur doit disposer des privilèges système SYSDBA
- Il doit avoir créé une zone de restauration flash
- La base de données doit être en mode ARCHIVELOG
Créer un point de restauration garanti :
Une fois que vous avez créé ou migré une nouvelle base de données, la première chose à faire est de créer un point de restauration garanti pour pouvoir effectuer un flashback vers ce point à chaque fois que vous commencez une nouvelle charge de travail. Les étapes sont les suivantes :
- $> su – oracle
- $> sqlplus / as sysdba ;
- Vérifiez si ARCHIVELOG est activé
SQL> select log_mode from v$database ;
Si l’étape 3 indique qu’ARCHIVELOG n’est pas activé, continuez, sinon passez à l’étape 8 ci-dessous.
- SQL> shutdown immediate ;
- SQL> startup mount ;
- SQL> alter database archivelog ;
- SQL> alter database open ;
- SQL> create restore point CLEAN_DB guarantee flashback database ;
où CLEAN_DB est le nom donné au point de restauration garanti.
Affichez le point de restauration garanti
SQL> select * from v$restore_point ;
Vérifiez les informations concernant le nouveau point de restauration. En outre, notez le numéro SCN pour référence, il servira en tant que « numéro de référence SCN »
Effectuez le flashback vers le point de restauration garanti
À présent, afin de restaurer votre base de données sur le point de restauration garanti, suivez les étapes ci-dessous :
- $> su – oracle
- $> sqlplus / as sysdba ;
- SQL> select current_scn from v$database ;
- SQL> shutdown immediate ;
- SQL> startup mount ;
- SQL> select * from v$restore_point ;
- SQL> flashback database to restore point CLEAN_DB ;
- SQL> alter database open resetlogs ;
- SQL> select current_scn from v$database ;
Comparez le numéro SCN de l’étape 9 ci-dessus au numéro de référence SCN.
Remarque : Le numéro SCN de l’étape 9 ci-dessus n’est pas obligatoirement le même que le numéro de référence SCN, mais il est très proche.
Références