如何刪除Archivelog
?
?
???
Archivelog并不能直接得從OS層直接物理刪除,因?yàn)閍rchivelog的相關(guān)信息是記錄在controlfile中的,當(dāng)物理刪除后不會(huì)改變controlfile的設(shè)置。并且在查詢(xún)相關(guān)的動(dòng)態(tài)視圖(例如v$archived_log)時(shí),該部分日志仍然標(biāo)注為存在。也就是說(shuō)Oracle并不認(rèn)為這些日志被刪除了,所以在刪除archivelog的時(shí)候,需要我們?cè)谄渌胤阶鲆恍┰O(shè)置。
?
?
一、使用RMAN清楚物理刪除后的記錄
?
??? 可以使用RMAN來(lái)刪除archivelog,具體可以按以下步驟操作:
?
??? 1、物理刪除archivelog
??? 2、進(jìn)入RMAN
??? 3、crosscheck archivelog all;
??? 4、delete expried archivelog all;
?
??? 這樣就在一些Oracle的記錄中查不到相應(yīng)的archivelog記錄了。
?
?
二、直接使用RMAN刪除archivelog
?
??? 其實(shí)在RMAN中是可以使用命令直接將ARCHIVELOG刪除的,命令如下:
?
??? RMAN>
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
?
??? 表示刪除7天以前的所有archivelog,但是這個(gè)命令的缺點(diǎn)是無(wú)法對(duì)archivelog進(jìn)行細(xì)致的劃分。
?
?
三、使用RMAN備份aechivelog后刪除
?
??? 這是一種最為穩(wěn)妥的方法了,使用RMAN備份archivelog,備份后全部刪除
?
??? backup format '/u01/arch_%T_%s_%U' archivelog all delete input;
??? 或者
??? backup database plus archivelog;
?
?
??? 注:我在庫(kù)上設(shè)置了Streams后,使用RMAN刪除archivelog會(huì)導(dǎo)致報(bào)錯(cuò)RMAN-08137: WARNING: archive log not deleted as it is still needed. 不知道該如何解決,據(jù)說(shuō)是10.2的一個(gè)bug,如果真是bug的話,那只能在OS層設(shè)置刪除,或用RMAN進(jìn)行強(qiáng)制刪除了。
?
?