互联网服务NBU7.5

NBU备份状态码为6,查看脚本、机械手、磁带都没有问题,不知道问题在哪,求各位大神指点。?

此为备份脚本!/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-------------------------------------------------------------------------...显示全部

此为备份脚本

!/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_FILE
chmod 666 $RMAN_LOG_FILE

---------------------------------------------------------------------------

Log the start of this script.

---------------------------------------------------------------------------

echo Script $0 >> $RMAN_LOG_FILE
echo ==== started on date ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE

---------------------------------------------------------------------------

Replace /db/oracle/product/ora102, below, with the Oracle home path.

---------------------------------------------------------------------------

ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_HOME

---------------------------------------------------------------------------

Replace ora102, below, with the Oracle SID of the target database.

---------------------------------------------------------------------------

ORACLE_SID=mofit
export ORACLE_SID

---------------------------------------------------------------------------

Replace ora102, below, with the Oracle DBA user id (account).

---------------------------------------------------------------------------

ORACLE_USER=oracle

---------------------------------------------------------------------------

Set the target connect string.

Replace "sys/manager", below, with the target connect string.

---------------------------------------------------------------------------

TARGET_CONNECT_STR=sys/oracle

---------------------------------------------------------------------------

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_FILE
echo "RMAN: $RMAN" >> $RMAN_LOG_FILE
echo "ORACLE_SID: $ORACLE_SID" >> $RMAN_LOG_FILE
echo "ORACLE_USER: $ORACLE_USER" >> $RMAN_LOG_FILE
echo "ORACLE_HOME: $ORACLE_HOME" >> $RMAN_LOG_FILE

---------------------------------------------------------------------------

Print out the value of the variables set by bphdb.

---------------------------------------------------------------------------

echo >> $RMAN_LOG_FILE
echo "NB_ORA_FULL: $NB_ORA_FULL" >> $RMAN_LOG_FILE
echo "NB_ORA_INCR: $NB_ORA_INCR" >> $RMAN_LOG_FILE
echo "NB_ORA_CINC: $NB_ORA_CINC" >> $RMAN_LOG_FILE
echo "NB_ORA_SERV: $NB_ORA_SERV" >> $RMAN_LOG_FILE
echo "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

CMD_STR="
ORACLE_HOME=$ORACLE_HOME
export ORACLE_HOME
ORACLE_SID=$ORACLE_SID
export ORACLE_SID
$RMAN target $TARGET_CONNECT_STR nocatalog msglog $RMAN_LOG_FILE append << EOF
RUN {
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 logs

ALLOCATE 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 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 completion of this script.

---------------------------------------------------------------------------

if [ "$RSTAT" = "0" ]
then

LOGMSG="ended successfully"

else

LOGMSG="ended in error"

fi
echo >> $RMAN_LOG_FILE
echo Script $0 >> $RMAN_LOG_FILE
echo ==== $LOGMSG on date ==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE

exit $RSTAT

收起
参与17

查看其它 3 个回答liuziyi0123的回答

liuziyi0123liuziyi0123系统工程师中移系统集成有限公司

手工先执行下脚本,排除下脚本问题

系统集成 · 2017-11-24
浏览4641

回答者

liuziyi0123
系统工程师中移系统集成有限公司
擅长领域: 服务器系统管理存储

liuziyi0123 最近回答过的问题

回答状态

  • 发布时间:2017-11-24
  • 关注会员:5 人
  • 回答浏览:4641
  • X社区推广