RMAN Sample Script
EXAMPLE : 1
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1 <<Has to be change>>
export ORACLE_SID=TEST2 <<Has to be change>>
export PATH=$ORACLE_HOME/bin:$PATH
fdate=`date "+%d-%b-%Y"`
ddate=`date -d "-5 days" "+%d-%b-%Y"`
BACKUP_LOCATION=/mnt/backup/TEST2_BACKUP; <<Has to be change>>
export BACKUP_LOCATION
BACKLOGDIR=/mnt/backup/TEST2_BACKUP <<Has to be change>>
export BACKLOGDIR
LOGFILE=$BACKLOGDIR/RMAN_`date +%d%m%Y-%H%M`.log
export LOGFILE;
cd $BACKUP_LOCATION
mkdir RMAN_$fdate
echo " RMAN PROD_DATABASE backup started at `date`" >> $LOGFILE
$ORACLE_HOME/bin/rman nocatalog <<EOF | tee $LOGFILE
connect target /
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
backup as compressed backupset filesperset 5 incremental level 0 database format
'$BACKUP_LOCATION/RMAN_$fdate/%d_data_full_%s_%p_%u' plus archivelog format '$BACKUP_LOCATION/RMAN_$fdate/Arch_%d_%u';
backup current controlfile format '$BACKUP_LOCATION/RMAN_$fdate/%d_control_%s_%p_%u';
release channel d1;
release channel d2;
}
EOF
EXAMPLE : 2
export ORACLE_HOME=/IFSDBT/app/oracle/product/19.3.0/dbhome_1
export ORACLE_SID=IFSTST
export PATH=$ORACLE_HOME/bin:$PATH
fdate=`date "+%d-%b-%Y"`
ddate=`date -d "-5 days" "+%d-%b-%Y"`
BACKUP_LOCATION=/IFSDBT/RMAN/RMAN_BACKUP
export BACKUP_LOCATION
BACKLOGDIR=/IFSDBT/RMAN/log
export BACKLOGDIR
LOGFILE=$BACKLOGDIR/RMAN_`date +%d%m%Y-%H%M`.log
export LOGFILE;
cd $BACKUP_LOCATION
mkdir RMAN_$fdate
echo " RMAN PROD_DATABASE backup started at `date`" >> $LOGFILE
$ORACLE_HOME/bin/rman nocatalog <<EOF | tee $LOGFILE
connect target /
run {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT '$BACKUP_LOCATION/RMAN_$fdate/full_db_%d_%T_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL FORMAT '$BACKUP_LOCATION/RMAN_$fdate/arch_%d_%T_%U.bkp' DELETE INPUT;
BACKUP CURRENT CONTROLFILE FORMAT '$BACKUP_LOCATION/RMAN_$fdate/controlfile_%d_%T_%U.ctl';
BACKUP SPFILE FORMAT '$BACKUP_LOCATION/RMAN_$fdate/spfile_%d_%T_%U.bkp';
CROSSCHECK BACKUP;
CROSSCHECK ARCHIVELOG ALL;
REPORT OBSOLETE;
DELETE NOPROMPT OBSOLETE;
DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 1 TIMES TO DEVICE TYPE DISK;
DELETE NOPROMPT EXPIRED BACKUP;
DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
RELEASE CHANNEL c1;
}
EOF
EXAMPLE : 3
# Set Oracle environment variables
ORACLE_HOME=/IFSDBT/app/oracle/product/19.3.0/dbhome_1
ORACLE_SID=IFSTST
PATH=$ORACLE_HOME/bin:$PATH
LOG_DIR=/IFSDBT/RMAN/RMAN_BACKUP/log
BACKUP_DIR=/IFSDBT/RMAN/RMAN_BACKUP
DATE=$(date +%Y%m%d_%H%M%S)
# Create backup and log directories if they don't exist
mkdir -p $BACKUP_DIR
mkdir -p $LOG_DIR
# Log file for RMAN output
LOGFILE=$LOG_DIR/full_backup_$DATE.log
# Run RMAN backup
rman target / <<EOF > $LOGFILE
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT '$BACKUP_DIR/full_db_%d_%T_%U.bkp';
BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL FORMAT '$BACKUP_DIR/arch_%d_%T_%U.bkp' DELETE INPUT;
BACKUP CURRENT CONTROLFILE FORMAT '$BACKUP_DIR/controlfile_%d_%T_%U.ctl';
BACKUP SPFILE FORMAT '$BACKUP_DIR/spfile_%d_%T_%U.bkp';
CROSSCHECK BACKUP;
CROSSCHECK ARCHIVELOG ALL;
REPORT OBSOLETE;
DELETE NOPROMPT OBSOLETE;
DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 1 TIMES TO DEVICE TYPE DISK;
DELETE NOPROMPT EXPIRED BACKUP;
DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
RELEASE CHANNEL c1;
}
EOF
# Check if any errors occurred during backup
if grep -i "ORA-" $LOGFILE; then
echo "Backup failed. Check the log file for details: $LOGFILE"
else
echo "Backup completed successfully. Log file: $LOGFILE"
fi
Comments
Post a Comment