22 May Understanding RMAN : A Back-To-Basics Guide
The first thing we need to do is understand what RMAN is and how it works. Oracle Recovery Manager, better known as RMAN, is a tool provided by Oracle and is included with the Enterprise and Standard editions. You can also find it as an option called “Admin option” when installing the Oracle client.
In its most basic form, the RMAN client connects to the database being backed up. This connection must be made as a privileged “sysdba” user, and the database it connects to is referred to as the target database. The client itself is an executable located in $ORACLE_HOME/bin
.
Because it’s a client-type tool, you can use an RMAN executable from a version higher than the database binaries, allowing you to back up both current and earlier versions of a database. There are some limitations to this, which can be checked in the MOS document RMAN Compatibility Matrix [KB149919].
This RMAN executable uses a file called recover.bsq
, found at $ORACLE_HOME/rdbms/admin
. Essentially, this executable interprets the commands you send, directs the server sessions to execute them, and logs its activity in the control file of the target database being backed up.
RMAN Internal Packages
There are two main SYS packages responsible for backup and recovery:
-
DBMS_RCVMAN: Contains procedures that list your database incarnations, the recovery time window SLA, the list of backups, among other functionalities.
-
DBMS_BACKUP_RESTORE: As the name implies, it performs backup and recovery operations, such as creating snapshots of the control file, backing up datafiles, and backing up the
spfile
, to name a few.

Channels and Execution Phases
As previously mentioned, RMAN uses one or more channels to direct server sessions to execute commands. A channel represents a data stream to a device and corresponds to a server session in the database. The channel reads data into the PGA memory, processes it, and writes it to the output device.
Each channel (whether disk or tape/SBT) operates in three main phases:
-
Read Phase
The channel reads blocks from disk into I/O buffers. Buffer allocation depends on the number of datafiles being read simultaneously and written into the same backup piece. You can control the number of files using theFILESPERSET
parameter. -
Copy Phase
The channel copies blocks from input to output buffers and performs additional processing such as data block validation, ensuring no corrupted data is copied, and applies binary compression and encryption. -
Write Phase
The channel writes blocks from the output buffer to the storage media. This write phase is mutually exclusive: either to SBT or disk, but not both.

Block-Level Backup Advantage
As shown in the phases above, RMAN stands out because backups are done at the data block level, unlike user-managed backups. This provides significant advantages:
-
No need to back up empty blocks
-
Corruption is avoided in the backups
-
Enables maximum compression
Using SBT and Media Management Layer (MML)
When writing to SBT (tape), Oracle uses the Media Management Layer (MML) to let RMAN interact with third-party applications (like Tivoli, NetApp, etc.) and write the resulting backup to a sequential media device.
Oracle uses a shared library, which is a symbolic link to the actual third-party media management library, located at $ORACLE_HOME/lib
and named libobk.so
(or orasbt.dll
on Windows).
For example, to configure Oracle RMAN Linux with Veritas NetBackup, you would do:
cd $ORACLE_HOME/lib
mv libobk.so libobk.so.orig
ln -s /<install_path>/netbackup/bin/libobk.so64 libobk.so
This link allows RMAN to send commands to MML, which then interacts with the media management director. However, to complete an SBT backup, you must set specific parameters using the PARMS option when allocating a channel.
Each media vendor has its own required parameters:
-
Veritas NetBackup:
NB_ORA_SERV
,NB_ORA_CLIENT
,NB_ORA_POLICY
-
Tivoli Storage Manager: Uses a config file
tdpo.opt
specified viaTDPO_OPTFILE
Sample Channel Allocation
As shown below, the PARMS
parameter is used in either ALLOCATE CHANNEL
or CONFIGURE CHANNEL
:
RMAN> run
2>
3> ALLOCATE CHANNEL CH1 DEVICE TYPE 'SBT_TAPE'
PARMS='SBT_LIBRARY=<NBU_install_path>/netbackup/bin/libobk.so64,ENV=(NB_ORA_SERV=MASTER_SERVER,
4> NB_ORA_POLICY=5week,NB_ORA_CLIENT=CLIENT_SERVER)' format '%d_TAPE_%I_%s_%T_%t';
5> backup backupset all;
Example output:
using target database control file instead of recovery catalog
allocated channel: CH1
channel CH1: SID=58 instance=TESTDB1 device type=SBT_TAPE
channel CH1: Veritas NetBackup for Oracle - Release 10.4 (2025042404)
Conclusion
I hope this brief introduction to how RMAN backups work proves useful and helps you get started with using this powerful tool.
No Comments