Oracle Policy For NBU,policynbu
Theory:NBU use a automatic script to connect RMAN and backup database
Steps:
First,make a automatic script.
Second,build a oracle policy
First:
Make a automatic script.NBU has provide some scripts on it's client directory
You can find it in /usr/openv/netbackup/ext/db_ext/oracle/samples/rman/
I choose a hot backup way to do this test:hot_database_backup.sh
You should change some variable which is be marked.
[root@nbuserver rman]# cat hot_database_backup.sh#!/bin/sh# $Header: hot_database_backup.sh,v 1.3 2010/08/04 17:56:02 $##bcpyrght#***************************************************************************#* $VRTScprght: Copyright 1993 – 2012 Symantec Corporation, All Rights Reserved $ *#***************************************************************************#ecpyrght## —————————————————————————# hot_database_backup.sh# —————————————————————————# This script uses Recovery Manager to take a hot (inconsistent) database# backup. A hot backup is inconsistent because portions of the database are# being modified and written to the disk while the backup is progressing.# You must run your database in ARCHIVELOG mode to make hot backups. It is# assumed that this script will be executed by user root. In order for RMAN# to work properly we switch user (su -) to the oracle dba account before# execution. If this script runs under a user account that has Oracle dba# privilege, it will be executed using this user's account.# —————————————————————————# —————————————————————————# Determine the user which is executing this script.# —————————————————————————CUSER=`id |cut -d"(" -f2 | cut -d ")" -f1`# —————————————————————————# Put output in <this file name>.out. Change as desired.# Note: output directory requires write permission.# —————————————————————————RMAN_LOG_FILE=${0}.out# —————————————————————————# 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" ]then rm -f "$RMAN_LOG_FILE"fi# —————————————————————–# 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# —————————————————————————# Replace /db/oracle/product/ora102, below, with the Oracle home path.# —————————————————————————ORACLE_HOME=/db/oracle/product/ora102export ORACLE_HOME# —————————————————————————# Replace ora102, below, with the Oracle SID of the target database.# —————————————————————————ORACLE_SID=ora102export ORACLE_SID# —————————————————————————# Replace ora102, below, with the Oracle DBA user id (account).# —————————————————————————ORACLE_USER=ora102# —————————————————————————# Set the target connect string.# Replace "sys/manager", below, with the target connect string.# —————————————————————————TARGET_CONNECT_STR=sys/manager# —————————————————————————# 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 is# —————- ————–# 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, uncomment# 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=0"fi# —————————————————————————# Call Recovery Manager to initiate the backup. This example does not use a# Recovery Catalog. If you choose to use one, replace the option 'nocatalog'# from the rman command line below with the# 'catalog <userid>/<passwd>@<net service name>' statement.## Note: Any environment variables needed at run time by RMAN# must be set and exported within the switch user (su) command.# —————————————————————————# Backs up the whole database. This backup is part of the incremental# strategy (this means it can have incremental backups of levels > 0# applied to it).## We do not need to explicitly request the control file to be included# in this backup, as it is automatically included each time file 1 of# the system tablespace is backed up (the inference: as it is a whole# database backup, file 1 of the system tablespace will be backed up,# hence the controlfile will also be included automatically).## Typically, a level 0 backup would be done at least once a week.## The scenario assumes:# o you are backing your database up to two tape drives# o you want each backup set to include a maximum of 5 files# o you wish to include offline datafiles, and read-only tablespaces,# in the backup# o you want the backup to continue if any files are inaccessible.# o you are not using a Recovery Catalog# o you are explicitly backing up the control file. Since you are# specifying nocatalog, the controlfile backup that occurs# automatically as the result of backing up the system file is# not sufficient; it will not contain records for the backup that# is currently in progress.# o you want to archive the current log, back up all the# archive logs using two channels, putting a maximum of 20 logs# in a backup set, and deleting them once the backup is complete.## Note that the format string is constructed to guarantee uniqueness and# to enhance NetBackup for Oracle backup and restore performance.### NOTE WHEN USING NET SERVICE NAME: When connecting to a database# using a net service name, you must use a send command or a parms operand to# specify environment variables. In other words, when accessing a database# through a listener, the environment variables set at the system level are not# visible when RMAN is running. For more information on the environment# variables, please refer to the NetBackup for Oracle Admin. Guide.## —————————————————————————CMD_STR="ORACLE_HOME=$ORACLE_HOMEexport ORACLE_HOMEORACLE_SID=$ORACLE_SIDexport ORACLE_SID$RMAN target $TARGET_CONNECT_STR nocatalog msglog $RMAN_LOG_FILE append << EOFRUN {ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';BACKUP $BACKUP_TYPE SKIP INACCESSIBLE TAG hot_db_bk_level0 FILESPERSET 5 # recommended format FORMAT 'bk_%s_%p_%t' DATABASE; sql 'alter system archive log current';RELEASE CHANNEL ch00;RELEASE CHANNEL ch01;# backup all archive logsALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';BACKUP filesperset 20 FORMAT 'al_%s_%p_%t' ARCHIVELOG ALL DELETE INPUT;RELEASE CHANNEL ch00;RELEASE CHANNEL ch01;## Note: During the process of backing up the database, RMAN also backs up the# control file. This version of the control file does not contain the# information about the current backup because "nocatalog" has been specified.# To include the information about the current backup, the control file should# be backed up as the last step of the RMAN section. This step would not be# necessary if we were using a recovery catalog or auto control file backups.#ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';BACKUP # recommended format FORMAT 'cntrl_%s_%p_%t' CURRENT CONTROLFILE;RELEASE CHANNEL ch00;}EOF"# Initiate the command stringif [ "$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 completion of this script.# —————————————————————————if [ "$RSTAT" = "0" ]then LOGMSG="ended successfully"else LOGMSG="ended in error"fiecho >> $RMAN_LOG_FILEecho Script $0 >> $RMAN_LOG_FILEecho ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILEecho >> $RMAN_LOG_FILEexit $RSTAT
Ok ,after change this value.we can put it anywhere.but you had better remember it's path
Second:
We should build a Oracle policy
On the Netbackup Administration Console:
click policies>new policy you should give a name
on this panel.choose oracle policy type.and choose your storage.then new a schedules.I choose Automatic full backup
and then new a client.
The last and important.In the Backup Selections.you should add a path which direct to the scirpt.
ok.let's do a test.
click policy name.choose manual backup.you can go Activity Monitor to monitor your job.