互联网服务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 个回答updater_aix的回答

updater_aixupdater_aix存储工程师CGN

1.数据库平台是多少?DB2?
2.操作系统平台是多少?AIX?
3.如果是以前创建的策略,以前都执行正常,今天偶然报错,要考虑是否修改了DB2用户的密码;
4.如果是新创建的策略,建议首先使用DB2用户登录操作系统,手动执行备份脚本,查看是否执行成功;
5.另外,对于新创建的策略,要考虑到备份脚本是否有执行权限。

能源采矿 · 2017-11-24
浏览4805
lp0618 邀答
  • 数据库是oracle11.02,操作系统是reht6.8,手动执行备份脚本,没有任何输出,应该是脚本有问题,权限方面我设置的是777.
    2017-11-24
  • 1.RMAN脚本中使用的SYS用户? 2.这是老策略,还是新策略?
    2017-11-24
  • sys用户,备份脚本已贴出,烦请查看
    2017-11-27

回答者

updater_aix
存储工程师CGN
擅长领域: 存储备份软件定义存储

updater_aix 最近回答过的问题

回答状态

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