728x90
-- full backup
#!/bin/sh
CUSER=`id |cut -d"(" -f2 | cut -d ")" -f1`
 
#RMAN_LOG_FILE=${0}.out
RMAN_LOG_FILE=/RMAN/log/fullbackup.`/bin/date +%Y%m%d_%H%M%S`.log
find /RMAN/log/* -mtime +40 -exec rm -f {} \;
 
if [ -f "$RMAN_LOG_FILE" ]
then
    rm -f "$RMAN_LOG_FILE"
fi
 
echo >> $RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
echo Script $0 >> $RMAN_LOG_FILE
echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
ORACLE_HOME=/oracle/base/product/19
export ORACLE_HOME
ORACLE_SID=orcl1
export ORACLE_SID
ORACLE_USER=oracle
TARGET_CONNECT_STR=sys/oracle
RMAN=$ORACLE_HOME/bin/rman
 
echo >> $RMAN_LOG_FILE
echo   "RMAN: $RMAN" >> $RMAN_LOG_FILE
echo   "ORACLE_SID: $ORACLE_SID" >> $RMAN_LOG_FILE
echo   "ORACLE_USER: $ORACLE_USER" >> $RMAN_LOG_FILE
echo   "ORACLE_HOME: $ORACLE_HOME" >> $RMAN_LOG_FILE
echo "Full backup requested" >> $RMAN_LOG_FILE
 
CMD_STR="
ORACLE_HOME=$ORACLE_HOME
export ORACLE_HOME
ORACLE_SID=$ORACLE_SID
export ORACLE_SID
$RMAN target $TARGET_CONNECT_STR nocatalog msglog $RMAN_LOG_FILE append << EOF
RUN {
ALLOCATE CHANNEL ch00 TYPE DISK CONNECT='sys/oracle@orcl1';
ALLOCATE CHANNEL ch01 TYPE DISK CONNECT='sys/oracle@orcl2';
BACKUP
    SKIP INACCESSIBLE
    TAG full_level0
    FILESPERSET 5
    FORMAT '/RMAN/backup/bk_%s_%p_%t'
    INCREMENTAL LEVEL 0
DATABASE;
sql 'alter system archive log current';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
 
ALLOCATE CHANNEL ch00 TYPE DISK CONNECT='sys/oracle@orcl1';
ALLOCATE CHANNEL ch01 TYPE DISK CONNECT='sys/oracle@orcl2';
#CONFIGURE CHANNEL 1 DE
BACKUP
    filesperset 20
    FORMAT '/RMAN/backup/al_%s_%p_%t'
    ARCHIVELOG ALL DELETE INPUT;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
 
 
ALLOCATE CHANNEL ch00 TYPE DISK CONNECT='sys/oracle@orcl1';
ALLOCATE CHANNEL ch01 TYPE DISK CONNECT='sys/oracle@orcl2';
BACKUP
    FORMAT '/RMAN/backup/control_%s_%p_%t'
    CURRENT CONTROLFILE;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}
exit
EOF
"
# Initiate the command string
if [ "$CUSER" = "root" ]
then
    su - $ORACLE_USER -c "$CMD_STR" >> $RMAN_LOG_FILE
    RSTAT=$?
else
    /usr/bin/sh -c "$CMD_STR" >> $RMAN_LOG_FILE
    RSTAT=$?
fi
if [ "$RSTAT" = "0" ]
then
    LOGMSG="ended successfully"
else
    LOGMSG="ended in error"
fi
echo >> $RMAN_LOG_FILE
echo Script $0 >> $RMAN_LOG_FILE
echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
exit $RSTAT
-- cumulative backup
#!/bin/sh
CUSER=`id |cut -d"(" -f2 | cut -d ")" -f1`
 
#RMAN_LOG_FILE=${0}.out
RMAN_LOG_FILE=/RMAN/log/cumu_incre.`/bin/date +%Y%m%d_%H%M%S`.log
find /RMAN/log/* -mtime +40 -exec rm -f {} \;
 
if [ -f "$RMAN_LOG_FILE" ]
then
    rm -f "$RMAN_LOG_FILE"
fi
 
echo >> $RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
echo Script $0 >> $RMAN_LOG_FILE
echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
ORACLE_HOME=/oracle/base/product/19
export ORACLE_HOME
ORACLE_SID=orcl1
export ORACLE_SID
ORACLE_USER=oracle
TARGET_CONNECT_STR=sys/oracle
RMAN=$ORACLE_HOME/bin/rman
 
echo >> $RMAN_LOG_FILE
echo   "RMAN: $RMAN" >> $RMAN_LOG_FILE
echo   "ORACLE_SID: $ORACLE_SID" >> $RMAN_LOG_FILE
echo   "ORACLE_USER: $ORACLE_USER" >> $RMAN_LOG_FILE
echo   "ORACLE_HOME: $ORACLE_HOME" >> $RMAN_LOG_FILE
echo "Full backup requested" >> $RMAN_LOG_FILE
 
CMD_STR="
ORACLE_HOME=$ORACLE_HOME
export ORACLE_HOME
ORACLE_SID=$ORACLE_SID
export ORACLE_SID
$RMAN target $TARGET_CONNECT_STR nocatalog msglog $RMAN_LOG_FILE append << EOF
RUN {
ALLOCATE CHANNEL ch00 TYPE DISK CONNECT='sys/oracle@orcl1';
ALLOCATE CHANNEL ch01 TYPE DISK CONNECT='sys/oracle@orcl2';
BACKUP
    SKIP INACCESSIBLE
    TAG cumu_incre_1
    FILESPERSET 5
    FORMAT '/RMAN/backup/bk_%s_%p_%t'
    INCREMENTAL LEVEL 1 CUMULATIVE
DATABASE;
sql 'alter system archive log current';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
 
ALLOCATE CHANNEL ch00 TYPE DISK CONNECT='sys/oracle@orcl1';
ALLOCATE CHANNEL ch01 TYPE DISK CONNECT='sys/oracle@orcl2';
BACKUP
    filesperset 20
    FORMAT '/RMAN/backup/al_%s_%p_%t'
    ARCHIVELOG ALL DELETE INPUT;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
 
ALLOCATE CHANNEL ch00 TYPE DISK CONNECT='sys/oracle@orcl1';
ALLOCATE CHANNEL ch01 TYPE DISK CONNECT='sys/oracle@orcl2';
BACKUP
    FORMAT '/RMAN/backup/ctl_%s_%p_%t'
    CURRENT CONTROLFILE;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}
exit
EOF
"
# Initiate the command string
if [ "$CUSER" = "root" ]
then
    su - $ORACLE_USER -c "$CMD_STR" >> $RMAN_LOG_FILE
    RSTAT=$?
else
    /usr/bin/sh -c "$CMD_STR" >> $RMAN_LOG_FILE
    RSTAT=$?
fi
if [ "$RSTAT" = "0" ]
then
    LOGMSG="ended successfully"
else
    LOGMSG="ended in error"
fi
echo >> $RMAN_LOG_FILE
echo Script $0 >> $RMAN_LOG_FILE
echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
exit $RSTAT
-- incremental backup
#!/bin/sh
CUSER=`id |cut -d"(" -f2 | cut -d ")" -f1`
 
#RMAN_LOG_FILE=${0}.out
RMAN_LOG_FILE=/RMAN/log/incre.`/bin/date +%Y%m%d_%H%M%S`.log
find /RMAN/log/* -mtime +40 -exec rm -f {} \;
 
if [ -f "$RMAN_LOG_FILE" ]
then
    rm -f "$RMAN_LOG_FILE"
fi
 
echo >> $RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
echo Script $0 >> $RMAN_LOG_FILE
echo ==== started on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
ORACLE_HOME=/oracle/base/product/19
export ORACLE_HOME
ORACLE_SID=orcl1
export ORACLE_SID
ORACLE_USER=oracle
TARGET_CONNECT_STR=sys/oracle
RMAN=$ORACLE_HOME/bin/rman
 
echo >> $RMAN_LOG_FILE
echo   "RMAN: $RMAN" >> $RMAN_LOG_FILE
echo   "ORACLE_SID: $ORACLE_SID" >> $RMAN_LOG_FILE
echo   "ORACLE_USER: $ORACLE_USER" >> $RMAN_LOG_FILE
echo   "ORACLE_HOME: $ORACLE_HOME" >> $RMAN_LOG_FILE
echo "Full backup requested" >> $RMAN_LOG_FILE
 
CMD_STR="
ORACLE_HOME=$ORACLE_HOME
export ORACLE_HOME
ORACLE_SID=$ORACLE_SID
export ORACLE_SID
$RMAN target $TARGET_CONNECT_STR nocatalog msglog $RMAN_LOG_FILE append << EOF
RUN {
ALLOCATE CHANNEL ch00 TYPE DISK CONNECT='sys/oracle@orcl1';
ALLOCATE CHANNEL ch01 TYPE DISK CONNECT='sys/oracle@orcl2';
BACKUP
    SKIP INACCESSIBLE
    TAG incre_2
    FILESPERSET 5
    FORMAT '/RMAN/backup/bk_%s_%p_%t'
    INCREMENTAL LEVEL 2
DATABASE;
sql 'alter system archive log current';
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
 
ALLOCATE CHANNEL ch00 TYPE DISK CONNECT='sys/oracle@orcl1';
ALLOCATE CHANNEL ch01 TYPE DISK CONNECT='sys/oracle@orcl2';
BACKUP
    filesperset 20
    FORMAT '/RMAN/backup/al_%s_%p_%t'
    ARCHIVELOG ALL DELETE INPUT;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
 
ALLOCATE CHANNEL ch00 TYPE DISK CONNECT='sys/oracle@orcl1';
ALLOCATE CHANNEL ch01 TYPE DISK CONNECT='sys/oracle@orcl2';
BACKUP
    FORMAT '/RMAN/backup/ctl_%s_%p_%t'
    CURRENT CONTROLFILE;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}
exit
EOF
"
# Initiate the command string
if [ "$CUSER" = "root" ]
then
    su - $ORACLE_USER -c "$CMD_STR" >> $RMAN_LOG_FILE
    RSTAT=$?
else
    /usr/bin/sh -c "$CMD_STR" >> $RMAN_LOG_FILE
    RSTAT=$?
fi
if [ "$RSTAT" = "0" ]
then
    LOGMSG="ended successfully"
else
    LOGMSG="ended in error"
fi
echo >> $RMAN_LOG_FILE
echo Script $0 >> $RMAN_LOG_FILE
echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
exit $RSTAT
 

 

 

 

728x90

+ Recent posts