客戶數(shù)據(jù)庫的備份壞了,同事采取的策略是每天定期的用腳本刪除歸檔。于是,當(dāng)備份恢復(fù)的時(shí)候,需要做一次crosscheck,以便驗(yàn)證那些歸檔是validate的,于是可怕的事情發(fā)生了:crosscheck運(yùn)行了1小時(shí),還是沒動(dòng)靜——需要crosscheck的日志太多了!!
查了一下文檔,原來crosscheck archivelog all,除了all參數(shù),還是有很多選項(xiàng)可以添加的:
like參數(shù):
RMAN> crosscheck archivelog like '%22%';
釋放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=16 devtype=DISK
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/Oracle/ARCH/ARC00022.001 記錄 ID=8 時(shí)間戳 =654901749
已交叉檢驗(yàn)的 1 對(duì)象
范圍參數(shù)-until time:
RMAN> crosscheck archivelog until time="to_date('2008-5-20','yyyy-mm-dd')";
釋放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=16 devtype=DISK
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00020.001 記錄 ID=6 時(shí)間戳 =654686206
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00021.001 記錄 ID=7 時(shí)間戳 =654827494
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00022.001 記錄 ID=8 時(shí)間戳 =654901749
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00023.001 記錄 ID=9 時(shí)間戳 =654916924
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00024.001 記錄 ID=10 時(shí)間戳 =654980270
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00025.001 記錄 ID=11 時(shí)間戳 =654985482
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00026.001 記錄 ID=12 時(shí)間戳 =654986264
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00027.001 記錄 ID=13 時(shí)間戳 =655157701
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00028.001 記錄 ID=14 時(shí)間戳 =655406579
已交叉檢驗(yàn)的 9 對(duì)象
范圍參數(shù)-from time:
RMAN> crosscheck archivelog from time="to_date('2008-5-20','yyyy-mm-dd')";
釋放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=16 devtype=DISK
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00028.001 記錄 ID=14 時(shí)間戳 =655406579
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00029.001 記錄 ID=15 時(shí)間戳 =655472860
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00030.001 記錄 ID=16 時(shí)間戳 =655478738
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00031.001 記錄 ID=17 時(shí)間戳 =655479620
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00032.001 記錄 ID=18 時(shí)間戳 =655479984
已交叉檢驗(yàn)的 5 對(duì)象
范圍參數(shù)-from time until time:
RMAN> crosscheck archivelog from time="to_date('2008-5-20','yyyy-mm-dd')" until time="to_date('2008-5-23','yyyy-mm-dd')";
釋放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=16 devtype=DISK
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00028.001 記錄 ID=14 時(shí)間戳 =655406579
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00029.001 記錄 ID=15 時(shí)間戳 =655472860
已交叉檢驗(yàn)的 2 對(duì)象
范圍參數(shù)-time between and:
RMAN> crosscheck archivelog time between "to_date('2008-5-20','yyyy-mm-dd')" and "to_date('2008-5-23','yyyy-mm-dd')";
釋放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=16 devtype=DISK
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00028.001 記錄 ID=14 時(shí)間戳 =655406579
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00029.001 記錄 ID=15 時(shí)間戳 =655472860
已交叉檢驗(yàn)的 2 對(duì)象
范圍參數(shù)-time between and:
RMAN> crosscheck archivelog time between "to_date('2008-5-20','yyyy-mm-dd')" and "to_date('2008-5-23','yyyy-mm-dd')";
釋放的通道: ORA_DISK_1
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=16 devtype=DISK
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00028.001 記錄 ID=14 時(shí)間戳 =655406579
對(duì)歸檔日志的驗(yàn)證失敗
存檔日志文件名 =D:/ORACLE/ARCH/ARC00029.001 記錄 ID=15 時(shí)間戳 =655472860
已交叉檢驗(yàn)的 2 對(duì)象
以上的例子把time換成scn或者sequence也行。
最后,用time between and 的方法慢慢刪除,終于把8萬多個(gè)歸檔日志刪除了……看來手冊(cè)還是要多看,不然一下子就忘記了語法。
新聞熱點(diǎn)
疑難解答
圖片精選