TD_TP4 Sauvegarde et restauration : Utilisation du gestionnaire RMAN 1/9
Pré-requis 1) Dans le contexte RMAN, que représente la base de donnée cible (target)? Dans le contexte RMAN, la base de donnée cible ou target est la base sur laquelle on effectue des opérations de recouvrement/sauvegarde ou de restauration. 2) Dans le contexte RMAN, que représente le catalogue de recouvrement? Lorsqu'il existe plusieurs bases, la création d'un catalogue de recouvrement permet de gérer toutes les métadonnées des bases cibles.lorsque l'administrateur ne créé qu'une seule base de données, la création d'un tel catalogue n'est pas obligatoire car le fichier de contrôle de la BD cible peut être utilisé pour rassembler les métadonnées.cependant, avec un catalogue de recouvrement, l'administrateur dispose de fonctionnalités supplémentaires. L'argument CATALOG spécifie si la connexion avec la BD utilise le fichier de contrôle ou bien le catalogue de recouvrement rman TARGET sys/oracle@target_str I) Utilisation du gestionnaire RMAN pour la sauvegarde d'une base 1) Dans l'environnement RMAN, écrivez la ou les instructions qui renvoient les mêmes informations que l'instruction "select name, bytes from v$datafile" sous SQL*Plus? RMAN> report schema ; Pour afficher ces informations, on utilise la commande report schema : using target database control file instead of recovery catalog Report of database schema List of Permanent Datafiles =========================== File Size(MB) Tablespace RBsegs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 480 SYSTEM *** /opt/oracle/product/oradata/mydb/system01.dbf 2 25 UNDOTBS1 *** /opt/oracle/product/oradata/mydb/undotbs01.dbf 3 240 SYSAUX *** /opt/oracle/product/oradata/mydb/sysaux01.dbf 4 5 USERS *** /opt/oracle/product/oradata/mydb/users01.dbf 5 0 USERS *** /home/oracle/documents/bd4/tp3_de_bd_cree.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 20 TEMP 32767 /opt/oracle/product/oradata/mydb/temp01.dbf 2/9
2) Affichez dans l'environnement RMAN des informations sur les paramètres de configuration en cours du gestionnaire RMAN. On utilise la commande show all RMAN> show all; RMAN configuration parameters are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/product/10gr2/dbs/snapcf_mydb.f'; # default La commande configure... clear permet à tous les paramètres de reprendre leur valeur par défaut. 3) Configurez l'environnement RMAN pour omettre la sauvegarde d'un fichier si le fichier a déjà fait l'objet d'une sauvegarde par le gestionnaire RMAN au préalable et qu'il n'a pas été modifié. Lorsqu'il est actif (on), le paramètre de configuration backup optimization permet d'omettre la sauvegarde d'un fichier si le fichier a déjà fait l'objet d'une sauvegarde au préalable et qu'il n'a pas été modifié. RMAN> configure backup optimization on; new RMAN configuration parameters: CONFIGURE BACKUP OPTIMIZATION ON; new RMAN configuration parameters are successfully stored Vérification : RMAN > show all; RMAN configuration parameters are: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION ON; CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default 3/9
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/product/10gr2/dbs/snapcf_mydb.f'; # default 4) Configurez l'environnement RMAN pour, par défaut disposer de trois sauvegardes pour chaque fichier de données, conserver chaque sauvegarde au moins 7 jours, ne pas sauvegarder un tablespace donné et limiter le nombre de fichiers présents dans un jeu de sauvegardes à 4. Plusieurs paramètres permettent d'influer sur la fréquence des sauvegardes et leur temps de conservation : Le paramètre retention policy to redundancy représente le nombre de sauvegardes intermédiares à conserver pour chaque fichier de données. * Avoir 3 sauvegardes pour chaque fichier de données : RMAN> configure retention policy to redundancy 3; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO REDUNDANCY 3; new RMAN configuration parameters are successfully stored Conserver chaque sauvegarde au moins sept jours Le paramètre retention policy to recovery window to n days indique le nombre de jours de conservation des sauvegardes. RMAN> configure retention policy to recovery window of 7 days; old RMAN configuration parameters: CONFIGURE RETENTION POLICY TO REDUNDANCY 3; new RMAN configuration parameters: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; new RMAN configuration parameters are successfully stored 4/9
*Ne pas sauvegarder un tablespace donné : La commande de configuration exclude permet d'exclure de façon permanente un ou plusieurs espaces disque logiques d'une sauvegarde de la base de données. Configure exclude for tablespace nomdutablespace * Limiter le nombre de fichier présent dans un jeu de sauvegarde à quatre : Cela se fait lorsque l on fait un backup. Donc on ne va pas tester la commande maintenant. RMAN>backup database filesperset 4 ; 5) Configurez l'environnement RMAN pour automatiser le choix des périphériques lors de l'allocation d'un canal automatique. On utilise la commande suivante : Configure channel device type disk format destination de la sauvegarde ; Le paramètre %u sera remplacé par le nom unique du fichier sauvegardé. RMAN>Configure channel device type disk format /home/oracle/sauvegarde/%u ; new RMAN configuration parameters: CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/home/oracle/sauvegarde/%u'; new RMAN configuration parameters are successfully stored 6) Une fois la configuration par défaut établie, effectuez une sauvegarde complète de votre base dans l'environnement RMAN. RMAN>backup database files perset 4; Starting backup at 08-MAR-10 allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=152 devtype=disk channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00001 name=/opt/oracle/product/oradata/mydb/system01.dbf channel ORA_DISK_1: starting piece 1 at 08-MAR-10 channel ORA_DISK_1: finished piece 1 at 08-MAR-10 piece handle=/home/oracle/documents/bd4/01l81pag tag=tag20100308t083943 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45 channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00003 name=/opt/oracle/product/oradata/mydb/sysaux01.dbf input datafile fno=00002 name=/opt/oracle/product/oradata/mydb/undotbs01.dbf input datafile fno=00004 name=/opt/oracle/product/oradata/mydb/users01.dbf input datafile fno=00005 name=/home/oracle/documents/bd4/tp3_de_bd_cree.dbf channel ORA_DISK_1: starting piece 1 at 08-MAR-10 5/9
channel ORA_DISK_1: finished piece 1 at 08-MAR-10 piece handle=/home/oracle/documents/bd4/02l81pbt tag=tag20100308t083943 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15 channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset including current control file in backupset including current SPFILE in backupset channel ORA_DISK_1: starting piece 1 at 08-MAR-10 channel ORA_DISK_1: finished piece 1 at 08-MAR-10 piece handle=/home/oracle/documents/bd4/03l81pcc tag=tag20100308t083943 comment=none channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 Finished backup at 08-MAR-10 II) Visualisation des sauvegardes effectuées par RMAN 1) Affichez la liste des sauvegardes d'une base de données cible. RMAN> list backup of database; List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 1 Full 354.72M DISK 00:00:43 08-MAR-10 BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20100308T083943 Piece Name: /home/oracle/documents/bd4/01l81pag List of Datafiles in backup set 1 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 1174129 08-MAR-10 /opt/oracle/product/oradata/mydb/system01.dbf BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 2 Full 178.56M DISK 00:00:13 08-MAR-10 BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20100308T083943 Piece Name: /home/oracle/documents/bd4/02l81pbt List of Datafiles in backup set 2 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 2 Full 1174145 08-MAR-10 /opt/oracle/product/oradata/mydb/undotbs01.dbf 3 Full 1174145 08-MAR-10 /opt/oracle/product/oradata/mydb/sysaux01.dbf 4 Full 1174145 08-MAR-10 /opt/oracle/product/oradata/mydb/users01.dbf 5 Full 1174145 08-MAR-10 /home/oracle/documents/bd4/tp3_de_bd_cree.dbf 6/9
2) Affichez la liste des copies de fichiers effectuées sous le contrôle de RMAN. RMAN> list copy; List of Archived Log Copies Key Thrd Seq S Low Time Name ------- ---- ------- - --------- ---- 1 1 27 A 03-FEB-10 /opt/oracle/product/10gr2/flash_recovery_area/mydb/archivelog/2010_03_03/o1 _mf_1_27_5rw4vodl_.arc 2 1 28 A 03-MAR-10 /opt/oracle/product/10gr2/flash_recovery_area/mydb/archivelog/2010_03_08/o1 _mf_1_28_5s9946l1_.arc 7/9
III) Utilisation de RMAN dans le mode de retournement rapide (flashback) 1) Préparez le fichier d'initialisation de votre BD pour activer le mode flashback. Le mode de retournemanet rapide repose sur l'existence d'une zone de retournement (flashback recovery area) dont le nom et la taille sont respectivement définis par les paramètres d'initialisation DB_RECOVERY_FILE_DEST et DB_RECOVERY_FILE_DEST_SIZE SQL> alter system set db_recovery_file_dest_size=*taille* scope=both; SQL> alter system set db_recovery_file_dest='chemin' scope=both; Pour supprimer la zone de retournement rapide, il suffit de supprimer la destination SQL> alter system set db_recovery_file_dest='' scope=both; 2) Affichez des informations sur la zone de retournement rapide de votre BD. SQL> select * from v$recovery_file_dest; SQL> select * from dba_outstanding_alerts; 3) Décrivez les étapes pour ouvrir une base en mode Flashback dans SQL*Plus. Prenez le SCN courant comme point de repère puis supprimez un objet. Ouvrez de nouveau la base pour revenir à un état antérieur à la suppression. Ouverture en mode flasback : SQL> startup mount (si la base n'est pas montée) SQL> alter database flashback on; SQL> alter database open; etape SCN courant : etape 1 : prenez le SCN courant comme point de repère SQL> select current_scn from v$database; etape 2 : effectuer une action de suppression ou de modification sur un objet puis arrêter la base SQL> delete from X; SQL> commit; SQL> shutdown immediate etape 3 : activer le mode flasback mais ouvrir la base en mode lecture seulement pour vérifier si la base a été restaurée dans l'état souhaité. SQL> startup mount SQL> flashback database to scn (valeur du scn courant) SQL> alter database open RESETLOGS; SQL> select count(*) from X; 8/9
IV) Utilisation de la commande Flashback table 1) Supprimez une table puis restaurez la à l'aide de l'instruction "flashback table". SQL > drop table tabletest; SQL> flashback table tabletest to before drop; FLASHBACK TERMINE 2) Supprimez une table puis restaurez la à l'aide de l'instruction "flashback table" sous un autre nom. SQL> drop table tabletest; SQL> flashback table tabletest to before drop tabletest2; FLASHBACK TERMINE V) La clause versions between timestamp 1) Ecrivez un ordre SQL pour visualiser l'évolution d'un attribut d'une de vos tables dans les 10 dernières minutes. SQL> select nom from client versions between timestamp systimestamp interval '10' minute and systimestamp interval '1' minute; 9/9