2011年3月29日 星期二

如何刪除archivelog,把磁碟空間清理出來?

Oracle 刪除歸檔日誌實例[轉貼]
原文來自 -->飛帆網  http://www.pyoix.com

當Oracle 歸檔日誌滿了後,將無法正常登入Oracle,需要刪除一部分歸檔日誌才能正常登入Oracle。

一、首先刪除歸檔日誌物理文件,歸檔日誌一般都是位於archive目錄下,AIX系統下文件格式爲「1_17884_667758186.dbf」,建議操作前先對數據庫進行備份,刪除時至少保留最近幾天的日誌用於數據庫恢復。

二、把歸檔日誌的物理文件刪除後,我們就可以正常登入Oracle了,但是還沒完全把歸檔日誌刪除幹凈,Oracle的controlfile中仍 然記錄著這些archivelog的信息,在Oracle的OEM管理器中有可視化的日誌展現出,當我們手工清除archive目錄下的文件後,這些記錄 並沒有被我們從controlfile中清除掉,接下去我們要做的就是這個工作。

我們利用RMAN進行刪除操作,操作步驟如下:(WIN客戶端系統爲例)

1.指定數據庫實例

C:\Documents and Settings\Administrator>SET Oracle_SID =orcl

2.連接數據庫

C:\Documents and Settings\Administrator>RMAN TARGET SYS/sysadmin@orcl

3.查看歸檔日誌的狀態

RMAN> list archivelog all;

4.手工刪除歸檔日誌文件

RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

說明:

SYSDATA-7,表明當前的系統時間7天前,before關鍵字表示在7天前的歸檔日誌,如果使用了閃回功能,也會刪除閃回的數據。
同樣道理,也可以刪除從7天前到現在的全部日誌,不過這個命令要考慮清楚,做完這個刪除,最好馬上進行全備份數據庫
DELETE ARCHIVELOG from TIME 'SYSDATE-7'; 刪除從7天前到現在的全部日誌,慎用
UNIX/LINUX下也可以通過FIND找到7天前的歸檔數據,使用EXEC子操作刪除
find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;

這樣做仍然會在RMAN裏留下未管理的歸檔文件

仍需要在RMAN裏執行下面2條命令

crosscheck archivelog all;
delete expired archivelog all;

所以還不如上面的方法好用,不過用FIND的好處就是,可以在條件上,和EXEC子項上做很多操作,實現更復雜的功能。

沒有留言:

搜尋此網誌

本站大事記

這個部落格(網站)內容以分享LINUX和延伸出的技術文章為主!
特別是為了工作和進修需要,搜集了不少網站連結。
希望對來這裡觀文的朋友們,有提供一些有用的資訊或文章。
但這裡的文章中,也包含個人的心情扎記和隨興言談……
若是當中沒有對上你的口味,請多包涵!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!

原「琳娜絲與希斯寇的邂逅」,改名為「愛上琳娜絲」!
--原序文--
就是當LINUX遇上CISCO啦!他們的結合還能作什麼事…不就是讓這個世界的網路,串…串起來啊…不然你們那能上這網站看部落格!