Canalblog
Editer l'article Suivre ce blog Administration + Créer mon blog
Publicité
Blog d'un DBA sur le SGBD Oracle et SQL
3 juillet 2020

RMAN Trace 10046

 

Introduction
Après avoir vu qu'on pouvait lancer RMAN en mode debug ("RMAN en mode débug"), nous allons étudier maintenant la trace 10046 RMAN. Car oui, on peut aussi lancer une trace 10046 sous RMAN pour étudier ce qui se passe lors d'une sauvegarde. Attention, tout comme pour le fichier de debug, ne vous faites pas d'illlusion, il est très difficile à interpréter, ce sont des SELECTs par dizaines dans le MPD d'Oracle et le fichier de trace servira surtout au support. Néanmoins, si vous vous sentez l'âme d'un explorateur RMAN, vous allez certainement bien vous amuser à le lire :-)



 

Points d'attention
N/A.
 


 
Base de tests
Une base Oracle 18c multi-tenants.


 
Exemples

============================================================================================
Lancement de RMAN en mode trace

============================================================================================
Attention si vous regardez les dates du fichier et du code ci-dessous : elles diffèrent... J'ai malencontreusement effacé le texte original de mon article et donc j'ai dû relancer les commandes RMAN. Je l'ai refait le 03 Juillet, quelques jours après la création du fichier de trace; comme j'y avais déjà mis mes commentaires, je n'ai pas voulu le recréer et y recopier mes commentaires... Donc il y a un décalage de date entre les deux fichiers mais bon, ce n'est pas l'objectif de cet article.

On lance RMAN et on modifie la session pour générer la trace 10046, en mode 12.

Vous noterez le "select 'RMAN SQL TRACE FILE' from dual;". Il va me permettre d'identifier le fichier de trace dans un répertoire contenant des dizaines d'autres fichiers, mais aussi, dans le fichier de trace proprement dit, de voir TOUT ce que Oracle fait avant de lancer le backup : et c'est énoooorme!
     [oracle@vbgeneric ~]$ rman target SYS@orcl12c
     connected to target database: ORCL12C (DBID=768045447)

     RMAN> alter session set events '10046 trace name context forever, level 12';
     using target database control file instead of recovery catalog
     Statement processed

     RMAN> select 'RMAN SQL TRACE FILE' from dual;
     'RMANSQLTRACEFILE'
     -------------------
     RMAN SQL TRACE FILE

Je fais un backup du fichier de contrôle, qui va en plus déclencher un autobackup de ce même fichier et du spfile.
     RMAN> backup current controlfile;
     Starting backup at 03-JUL-20
     allocated channel: ORA_DISK_1
     channel ORA_DISK_1: SID=36 device type=DISK
     channel ORA_DISK_1: starting full datafile backup set
     channel ORA_DISK_1: specifying datafile(s) in backup set
     including current control file in backup set
     channel ORA_DISK_1: starting piece 1 at 03-JUL-20
     channel ORA_DISK_1: finished piece 1 at 03-JUL-20
     piece handle=/u01/app/oracle/fast_recovery_area/orcl12c/ORCL12C/backupset/2020_07_03/o1_mf_ncnnf_TAG20200703T110613_hhylc6t1_.bkp      tag=TAG20200703T110613 comment=NONE
     channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
     Finished backup at 03-JUL-20
     Starting Control File and SPFILE Autobackup at 03-JUL-20
     piece handle=/u01/app/oracle/fast_recovery_area/orcl12c/ORCL12C/autobackup/2020_07_03/o1_mf_s_1044788776_hhylc8wh_.bkp comment=NONE
     Finished Control File and SPFILE Autobackup at 03-JUL-20

     RMAN> exit;
     Recovery Manager complete.

Une fois sorti de RMAN, on va dans le répertoire des traces, défini dans la vue V$DIAG_INFO enregistrement "Diag Trace".
     SQL> select name, value from v$diag_info order by value;
     NAME VALUE
     ------------------------------ ---------------------------------------
     ADR Base /u01/app/oracle
     ADR Home /u01/app/oracle/diag/rdbms/orcl12c/orcl12c
     Diag Alert /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/alert
     Diag Cdump /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/cdump
     Health Monitor /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/hm
     Diag Incident /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/incident
     Diag Trace /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/trace
     Default Trace File /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/trace/orcl12c_ora_4460.trc
     Active Problem Count 0
     Active Incident Count 0
     Diag Enabled TRUE
     11 rows selected.

Identification du bon fichier de traces grâce à notre Select "bidon" puis utilisation de tkprof dessus pour avoir une trace plus lisible que la trace brute.
     [oracle@vbgeneric ~]$ grep -i 'RMAN SQL TRACE FILE' /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/trace/*
     /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/trace/orcl12c_ora_4210.trc:select 'RMAN SQL TRACE FILE' from dual
     /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/trace/orcl12c_ora_4210.trc: value="RMAN SQL TRACE FILE"

     [oracle@vbgeneric ~]$ tkprof /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/trace/orcl12c_ora_4210.trc      /u01/app/oracle/diag/rdbms/orcl12c/orcl12c/trace/orcl12c_ora_4210.txt
     TKPROF: Release 12.2.0.1.0 - Development on Fri Jul 3 11:13:50 2020
     Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
     [oracle@vbgeneric ~]$


============================================================================================
Le fichier de trace 10046

============================================================================================
Comme précisé auparavant, le fichier est long (7300 lignes), avec énormément de SELECTs internes à Oracle sur l'environnement de la base, les tables RMAN etc etc. Je le mets en picèe jointe car il est trop long pour être copié ici.

J'ai mis quelques commentaires (faire une recherche sur -- COMMENT --) mais bon, ce qui est intéressant c'est de voir qu'avec Oracle on accède, via des outils, à ses "entrailles" (désolé... mais je ne vois pas d'autre mot plus imagé).

Le fichier de trace 10046
RMAN_Trace_10046_Commentaires



Publicité
Publicité
Commentaires
Blog d'un DBA sur le SGBD Oracle et SQL
Publicité
Archives
Blog d'un DBA sur le SGBD Oracle et SQL
  • Blog d'un administrateur de bases de données Oracle sur le SGBD Oracle et sur les langages SQL et PL/SQL. Mon objectif est de vous faire découvrir des subtilités de ce logiciel, des astuces, voir même des surprises :-)
  • Accueil du blog
  • Créer un blog avec CanalBlog
Visiteurs
Depuis la création 340 506
Publicité