这几天在巡检windows主机的数据库时,发现备份没有产生相关备份日志,这个虽然不是问题,但对于备份故障我们将缺少十分有用的诊断信息。
其实,这个问题很容易解决。我们先来看看备份脚本。
截取脚本的部分如下:
@(
echo RUN {
echo ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';
echo ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';
echo SEND 'NB_ORA_POLICY=mss-db1_arch_bk';
echo sql 'alter system archive log current';
echo BACKUP
echo FILESPERSET 20
echo FORMAT 'arch-s%%s-p%%p-t%%t'
echo ARCHIVELOG ALL DELETE INPUT;
echo RELEASE CHANNEL ch00;
echo RELEASE CHANNEL ch01;
echo }
) >c:\rman_cmd1.txt
#上面是把信息输入到c:\rman_cmd1.txt文件,然后通过下面的语句来调用。
@%RMAN% target %TARGET_CONNECT_STR% nocatalog msglog '%RMAN_LOG_FILE%' append
#检查c:\没有产生rman_cmd1.txt文件,这个是否是没有产生日志的原因呢?我还不确定,在别的机器也是同样的脚本是可以产生日志的,因此不确定是否这个原因。
其他机器是可以在C盘产生rman_cmd1.txt文件的。
下面测试了一个解决方案
设置一个指定本地的临时脚本变量
@set TMPFILE="%~dpn0.tmp"
脚本修改如下:
@(
echo RUN {
echo ALLOCATE CHANNEL ch00 TYPE 'disk';
echo BACKUP
@REM recommended format
echo FORMAT 'G:\cntrl_%s_%p_%t'
echo CURRENT CONTROLFILE;
echo RELEASE CHANNEL ch00;
echo }
) > %TMPFILE%
#将脚本信息输入到指定的临时文件
@%RMAN% target %TARGET_CONNECT_STR% nocatalog msglog '%RMAN_LOG_FILE%' append
经过测试,这样是可以产生备份日志的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11590946/viewspace-1063143/,如需转载,请注明出处,否则将追究法律责任。