NBU備份windows系統資料庫無法產生備份日誌情況解決

super_sky發表於2013-12-13
這幾天在巡檢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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章