【正文】
If this script runs under a user account that has Oracle dba privilege, it will be executed using this user39。s account. Determine the user which is executing this script. CUSER=`id |cut d( f2 | cut d ) f1` 如果日志大于 10MB 就清空. RMAN_LOG_FILE=${0}.outSYMANTEC NBU 項(xiàng)目組 You may want to delete the output file so that backup information does not accumulate. If not, delete the following lines. if [ f $RMAN_LOG_FILE ]thenfind ./ name $RMAN_LOG_FILE size +10240k | xargs rm ffi Initialize the log file. echo $RMAN_LOG_FILEchmod 666 $RMAN_LOG_FILE Log the start of this script. echo Script $0 $RMAN_LOG_FILEecho ==== started on `date` ==== $RMAN_LOG_FILEecho $RMAN_LOG_FILE 需要備份的數(shù)據(jù)庫 ORACLE_HOME ORACLE_HOME=/home/db/oracle/product/export ORACLE_HOME 需要備份的數(shù)據(jù)庫 ORACLE_SID ORACLE_SID=odsbcidbexport ORACLE_SID 需要備份的數(shù)據(jù)庫的 oracle 用戶 ORACLE_USER=oracle Set the target connect string.SYMANTEC NBU 項(xiàng)目組 Replace sys/manager, below, with the target connect string. TARGET_CONNECT_STR=/ Set the Oracle Recovery Manager name. RMAN=$ORACLE_HOME/bin/rman Print out the value of the variables set by this script. echo $RMAN_LOG_FILEecho RMAN: $RMAN $RMAN_LOG_FILEecho ORACLE_SID: $ORACLE_SID $RMAN_LOG_FILEecho ORACLE_USER: $ORACLE_USER $RMAN_LOG_FILEecho ORACLE_HOME: $ORACLE_HOME $RMAN_LOG_FILE Print out the value of the variables set by bphdb. echo $RMAN_LOG_FILEecho NB_ORA_FULL: $NB_ORA_FULL $RMAN_LOG_FILEecho NB_ORA_INCR: $NB_ORA_INCR $RMAN_LOG_FILEecho NB_ORA_CINC: $NB_ORA_CINC $RMAN_LOG_FILEecho NB_ORA_SERV: $NB_ORA_SERV $RMAN_LOG_FILEecho NB_ORA_POLICY: $NB_ORA_POLICY $RMAN_LOG_FILE NOTE: This script assumes that the database is properly opened. If desired, this would be the place to verify that. echo $RMAN_LOG_FILE If this script is executed from a NetBackup schedule, NetBackup sets an NB_ORA environment variable based on the schedule type. The NB_ORA variable is then used to dynamically set BACKUP_TYPE For example, when: schedule type is BACKUP_TYPE isSYMANTEC NBU 項(xiàng)目組 Automatic Full INCREMENTAL LEVEL=0 Automatic Differential Incremental INCREMENTAL LEVEL=1 Automatic Cumulative Incremental INCREMENTAL LEVEL=1 CUMULATIVE For user initiated backups, BACKUP_TYPE defaults to incremental level 0 (full). To change the default for a user initiated backup to incremental or incremental cumulative, unment one of the following two lines. BACKUP_TYPE=INCREMENTAL LEVEL=1 BACKUP_TYPE=INCREMENTAL LEVEL=1 CUMULATIVE Note that we use incremental level 0 to specify full backups. That is because, although they are identical in content, only the incremental level 0 backup can have incremental backups of level 0 applied to it. if [ $NB_ORA_FULL = 1 ]then echo Full backup requested $RMAN_LOG_FILE BACKUP_TYPE=INCREMENTAL LEVEL=0 elif [ $NB_ORA_INCR = 1 ]then echo Differential incremental backup requested $RMAN_LOG_FILE BACKUP_TYPE=INCREMENTAL LEVEL=1 elif [ $NB_ORA_CINC = 1 ]then echo Cumulative incremental backup requested $RMAN_LOG_FILE BACKUP_TYPE=INCREMENTAL LEVEL=1 CUMULATIVE elif [ $BACKUP_TYPE = ]then echo Default Full backup requested $RMAN_LOG_FILE BACKUP_TYPE=INCREMENTAL LEVEL=0fiCMD_STR=ORACLE_HOME=$ORACLE_HOMEexport ORACLE_HOMEORACLE_SID=$ORACLE_SIDSYMANTEC NBU 項(xiàng)目組export ORACLE_SID$RMAN target $TARGET_CONNECT_STR nocatalog msglog $RMAN_LOG_FILE append EOFRUN { backup all archive logsALLOCATE CHANNEL ch00 TYPE 39。SBT_TAPE39。SEND 39。NB_ORA_POLICY=XXDB3900ORA2LOG, NB_ORA_CLIENT=XXDB3900_SVC39。 sql 39。alter system archive log current39。BACKUP filesperset 20 FORMAT 39。al_%s_%p_%t39。 ARCHIVELOG ALL DELETE INPUT。RELEASE CHANNEL ch00。 Make a disk copy of current controlfile then backup it into backup.ALLOCATE CHANNEL ch00 TYPE DISK。COPY CURRENT CONTROLFILE TO 39。/home/db/oracle/BKB_Scripts/39。RELEASE CHANNEL ch00。}EOF Initiate the mand 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 Log the pletion of this script. if [ $RSTAT = 0 ]thenLOGMSG=ended successfully 調(diào)用備份命令備份 controlfile 的副本/usr/openv/backup/bin/bpbackup p ORAHOSTORACFG s ORAHOSTORACFGUSRBK /home/db/oracle/BKB_Scripts/SYMANTEC NBU 項(xiàng)目組else LOGMSG=ended in error fiecho $RMAN_LOG_FILEecho Script $0 $RMAN_LOG_FILEecho ==== $LOGMSG on `date` ==== $RMAN_LOG_FILEecho $RMAN_LOG_FILEecho $RMAN_LOG_FILE exit $RSTAT 數(shù)據(jù)庫備份策略oracle 備份需要設(shè)置三個(gè)備份策略,分別是:? 數(shù)據(jù)庫備份策略:備份 oracle 全庫或者增量備份。? 歸檔日志備份策略:備份歸檔日志。? Control file 備份策略:備份 oracle 控制文件。首先創(chuàng)建數(shù)據(jù)庫備份策略。 新建備份策略策略名稱按照《集中備份項(xiàng)目備份策略表》進(jìn)行設(shè)定。SYMANTEC NBU 項(xiàng)目組 設(shè)置屬性策略名稱和存儲(chǔ)單元根據(jù)《集中備份項(xiàng)目備份策略表》設(shè)置。Policy Type:選擇“Oracle” 。Policy Volume Pool:PTL0011BKPDB 。 設(shè)置 schedule 修改 DefaultApplicationBackup? 創(chuàng)建oracle類型備份策略時(shí)會(huì)生成一個(gè)schedule :DefaultApplicationBackup ,需要把它的名稱修改為PolicyNameDefault,例如:XXDB3900ORA1BKPDefault。? 根據(jù)《集中備份項(xiàng)目備份策略表》修改保存周期。? 如果《集中備份項(xiàng)目備份策略表》中規(guī)定的備份拷貝數(shù)量為 2,需要設(shè)置”Multiple copies”。SYMANTEC NBU 項(xiàng)目組 創(chuàng)建數(shù)據(jù)庫備份 scheduleSchedule 的名稱和備份窗口屬性請(qǐng)根據(jù)《集中備份項(xiàng)目備份策略表》進(jìn)行設(shè)定。全備份選擇”Automatic full backup”。 增量備份選擇”Automatic differential incremental backup”。備份時(shí)間窗口:如果分行沒有特殊要求,請(qǐng)按照《集中備份項(xiàng)目備份策略表》進(jìn)行設(shè)置。SYMANTEC NBU 項(xiàng)目組配置完成SYMANTEC NBU 項(xiàng)目組 設(shè)置備份客戶端注意:在集群情況下,客戶端名填寫服務(wù)主機(jī)名。 設(shè)置備份內(nèi)容輸入數(shù)據(jù)庫備份腳本的絕對(duì)路徑。SYMANTEC NBU 項(xiàng)目組 歸檔日志備份策略 新建備份策略按照《集中備份項(xiàng)目備份策略表》設(shè)定策略名稱。 設(shè)置屬性按照《集中備份項(xiàng)目備份策略表 》設(shè)定策略名稱、存儲(chǔ)單元和 volume pool。Policy Type:選擇“Oracle” 。把 Jo