内容发布更新时间 : 2024/12/27 18:00:27星期一 下面是文章的全部内容请认真阅读。
# ---------------------------------------------------------------------------
# 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=\
# BACKUP_TYPE=\#
# 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 [ \then
echo \ BACKUP_TYPE=\
elif [ \then
echo \ BACKUP_TYPE=\
elif [ \then
echo \
BACKUP_TYPE=\
elif [ \then
echo \ BACKUP_TYPE=\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 # 'rcvcat
# 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 TNS ALIAS: When connecting to a database
# using a TNS alias, 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_HOME export ORACLE_HOME ORACLE_SID=$ORACLE_SID export ORACLE_SID
$RMAN target / nocatalog msglog $RMAN_LOG_FILE append << EOF RUN {
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE'; SEND 'NB_ORA_POLICY=aix_ora_full'; BACKUP
$BACKUP_TYPE SKIP INACCESSIBLE TAG hot_db_bk_level0 FILESPERSET 30
# recommended format FORMAT 'bk_%s_%p_%t' DATABASE;
sql 'alter system archive log current'; RELEASE CHANNEL ch00; # backup all archive logs
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE'; SEND 'NB_ORA_POLICY=aix_ora_full'; BACKUP
filesperset 20
FORMAT 'al_%s_%p_%t'
ARCHIVELOG ALL DELETE INPUT; RELEASE CHANNEL ch00; #
# 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 \# Too 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. #
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE'; BACKUP
# recommended format FORMAT 'cntrl_%s_%p_%t' CURRENT CONTROLFILE; RELEASE CHANNEL ch00;
ALLOCATE CHANNEL ch00 TYPE DISK ; COPY
CURRENT CONTROLFILE to '/usr/openv/controlfile/control.ora'; RELEASE CHANNEL ch00; } EOF \
# Initiate the command string
if [ \then
su - $ORACLE_USER -c \ RSTAT=$? else
/usr/bin/sh -c \ RSTAT=$? fi
# --------------------------------------------------------------------------- # Log the completion of this script.
# ---------------------------------------------------------------------------
if [ \then
LOGMSG=\
/usr/openv/netbackup/bin/bpbackup -p oracle_control_file -s /usr/openv/controlfile/control.ora else
user -t 0