Linux RMAN backup shell script

Source: Internet
Author: User

RMAN backup is easy to use for Oracle database backup and recovery, with low costs. For non-catalog mode, it is undoubtedly the first choice to embed the RMAN script into the shell script and then use crontab to back up small and medium databases. This document provides an easy-to-use RMAN backup script based on Linux Shell for your reference. You can make appropriate adjustments as needed.

 

Learn more about RMAN backup. For details, refer:
RMAN overview and architecture
RMAN configuration, Monitoring and Management
Detailed description of RMAN backup
RMAN restoration and recovery
Create and use RMAN catalog
Create RMAN storage script based on catalog
Catalog-based RMAN backup and recovery
RMAN backup path confusion

The second is to call SQL statements in shell scripts. For the RMAN statements, refer
Linux/Unix shell scripts call SQL and RMAN scripts
Passing variables between Linux/Unix shell SQL statements

The specific content of the script is as follows:

##===========================================================##   db_bak_rman.sh              ##   created by Robinson         ##   2011/11/07  ##   usage: db_bak_rman.sh <$ORACLE_SID> <$BACKUP_LEVEL>##          BACKUP_LEVEL: ##             F: full backup##             0: level 0##             1: level 1                           ##============================================================#!/bin/bash# User specific environment and startup programsif [ -f ~/.bash_profile ]; then. ~/.bash_profilefiORACLE_SID=${1};                              export ORACLE_SID    RMAN_LEVEL=${2};                              export RMAN_LEVELTIMESTAMP=`date +%Y%m%d%H%M`;                 export TIMESTAMP     DATE=`date +%Y%m%d`;                          export DATE          RMAN_DIR=/u02/database/${ORACLE_SID}/backup/rman;   export RMAN_DIR      RMAN_DATA=${RMAN_DIR}/${DATE};                export RMAN_DATA     #RMAN_LOG=$RMAN_DATA/log;                     export RMAN_LOG     RMAN_LOG=/u02/database/${ORACLE_SID}/backup/rman/log  export RMAN_LOG # Check rman level #======================================================================if [ "$RMAN_LEVEL" == "F" ];then  unset INCR_LVL      BACKUP_TYPE=fullelse      INCR_LVL="INCREMENTAL LEVEL ${RMAN_LEVEL}"      BACKUP_TYPE=lev${RMAN_LEVEL} fiRMAN_FILE=${RMAN_DATA}/${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP};       export RMAN_FILESSH_LOG=${RMAN_LOG}/${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP}.log;      export SSH_LOGMAXPIECESIZE=4G;                                                export MAXPIECESIZE#Check RMAN Backup Path#=========================================================================if ! test -d ${RMAN_DATA}thenmkdir -p ${RMAN_DATA}fiecho "---------------------------------" >>${SSH_LOG}echo "   " >>${SSH_LOG}echo "Rman Begin  to Working ........." >>${SSH_LOG}echo "Begin time at:" `date` --`date +%Y%m%d%H%M` >>${SSH_LOG}#Startup rman to backup #=============================================================================$ORACLE_HOME/bin/rman log=${RMAN_FILE}.log <<EOFconnect target /run {CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;CONFIGURE BACKUP OPTIMIZATION ON;CONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '${RMAN_FILE}_%F';ALLOCATE CHANNEL 'ch1' TYPE DISK maxpiecesize=${MAXPIECESIZE};ALLOCATE CHANNEL 'ch2' TYPE DISK maxpiecesize=${MAXPIECESIZE};set limit channel ch1 readrate=10240;set limit channel ch1 kbytes=4096000;set limit channel ch2 readrate=10240;set limit channel ch2 kbytes=4096000;CROSSCHECK ARCHIVELOG ALL;DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;BACKUP #AS COMPRESSED BACKUPSET ${INCR_LVL}DATABASE FORMAT '${RMAN_FILE}_%U' TAG '${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP}';SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';BACKUP ARCHIVELOG ALL FORMAT '${RMAN_FILE}_arc_%U' TAG '${ORACLE_SID}_arc_${TIMESTAMP}'DELETE  INPUT;DELETE NOPROMPT OBSOLETE;RELEASE CHANNEL ch1;RELEASE CHANNEL ch2;}sql "alter database backup controlfile to ''${RMAN_DATA}/cntl_${BACKUP_TYPE}.bak''";exit;EOFRC=$?cat ${RMAN_FILE}.log >>${SSH_LOG}echo "Rman Stop working @ time:"`date` `date +%Y%m%d%H%M` >>${SSH_LOG}echo >>${SSH_LOG}echo "------------------------" >>${SSH_LOG}echo "------ Disk Space ------" >>${SSH_LOG}df -h >>${SSH_LOG}echo >>${SSH_LOG}if [ $RC -ne "0" ]; then    echo "------ error ------" >>${SSH_LOG}else    echo "------ no error found during RMAN backup peroid------" >>${SSH_LOG}    rm -rf ${RMAN_FILE}.logfi#Remove old backup than 3 days#============================================================================RMDIR=${RMAN_DIR}/`/bin/date +%Y%m%d -d "3 days ago"`;   export RMDIRecho >>${SSH_LOG}echo -e "------Remove old backup than 3 days ------\n" >>${SSH_LOG}if test -d ${RMDIR}    then    rm -rf ${RMDIR}    RC=$?fiecho >>${SSH_LOG}if [ $RC -ne "0" ]; then    echo -e "------ Remove old backup exception------ \n" >>${SSH_LOG}else    echo -e "------ no error found during remove old backup set peroid------ \n" >>${SSH_LOG}fiexitoracle@SZDB:~/robinson/scripts/dba_scripts/custom/sql> ./db_bak_rman.sh GOBO1 0RMAN> RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> 19> 20> 21> 22> 23> 24> RMAN> RMAN> oracle@SZDB:~/robinson/scripts/dba_scripts/custom/sql>oracle@SZDB:/u02/database/GOBO1/backup/rman> ls20120928  logoracle@SZDB:/u02/database/GOBO1/backup/rman/20120928> lscntl_lev0.bak                             GOBO1_lev0_201209281421_arc_4onmb9ro_1_1GOBO1_lev0_201209281421_4knmb9jn_1_1      GOBO1_lev0_201209281421_c-733951103-20120928-00GOBO1_lev0_201209281421_4lnmb9jn_1_1      GOBO1_lev0_201209281421_c-733951103-20120928-01GOBO1_lev0_201209281421_arc_4nnmb9rn_1_1

For more information, see:

For more information about user-managed backup and recovery, see

Oracle cold backup

Oracle Hot Backup

Concept of Oracle backup recovery

Oracle instance recovery

Oracle recovery based on user management (describes media recovery and processing in detail)

System tablespace management and Backup Recovery

Sysaux tablespace management and recovery

Oracle backup control file recovery (unsing backup controlfile)

 

For information on RMAN backup recovery and management, see

RMAN overview and architecture

RMAN configuration, Monitoring and Management

Detailed description of RMAN backup

RMAN restoration and recovery

Create and use RMAN catalog

Create RMAN storage script based on catalog

Catalog-based RMAN backup and recovery

RMAN backup path confusion

 

For the Oracle architecture, see

Oracle tablespace and data files

Oracle Password File

Oracle parameter file

Oracle online redo log file)

Oracle Control File)

Oracle archiving logs

Oracle rollback and undo)

Oracle database instance startup and Shutdown Process

Automated Management of Oracle 10g SGA

Oracle instances and Oracle databases (Oracle Architecture)

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.