此为备份脚本
CUSER=id |cut -d"(" -f2 | cut -d ")" -f1
RMAN_LOG_FILE=${0}.out
if [ -f "$RMAN_LOG_FILE" ]
then
rm -f "$RMAN_LOG_FILE"
fi
echo >> $RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
echo Script $0 >> $RMAN_LOG_FILE
echo ==== started on date
==== >> $RMAN_LOG_FILE
echo >> $RMAN_LOG_FILE
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_HOME
ORACLE_SID=mofit
export ORACLE_SID
ORACLE_USER=oracle
TARGET_CONNECT_STR=sys/oracle
RMAN=$ORACLE_HOME/bin/rman
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
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
echo >> $RMAN_LOG_FILE
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;
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;
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';
BACKUP
# recommended format
FORMAT 'cntrl_%s_%p_%t'
CURRENT CONTROLFILE;
RELEASE CHANNEL ch00;
}
EOF
"
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
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
"查看脚本、机械手、磁带都没有问题",如何判断的,可以贴出来大家一起帮忙判读。而且还有NBU软件管理控制台本身,NBU的agent这2个环节是否查过?
另: http://blog.csdn.net/naguang/article/details/8263316
symantec NBU 备份 status 6
Ø6:未找到备份文件,一般是路径出错,或者是数据库实例配置问题
情景1:
最有可能是手工删除了归档日志,导致备份是找不到文件
可以使用rman crosscheck 一下
rman target /
crosscheck archivelog all;
crosscheck backup;
情景2:
当备份sap的数据库oracle,使用brtools 备份数据库,br使用的是alter database begin backup 命令,然后拷贝相应的数据文件,当备份完毕会自动执行end backup,但是如果异常中断了备份,脚本没有执行end backup ,下次在启动备份就会报6号错误
可以检查数据库的v$backup 视图,查看状态,如果是active说明没有end backup,按文件执行end backup或是全库end backup ,alter database end backup;
情景3:
oracle数据库升级,导致备份失效,因为NBU 调用的是rman备份数据库,升级后有新的lib库,需要重新link一下lib才可以
关于link问题可以参看:
http://blog.csdn.net/naguang/article/details/7988425
情景4:
备份脚本没有执行的权限
chmod u+x script.sh
错误日志:
2012/12/06 17:38:38 - end writing
2012/12/06 17:48:04 - Error bpbrm(pid=3616) from client S1PD56: ERR - Script exited with status = 29 <failed trying to exec a command>
2012/12/06 17:48:05 - Error bpbrm(pid=3616) from client S1PD56: ERR - bphdb exit status = 6: the backup failed to back up the requested files
the backup failed to back up the requested files(6)
1.数据库平台是多少?DB2?
2.操作系统平台是多少?AIX?
3.如果是以前创建的策略,以前都执行正常,今天偶然报错,要考虑是否修改了DB2用户的密码;
4.如果是新创建的策略,建议首先使用DB2用户登录操作系统,手动执行备份脚本,查看是否执行成功;
5.另外,对于新创建的策略,要考虑到备份脚本是否有执行权限。
1,检查备份日志及数据库脚本日志;
2.检查数据库脚本是否正确,排除性脚本权限问题。