There are two SYS Packages Used by RMAN while performing the backup:
1. SYS.dbms_backup_restore
à used to create system calls to backup datafiles, control files and archived redo logs
2. SYS.dbms_rcvman
à used to retrieve control file information to RMAN
They can be revealed when the debugging option of RMAN is turned on
# rman target / nocatalog debug trace /home/oracle/rmanbackup.out
Recovery Manager: Release 11.2.0.3.0 - Production on Wed Oct 9 14:05:28 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
RMAN-06005: connected to target database: testdb (DBID=3213230420)
RMAN-06009: using target database control file instead of recovery catalog
RMAN> backup database;
Recovery Manager: Release 11.2.0.3.0 - Production on Wed Oct 9 14:05:28 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
ORACLE_HOME = /oracle/orabase/product/11.2.0.3/dbhome_1
System name: Linux
Node name: RmanTest
Release: 2.6.18-194.el5
Version: #1 SMP Tue Mar 16 21:52:39 EDT 2010
Machine: x86_64
Starting with debugging set to level=9, types=ALL
DBGMISC: ENTERED krmksimronly [14:05:28.596]
DBGSQL: CHANNEL> alter session set events '19737 trace name context forever'
DBGSQL: sqlcode = 0
DBGSQL: CHANNEL> select decode(archiver, 'FAILED', 1, 0) into :archstuck from v$instance
DBGSQL: sqlcode = 0
DBGSQL: D :archstuck = 0
DBGSQL: CHANNEL> alter session set events '19737 trace name context off'
DBGSQL: sqlcode = 0
DBGMISC: EXITED krmksimronly [14:05:28.598] elapsed time [00:00:00:00.001]
DBGMISC: ENTERED krmksimronly [14:05:28.620]
DBGMISC: EXITED krmksimronly [14:05:28.620] elapsed time [00:00:00:00.000]
DBGMISC: ENTERED krmkgetdb [14:05:28.624]
DBGRPC: krmxcc - entering
DBGRPC: krmxcc - creating context for channel No-chid
DBGRPC: krmxcc - connecting using target default channel
DBGRPC: krmxcc - seting up for out-of-band
DBGRPC: krmxpos - setting up channel No-chid
DBGRPC: krmxpos - creating polling channel for channel No-chid
DBGMISC: ENTERED krmksimronly [14:05:28.645]
DBGMISC: EXITED krmksimronly [14:05:28.645] elapsed time [00:00:00:00.000]
DBGRPC: krmxpos - channel No-chid polling channel created to instance 1
DBGRPC: krmxcc - using default sga_heap_size of 16777216
DBGRPC: krmxcc - created context for channel No-chid
DBGMISC: krmqopen: opening new channel context for channel default, instid 1 [14:05:28.648]
DBGRPC: krmxcr - channel default resetted
DBGSQL: TARGET> select decode(open_mode, 'MOUNTED', 0, 'READ WRITE', 1, 'READ ONLY', 1, 'READ ONLY WITH APPLY', 1, 0) into :isdbopen from v$database
DBGSQL: sqlcode = 0
DBGSQL: D :isdbopen = 1
DBGMISC: krmqacen() [14:05:28.800]
DBGMISC: krmqacen() : Exit [14:05:28.800]
DBGRPC: krmxcd - removing context for channel default, keep=0
DBGRPC: krmxcd - closing target default connection
DBGMISC: ENTERED krmkmrsr [14:05:28.801]
DBGMISC: EXITED krmkmrsr [14:05:28.801] elapsed time [00:00:00:00.000]
DBGRPC: krmxpoc - clearing channel default
DBGRPC: krmxpocx - cleaning polling context for channel default
DBGRPC: krmxpocx - cleaning target polling channel
DBGRPC: krmxpocx - closing the cursor
DBGRPC: krmxpocx - logging off from oracle
DBGRPC: krmxpocx - freeing krmxpon
DBGRPC: krmxpocx - target polling channel cleaned up
DBGRPC: krmxpoc - channel default, freeing polling context
DBGRPC: krmxcd - disconnecting
DBGMISC: ENTERED krmksimronly [14:05:28.802]
DBGMISC: EXITED krmksimronly [14:05:28.802] elapsed time [00:00:00:00.000]
DBGRPC: krmxcd - context removed
DBGMISC: ENTERED krmksimronly [14:05:28.827]
DBGMISC: EXITED krmksimronly [14:05:28.827] elapsed time [00:00:00:00.000]
DBGMISC: ENTERED krmksimronly [14:05:28.849]
DBGMISC: EXITED krmksimronly [14:05:28.849] elapsed time [00:00:00:00.000]
DBGMISC: ENTERED krmkcrsr [14:05:28.853]
DBGRPC: krmxcc - entering
DBGRPC: krmxcc - creating context for channel No-chid
DBGRPC: krmxcc - connecting using target default channel
DBGRPC: krmxcc - seting up for out-of-band
DBGRPC: krmxpos - setting up channel No-chid
DBGRPC: krmxpos - creating polling channel for channel No-chid
DBGMISC: ENTERED krmksimronly [14:05:28.873]
DBGMISC: EXITED krmksimronly [14:05:28.873] elapsed time [00:00:00:00.000]
DBGRPC: krmxpos - channel No-chid polling channel created to instance 1
DBGRPC: krmxcc - using default sga_heap_size of 16777216
DBGRPC: krmxcc - created context for channel No-chid
DBGMISC: krmqopen: opening new channel context for channel default, instid 1 [14:05:28.876]
DBGRPC: krmxcr - channel default resetted
DBGSQL: TARGET> select decode(status, 'OPEN', 1, 0), decode(archiver, 'FAILED', 1, 0), decode(database_status, 'SUSPENDED', 1, 0) into :status, :archstuck, :dbsuspended from v$instance
DBGSQL: sqlcode = 0
DBGSQL: D :status = 1
DBGSQL: D :archstuck = 0
DBGSQL: D :dbsuspended = 0
DBGSQL: TARGET> select decode(open_mode, 'READ WRITE', 1, 0) into :read_write from v$database
DBGSQL: sqlcode = 0
DBGSQL: D :read_write = 1
DBGSQL: TARGET> select value into :vcomp_txt from v$parameter where name = 'compatible'
DBGSQL: sqlcode = 0
DBGSQL: D :vcomp_txt = 11.2.0.0.0
DBGSQL: TARGET> declare dot1st number; dot2nd number; dot3rd number; comptxt varchar2(255) := :vcomp_txt; begin comptxt := comptxt || '.0.0'; dot1st := instr(comptxt, '.', 1, 1); dot2nd := instr(comptxt, '.', 1, 2); dot3rd := instr(comptxt, '.', 1, 3); comptxt := lpad(substr(comptxt, 1, dot1st - 1), 2, '0') || lpad(substr(comptxt, dot1st + 1, dot2nd - dot1st - 1), 2, '0') || lpad(substr(comptxt, dot2nd + 1, dot3rd - dot2nd - 1), 2, '0');:vcomp_ub4 := to_number(comptxt); end;
DBGSQL: sqlcode = 0
DBGSQL: B :vcomp_ub4 = 110200
DBGSQL: B :vcomp_txt = 11.2.0.0.0
DBGMISC: krmkpdbs(): vcomp_txt:11.2.0.0.0 vcomp_ub4:110200 flags:5 [14:05:29.028]
DBGSQL: TARGET> begin :vsn_min :=
dbms_backup_restore.protocol_version_number_min; :rel_min :=
dbms_backup_restore.protocol_release_number_min; :upd_min :=
dbms_backup_restore.protocol_update_number_min; :cmp_min := 0; :vsn_max :=
dbms_backup_restore.protocol_version_number_max; :rel_max :=
dbms_backup_restore.protocol_release_number_max; :upd_max :=
dbms_backup_restore.protocol_update_number_max; :cmp_max := 0; :pkg_vsn := to_char(:vsn_max, 'fm00')||'.'|| to_char(:rel_max, 'fm00')||'.'|| to_char(:upd_max, 'fm00')||'.'|| to_char(:cmp_max, 'fm00'); end;
DBGSQL: sqlcode = 0
DBGSQL: B :vsn_min = 8
DBGSQL: B :rel_min = 0
DBGSQL: B :upd_min = 4
DBGSQL: B :cmp_min = 0
DBGSQL: B :vsn_max = 11
DBGSQL: B :rel_max = 2
DBGSQL: B :upd_max = 0
DBGSQL: B :cmp_max = 0
DBGSQL: B :pkg_vsn = 11.02.00.00
DBGSQL: TARGET> begin :cmp_min :=
dbms_backup_restore.protocol_component_number_min; :cmp_max :=
dbms_backup_restore.protocol_component_number_max; :pkg_vsn := to_char(:vsn_max, 'fm00')||'.'|| to_char(:rel_max, 'fm00')||'.'|| to_char(:upd_max, 'fm00')||'.'|| to_char(:cmp_max, 'fm00'); end;
DBGSQL: sqlcode = 0
DBGSQL: B :cmp_min = 0
DBGSQL: B :cmp_max = 3
DBGSQL: B :pkg_vsn = 11.02.00.03
DBGSQL: B :vsn_max = 11
DBGSQL: B :rel_max = 2
DBGSQL: B :upd_max = 0
DBGSQL: B :cmp_max = 3
DBGSQL: TARGET> declare vsn varchar2(20); begin vsn :=
dbms_rcvman.getPackageVersion; :pkg_vsn := vsn; if vsn is not null then :pkg_vsnub4 := to_number(substr(vsn,1,2) || substr(vsn,4,2) || substr(vsn,7,2) || nvl(substr(vsn,10,2),'00')); end if; end;
DBGSQL: sqlcode = 0
DBGSQL: B :pkg_vsn = 08.00.04.00
DBGSQL: B :pkg_vsnub4 = 8000400
DBGSQL: TARGET> declare vsn varchar2(20); begin vsn :=
dbms_rcvman.getPackageVersion; :pkg_vsn := vsn; if vsn is not null then :pkg_vsnub4 := to_number(substr(vsn,1,2) || substr(vsn,4,2) || substr(vsn,7,2) || nvl(substr(vsn,10,2),'00')); end if; end;
DBGSQL: sqlcode = 0
DBGSQL: B :pkg_vsn = 08.00.05.00
DBGSQL: B :pkg_vsnub4 = 8000500
DBGSQL: TARGET> declare vsn varchar2(20); begin vsn :=
dbms_rcvman.getPackageVersion; :pkg_vsn := vsn; if vsn is not null then :pkg_vsnub4 := to_number(substr(vsn,1,2) || substr(vsn,4,2) || substr(vsn,7,2) || nvl(substr(vsn,10,2),'00')); end if; end;
DBGSQL: sqlcode = 0
DBGSQL: B :pkg_vsn = 08.01.03.00
DBGSQL: B :pkg_vsnub4 = 8010300
.
.
.
.
.