国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Windows平臺(tái)下Oracle數(shù)據(jù)庫備份腳本

tomorrowwu / 2506人閱讀

摘要:以下腳本是我在項(xiàng)目工作中使用的備份腳本,腳本都是自己寫的。簡(jiǎn)介此套腳本可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫實(shí)現(xiàn)全備份和增量備份。綜合以上兩種利弊,比較好的方式是在出現(xiàn)丟失備份或的情況下,通知管理員處置,手工處理之后備份腳本運(yùn)行恢復(fù)正常。

以下腳本是我在項(xiàng)目工作中使用的備份腳本,腳本都是自己寫的。但在使用過程中,感覺還有提供空間,我這個(gè)人有點(diǎn)懶,所以想用將腳本“開源”出來的方式督促自己完善這一套腳本。大家如果對(duì)此腳本有什么建議,隨時(shí)可以提出來大家一起提高。

簡(jiǎn)介

此套腳本可以實(shí)現(xiàn)對(duì)oracle數(shù)據(jù)庫實(shí)現(xiàn)全備份和增量備份。主要由rman_level0.cmd和rman_level1.cmd組成。
其中,rman_level0.cmd引用rman_level0.rcv作為rman命令輸入,rman_level1.cmd引用rman_level1.rcv作為rman命令輸入。

此套腳本使用的目錄結(jié)構(gòu)如下:

其中,

archlog 存放歸檔日志備份

cntrfile 控制文件備份

data 數(shù)據(jù)庫文件備份

log 備份日志

scripts 備份腳本相關(guān)

腳本內(nèi)容

全備腳本

rman_level0.bat

rman target / CMDFILE "D:ackup
man_backupscripts
man_level0.rcv" LOG D:ackup
man_backuploglevel0_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.log

rman_level0.rcv

run {
      sql "alter system archive log current";
      allocate channel c1 type disk;
      backup as compressed backupset
      incremental level 0
      format "D:ackup
man_backupdatalevel0_%T_%t_s%s_p%p" database
      plus archivelog format "D:ackup
man_backuparchlogarchlog_%T_t%t_s%s_p%p" delete input;
      backup format "D:ackup
man_backupcntrfilecontrolfile_%T_s%s_p%p" current controlfile;
      release channel c1;
      crosscheck backup;
      delete noprompt obsolete;
      crosscheck archivelog all;
}
exit;

增量備份腳本

rman_level1.cmd

rman target / CMDFILE "D:ackup
man_backupscripts
man_level1.rcv" LOG D:ackup
man_backuploglevel1_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.log

rman_level1.rcv

run {
      sql "alter system archive log current";
      allocate channel c1 type disk;
      backup as compressed backupset
      incremental level 1
      format "D:ackup
man_backupdatalevel1_%T_%t_s%s_p%p" database
      plus archivelog format "D:ackup
man_backuparchlogarchlog_%T_t%t_s%s_p%p" delete input;
      backup format "D:ackup
man_backupcntrfilecontrolfile_%T_s%s_p%p" current controlfile;
      release channel c1;
      crosscheck backup;
      delete noprompt obsolete;
      crosscheck archivelog all;
}
exit;
存在的問題及解決

rman log中日期字符串的問題

目前日期字符串是使用從date和time命令的輸出中截取需要的字符,組成需要的字符串。

第1種情況,當(dāng)time在0-9時(shí)之間時(shí),字符串輸出如下:

C:UsersYangJia>echo %date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%t
ime:~6,2%
20140119_ 10802

第2中情況,當(dāng)time在10-23之間時(shí),字符串輸出如下:

C:UsersYangJia>echo %date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%t
ime:~6,2%
20140119_230953

這個(gè)時(shí)候問題就出現(xiàn)了,當(dāng)運(yùn)行腳本時(shí)屬于第一種情況,腳本會(huì)認(rèn)為L(zhǎng)OG參數(shù)在"_"之后就結(jié)束了,導(dǎo)致最終生成的日志文件名出現(xiàn)不完整的情況。
解決此問題有兩個(gè)思路,一是將多出來的空格去掉,二是讓cmd認(rèn)為腳本并不是從空格處就結(jié)束 了。
以下針對(duì)兩種思路給出方法:

第一種思路:
將log文件名使用%filename%變量替換,設(shè)置%filename%變量之前,對(duì)日期格式進(jìn)行判斷,然后設(shè)置%filename%內(nèi)容:

set logfile=level0_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%.log
if "%time:~0,1%" == " " ^
set logfile=level0_%date:~0,4%%date:~5,2%%date:~8,2%_0%time:~1,1%%time:~3,2%%time:~6,2%.log

這部分解決有參考http://stackoverflow.com/questions/1192476/windows-batch-script-format-date-and-time

rman中刪除無效備份和archivelog的考慮

rman中刪除無效(expired)備份和archivelog的方式一般步驟是:
1. crosscheck backup &crosscheck archivelog all
2. delete expired backup;
3. delete expired archivelog;

如果將以上操作加入到腳本中,無效(expired)備份和archivelog會(huì)被自動(dòng)清理掉,這樣可能就會(huì)在不知情的情況下導(dǎo)致丟失recovery window中的片段,導(dǎo)致recovery window不完整。

如果不加入備份腳本,在有無效(expired)備份和歸檔日志的情況下,就會(huì)出現(xiàn)備份archivelog失敗導(dǎo)致整個(gè)備份腳本運(yùn)行失敗,可能會(huì)導(dǎo)致歸檔日志不能自動(dòng)清除將磁盤空間占滿。

綜合以上兩種利弊,比較好的方式是:在出現(xiàn)丟失備份或archivelog的情況下,通知管理員處置,手工處理之后備份腳本運(yùn)行恢復(fù)正常。即使真的有archivelog丟失,在管理員已知曉的情況下,可以規(guī)避對(duì)恢復(fù)窗口的影響。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/8683.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<