RE: Can I pass a parameter into an RMAN Script?

From: Elliott, Patrick <>
Date: Mon, 25 Feb 2008 12:47:15 -0600
Message-ID: <>

One way to accomplish this is to "CONFIGURE" the backup you want to execute in the database. Then your rman script just needs "backup database". All of the other settings are stored in the control file. Look up the syntax for the "CONFIGURE" command.


-----Original Message-----
From: [] On Behalf Of Sweetser, Joe Sent: Monday, February 25, 2008 12:10 PM To:; Subject: RE: Can I pass a parameter into an RMAN Script?

I've never figured out how to do that, if it's possible. However, one workaround is to simply build the RMAN script each time you run a backup. Then you can pass the parameter to the shell script. Below is an example of what I do and though I don't pass in the ORACLE_SID, it could be easily modified to do that. I also put the resultant script at the end. Hope this formats correctly.


# Set correct Oracle environment
export ORACLE_BASE=/opt/app/oracle



# Set the RMAN environment

RMAN=rman       # RMAN executable name
RMAN_USER=rman  # Owner of the RMAN schema RMAN_PWRD=rman  # Password for the RMAN_USER
RMAN_TNS=rcat   # tnsname for the recovery catalog database
RMAN_SCRIPT=/home/oracle/scripts/rman/rman_full.rcv export RMAN RMAN_USER RMAN_PWRD RMAN_TNS RMAN_SCRIPT

# Miscellaneous
HOST=`hostname -s`

# Build the recovery manager script to used. The script is built here # to give greater control of the TAG name used in it. This TAG is displayed # in RMAN commands like "list backup summary". echo "connect target /" > $RMAN_SCRIPT
echo "connect rcvcat $RMAN_USER/$RMAN_PWRD@$RMAN_TNS" >> $RMAN_SCRIPT echo "" >> $RMAN_SCRIPT echo "run {" >> $RMAN_SCRIPT echo "allocate channel c1 type disk;" >> $RMAN_SCRIPT echo "sql 'alter system switch logfile';" >> $RMAN_SCRIPT echo "backup" >> $RMAN_SCRIPT echo " incremental level 0" >> $RMAN_SCRIPT echo " filesperset 10" >> $RMAN_SCRIPT echo " format '/u04/oradata/backup/${ORACLE_SID}/data/${ORACLE_SID}_%U'" >> $RMAN_SCRIPT

# Here is where we build the tag name
DayOfWeek=`date +%w`
case $DayOfWeek in

    0) TAG=SUN_DB_L0_`date +%b_%d_%Y_%H%M%p`


  1. TAG=MON_DB_L0_`date +%b_%d_%Y_%H%M%p`
  2. TAG=TUE_DB_L0_`date +%b_%d_%Y_%H%M%p`
  3. TAG=WED_DB_L0_`date +%b_%d_%Y_%H%M%p`
  4. TAG=THU_DB_L0_`date +%b_%d_%Y_%H%M%p`
  5. TAG=FRI_DB_L0_`date +%b_%d_%Y_%H%M%p`
  6. TAG=SAT_DB_L0_`date +%b_%d_%Y_%H%M%p`
    esac echo " tag $TAG" >> $RMAN_SCRIPT

echo " database plus archivelog delete input;" >> $RMAN_SCRIPT

echo "sql 'alter database backup controlfile to trace';" >> $RMAN_SCRIPT echo "release channel c1;" >> $RMAN_SCRIPT echo "}" >> $RMAN_SCRIPT

# Write the command we will use out to the log file. echo
echo "% ${ORACLE_HOME}/bin/$RMAN cmdfile '$RMAN_SCRIPT'" echo


RETURN_STATUS=$? And the RMAN script is:
connect target /
connect rcvcat rman/rman_at_rcat

run {
allocate channel c1 type disk;
sql 'alter system switch logfile';
  incremental level 0
  filesperset 10
  format '/u04/oradata/backup/iap1/data/iap1_%U'   tag MON_DB_L0_Feb_25_2008_0225AM

  database plus archivelog delete input; sql 'alter database backup controlfile to trace'; release channel c1; } ________________________________

[] On Behalf Of Sam Bootsma Sent: Monday, February 25, 2008 10:45 AM To:
Subject: Can I pass a parameter into an RMAN Script?

Hello all,

Oracle, Enterprise Edition, on AIX 5.3.

In our RMAN backup scripts for our AAA database we have several format lines that look like:

format '/san2/orabackup/AAA/CTRL_%d_%T_%p_%s%t';

The same lines for our BBB database looks like:

format '/san2/orabackup/BBB/CTRL_%d_%T_%p_%s%t';

Because of this difference in the format lines I need to create and maintain separate RMAN scripts for each database. If I could pass a parameter into the RMAN script, then I could have just one RMAN script and call it with a parameter specifying the database name.

Can anybody tell me if this is possible? Or must I continue to create separate RMAN scripts for each database I wish to backup? I checked the Oracle docs, but could not find anything that spoke to what I want to do.


Sam Bootsma

Oracle Database Administrator

Information Technology Services
George Brown College

Phone: 416-415-5000 x4933
Fax: 416-415-4836
E-mail: <>

Confidentiality Note: This message contains information that may be confidential and/or privileged. If you are not the intended recipient, you should not use, copy, disclose, distribute or take any action based on this message. If you have received this message in error, please advise the sender immediately by reply email and delete this message. Although ICAT Managers, LLC scans e-mail and attachments for viruses, it does not guarantee that either are virus-free and accepts no liability for any damage sustained as a result of viruses. Thank you.



Information transmitted by this email is proprietary to Medtronic and is intended for use only by the individual or entity to which it is addressed, and may contain information that is private, privileged, confidential or exempt from disclosure under applicable law. If you are not the intended recipient or it appears that this mail has been forwarded to you without proper authority, you are notified that any use or dissemination of this information in any manner is strictly prohibited. In such cases, please delete this mail from your records.
To view this notice in other languages you can either select the following link or manually copy and paste the link into the address bar of a web browser:
Received on Mon Feb 25 2008 - 12:47:15 CST

Original text of this message