برای دیتابیس به صورت شبانه Backup Script 
#!/bin/sh 
export RMAN_DIR;RMAN_DIR=/home/oracle/.admin 
export BACKUP=/backup-path/%F 
export ORACLE_SID;ORACLE_SID=MCLSDB 
export ORACLE_HOME;ORACLE_HOME=/u01/oracle/product/11.2.0/db_1 
export PATH;PATH=$PATH:$ORACLE_HOME/bin 
export NLS_LANG;NLS_LANG=american_america.ar8mswin1256 
export dtfmt; dtfmt=`date +%Y%m%d` 
######################################################################## 
rman target / CMDFILE $RMAN_DIR/full_rcv LOG $RMAN_DIR/full.txt 
######################################################################## 
full_rcv: 
RUN 
{ 
CONFIGURE CONTROLFILE AUTOBACKUP ON; 
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '${BACKUP}/${dtfmt} _%F'; 
#we can allocate of a sufficient number of channel based on our SAN capabilities 
ALLOCATE CHANNEL L0C1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt}_L0%u'; 
ALLOCATE CHANNEL L0C2 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID}_${dtfmt}_L0%u'; 
BACKUP INCREMENTAL LEVEL 0 DATABASE; 
ALLOCATE CHANNEL ARC1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt} _Arc%u'; 
BACKUP ARCHIVELOG ALL; 
SQL 'ALTER SYSTEM SWITCH LOGFILE’; 
SQL 'ALTER SYSTEM SWITCH LOGFILE’; 
SQL 'ALTER SYSTEM SWITCH LOGFILE’; 
ALLOCATE CHANNEL ARC1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt} _Arc%u'; 
BACKUP ARCHIVELOG ALL NOT BACKED UP; 
DELETE NOPROMPT OBSOLETE; 
} 
# Check if database can be restored 
RESTORE DATABASE VALIDATE; 
# Check if controlfile can be restored 
RESTORE CONTROLFILE VALIDATE; 
# Check if archive logs for the past time can be restored 
RESTORE ARCHIVELOG ALL VALIDATE;
منتقل شوند بهتر است از فرمان زیر برای انجام پروسه Tape ها به صورت هفتگی و یا چند روز یکبار به Backup در صورتی که 
استفاده شود. Backup 
#!/bin/sh 
export RMAN_DIR;RMAN_DIR=/home/oracle/.admin 
export BACKUP=/backup-path/%F 
export ORACLE_SID;ORACLE_SID=MCLSDB 
export ORACLE_HOME;ORACLE_HOME=/u01/oracle/product/11.2.0/db_1 
export PATH;PATH=$PATH:$ORACLE_HOME/bin 
export NLS_LANG;NLS_LANG=american_america.ar8mswin1256 
export dtfmt; dtfmt=`date +%Y%m%d` 
######################################################################## 
rman target / CMDFILE $RMAN_DIR/full_rcv_new LOG $RMAN_DIR/full.txt 
######################################################################## 
full_rcv: 
RUN 
{ 
CONFIGURE CONTROLFILE AUTOBACKUP ON; 
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup-path/%F'; 
ALLOCATE CHANNEL L0C1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt}_L0%u'; 
ALLOCATE CHANNEL L0C2 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID}_${dtfmt}_L0%u'; 
RECOVER COPY OF DATABASE WITH TAG 'incr_update' UNTIL TIME 'SYSDATE - 7'; 
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE; 
ALLOCATE CHANNEL ARC1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt} _Arc%u'; 
BACKUP ARCHIVELOG ALL; 
DELETE NOPROMPT OBSOLETE; 
}

Backup script

  • 1.
    برای دیتابیس بهصورت شبانه Backup Script #!/bin/sh export RMAN_DIR;RMAN_DIR=/home/oracle/.admin export BACKUP=/backup-path/%F export ORACLE_SID;ORACLE_SID=MCLSDB export ORACLE_HOME;ORACLE_HOME=/u01/oracle/product/11.2.0/db_1 export PATH;PATH=$PATH:$ORACLE_HOME/bin export NLS_LANG;NLS_LANG=american_america.ar8mswin1256 export dtfmt; dtfmt=`date +%Y%m%d` ######################################################################## rman target / CMDFILE $RMAN_DIR/full_rcv LOG $RMAN_DIR/full.txt ######################################################################## full_rcv: RUN { CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '${BACKUP}/${dtfmt} _%F'; #we can allocate of a sufficient number of channel based on our SAN capabilities ALLOCATE CHANNEL L0C1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt}_L0%u'; ALLOCATE CHANNEL L0C2 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID}_${dtfmt}_L0%u'; BACKUP INCREMENTAL LEVEL 0 DATABASE; ALLOCATE CHANNEL ARC1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt} _Arc%u'; BACKUP ARCHIVELOG ALL; SQL 'ALTER SYSTEM SWITCH LOGFILE’; SQL 'ALTER SYSTEM SWITCH LOGFILE’; SQL 'ALTER SYSTEM SWITCH LOGFILE’; ALLOCATE CHANNEL ARC1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt} _Arc%u'; BACKUP ARCHIVELOG ALL NOT BACKED UP; DELETE NOPROMPT OBSOLETE; } # Check if database can be restored RESTORE DATABASE VALIDATE; # Check if controlfile can be restored RESTORE CONTROLFILE VALIDATE; # Check if archive logs for the past time can be restored RESTORE ARCHIVELOG ALL VALIDATE;
  • 2.
    منتقل شوند بهتراست از فرمان زیر برای انجام پروسه Tape ها به صورت هفتگی و یا چند روز یکبار به Backup در صورتی که استفاده شود. Backup #!/bin/sh export RMAN_DIR;RMAN_DIR=/home/oracle/.admin export BACKUP=/backup-path/%F export ORACLE_SID;ORACLE_SID=MCLSDB export ORACLE_HOME;ORACLE_HOME=/u01/oracle/product/11.2.0/db_1 export PATH;PATH=$PATH:$ORACLE_HOME/bin export NLS_LANG;NLS_LANG=american_america.ar8mswin1256 export dtfmt; dtfmt=`date +%Y%m%d` ######################################################################## rman target / CMDFILE $RMAN_DIR/full_rcv_new LOG $RMAN_DIR/full.txt ######################################################################## full_rcv: RUN { CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup-path/%F'; ALLOCATE CHANNEL L0C1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt}_L0%u'; ALLOCATE CHANNEL L0C2 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID}_${dtfmt}_L0%u'; RECOVER COPY OF DATABASE WITH TAG 'incr_update' UNTIL TIME 'SYSDATE - 7'; BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE; ALLOCATE CHANNEL ARC1 DEVICE TYPE DISK FORMAT '${BACKUP}/${ORACLE_SID} _${dtfmt} _Arc%u'; BACKUP ARCHIVELOG ALL; DELETE NOPROMPT OBSOLETE; }