ITPub博客

首页 > 数据库 > Oracle > NBU备份windows系统数据库无法产生备份日志情况解决

NBU备份windows系统数据库无法产生备份日志情况解决

原创 Oracle 作者:super_sky 时间:2013-12-13 09:11:19 0 删除 编辑
这几天在巡检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 <%TMPFILE%

经过测试,这样是可以产生备份日志的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11590946/viewspace-1063143/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-01-11

  • 博文量
    77
  • 访问量
    807923