I have been using this to backup and recover database. I thought as usual, I should share it.
This is a simple script and should be used with care. This assumes a full backup and recover. It does not take other scenarios into consideration.
RMAN Backup Script
I assume you are running Unix.
This script will help you. Save it as shell script (e.g rman_backup.sh) and make required changes.
# Change
#!/usr/bin/sh
export ORACLE_SID=TEST
export ORACLE_HOME=$ORACLE_HOME
# Add date to be used in logfile
export TDAY=`date +%a`
export backup_dir = /u01/oracle/backup
export LOGFILE=$backup_dir/$SID_clone.log
echo "Backup Started at `date` \n" >$LOGFILE
$ORACLE_HOME/bin/rman <<'!' 1>> $LOGFILE 2>&1
# Connect to the database. Change this to Sys logon if not using /
connect target /
# Allocate Disk channels. Allocate more if you have enough max process to use
run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
#backup the whole source database.
# Use tags for easy separation from other backups during restore
backup
tag whole_database_open
format '$backup_dir/df_%u'
database;
# switch out of the current logfile
sql 'alter system archive log current';
#backup the archived logs
backup
archivelog all
format '$backup_dir/al_%u';
# backup a copy of the controlfile that contains records for the backups just made
backup
current controlfile
tag = cf1
format '$backup_dir/cf_%u';
}
exit
echo "Backup Finished at `date` \n" >>$LOGFILE
RMAN Recovery Script
This one of the routines I use to clone my database from one Server to another. so it may help you, but you have to use it with caution .
hope you are a DBA and can make all the required changes to the scripts. Whereever you see $, it means run from OS. RMAN> means run from RMAN
--I assume the RMAN Backup has been restored to the DISK as well
--I assume your system is Unix
--I assume you will run the commands manually (e.g. copy and paste). If you can script them, thats ok.
Esnure you Rebuild all your configuration as before
Set all your ORACLE_HOME etc.
Prepare all your init ora file as before (restore a previous copy is possible)
Create all the starting mount point as it was for your datafiles.
Logon to RMAN
$ORACLE_HOME/bin/rman
Run the following command. This part can also be scripted if required.
RMAN> connect target /
Startup the Instance with nomount
RMAN> startup nomount;
# add the init parameter file to the above if not on default location
#If you have or know DBID, set the DBID
RMAN> set dbid
Identify and Restore the control file.
RMAN> RESTORE CONTROLFILE FROM 'mount_point/
Create a password file
$create password file orapwd file=$ORACLE_HOME/dbs/orapw
Modify the script below to use to restore the database
export ORACLE_SID=
export ORACLE_HOME==$ORACLE_HOME
$ORACLE_HOME/bin/rman
connect target /
# Mount the database
alter database mount;
# Allocate Disk channels.
RMAN> run {
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
restore database;
# If your rman used a tag,add "from tag
}
# Check the LOGFILE for errors
# Recover the Database
RMAN> run {
SET UNTIL logseq =
RECOVER DATABASE;
}
# Add Temp files because your backup will not have them
# Example
ALTER TABLESPACE "TEMP"
ADD TEMPFILE '
# Run reset logs
RMAN> alter database open resetlogs;
3 comments:
I want to configure this one in to windows env.
I do not understand meaning of
<> , 2 , &1 in
%ORACLE_HOME/bin/rman <>$LOGFILE 2>&1
The characters are been changed by the blog editing tool. It is supposed to read $ORACLE_HOME/bin/rman <<'!' 1>> $LOGFILE 2>&1 without the ' '
Thank you so much for sharing this precious information with us.
Post a Comment