利用SHELL腳本來驗(yàn)證Oracle數(shù)據(jù)庫RMAN備份集的有效性
作者:趙全文 網(wǎng)名:guestart
我們生產(chǎn)環(huán)境的Oracle數(shù)據(jù)庫都做了RMAN備份,是采用了一周的RMAN備份保留策略;除了使用RMAN備份以外,我們還使用了愛數(shù)(Eisoo)備份軟件來進(jìn)行備份,可以說是做到了有備無患。可是,如果有一天,Oracle數(shù)據(jù)庫由于主機(jī)層面硬件原因或是數(shù)據(jù)庫層面的原因不能對外提供高可用服務(wù)的時(shí)候,假設(shè)數(shù)據(jù)丟了一大部分,我們只有用RMAN備份來進(jìn)行恢復(fù),再如果發(fā)現(xiàn),RMAN備份失效了,那就往地縫里鉆和哭暈在廁所都于事無補(bǔ)了。
為了防止這一幕的出現(xiàn),就需要對Oracle數(shù)據(jù)庫RMAN備份集的有效性進(jìn)行驗(yàn)證。為此,我專門寫了一個(gè)SHELL腳本用來驗(yàn)證RMAN備份集的有效性,將該腳本文件放在了crontab的計(jì)劃任務(wù)里,讓其在每天晚上21點(diǎn)自動(dòng)運(yùn)行,目的是驗(yàn)證前一天生成的RMAN備份集的有效性。
現(xiàn)在,用線上的一套Oracle數(shù)據(jù)庫生產(chǎn)環(huán)境,來演示操作。
首先,查看最近的一次RMAN全備,如下圖所示,
接下來,查看一下生成的校驗(yàn)RMAN備份集有效性的LOG文件,見下圖,
我們就以查看2017年3月3日生成的LOG文件為例,下面是執(zhí)行SHELL腳本驗(yàn)證的結(jié)果,見下圖所示,
截圖一,
我們發(fā)現(xiàn),上面首先校驗(yàn)的是3月2日生成的增量備份里的歸檔日志備份集,
截圖二,
緊接著,是校驗(yàn)增量1級備份生成的備份集和最后手動(dòng)歸檔以及備份的歸檔日志備份集,
截圖三,
由于在RMAN的參數(shù)設(shè)置中開啟了控制文件的自動(dòng)備份功能,所以最后備份的是控制文件,那么最后校驗(yàn)的也是控制文件了,嘿嘿!
俗話說的好,“工欲善其事,必先利其器”!最后著重介紹一下,rman_validate_v2.sh 這個(gè)驗(yàn)證RMAN備份集有效性的SHELL腳本的具體內(nèi)容,
由于腳本內(nèi)容過多,下面分三個(gè)部分來說明,見圖1,
依次解釋一下,幾個(gè)紅色方框標(biāo)注的地方,
(1)個(gè)人簡介,包括姓名,Emai郵箱,技術(shù)博客網(wǎng)址;
(2) SHELL腳本文件名;
(3) 最近修改日期;
(4)該SH腳本使用的注意事項(xiàng),當(dāng)然是先確保在測試環(huán)境上測試通過以后,在放到生產(chǎn)環(huán)境中使用啦。
見圖2,
圖2,有3個(gè)紅色方框,方框1是定義在腳本中要使用的SHELL外部命令所在的絕對路徑,每種Linux操作系統(tǒng)上所在的路徑有可能不同,盡量要使用“which 想要使用的命令名”來查找一下,然后寫到上面,通常把要使用的都要寫上去;方框2是定義了一些有關(guān)路徑的字符串變量和普通字符串變量以及SHELL命令用一對反引號(鍵盤上ESC鍵下面和數(shù)字1鍵左邊的那個(gè)鍵)括起來的字符串變量(注意:只有用反引號括起來才能生成SHELL命令的執(zhí)行結(jié)果);方框3是使用SQLPLUS命令連接到Oracle數(shù)據(jù)庫以后,通過查詢視圖V$BACKUP_SET_DETAILS來找出前一天生成的RMAN備份集當(dāng)中所有的BS_KEY值,然后保存到一個(gè)字符串變量BSKEY_LIST。
見圖3,
圖3有2個(gè)紅色方框需要特別說明,方框1是通過強(qiáng)大AWK命令將字符串變量BSKEY_LIST的值“6046 6047 6048 6049 6050 6051 6052”的中間加一個(gè)逗號(所以我把方框1的字符串變量命名為BSKEY_LIST_WITH_COMMA,意即帶逗號的BSKEY_LIST),形如這種格式,“6046,6047,6048,6049,6050,6051,6052”;方框2是在最后進(jìn)入RMAN命令行,校驗(yàn)RMAN備份集有效性的語句,validate backupset后面緊跟的就是帶逗號的BS_KEY值列表,形如這種格式,“validate backupset6046,6047,6048,6049,6050,6051,6052 check logical;”其實(shí),也可以使用一個(gè)FOR循環(huán)來將字符串變量BSKEY_LIST的值一個(gè)一個(gè)讀出,然后執(zhí)行一次validate backupset 6046 check logical;再取一個(gè)值,再執(zhí)行一次validatebackupset 6047 check logical;直到都把字符變量BSKEY_LIST的值取完為止,那樣的話,就不用定義前面那個(gè)字符串變量BSKEY_LIST_WITH_COMMA了。看個(gè)人喜好,我覺得帶逗號這種方式,個(gè)人比較喜歡和推薦使用。
我把rman_validate_v2.sh這個(gè)腳本放在了GitHub上,網(wǎng)址為
https://github.com/guestart/rman_validate/blob/master/rman_validate_v2.sh,如果需要下載即可。
如您覺得此篇文章對您有幫助,歡迎關(guān)注微信公眾號:guestart的DBA學(xué)習(xí)筆記,您的支持是對我大的鼓勵(lì)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞名稱:利用SHELL腳本來驗(yàn)證Oracle數(shù)據(jù)庫RMAN備份集的有效性-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://chinadenli.net/article20/ehhco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航、響應(yīng)式網(wǎng)站、微信公眾號、服務(wù)器托管、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容