當Oracle中的歸檔日志空間滿時,則需要把它清空,否則将會影響資料庫正常運作,
将無法正常登入ORACLE,需要删除一部分歸檔日志才能正常登入ORACLE。
一、首先删除歸檔日志實體檔案,歸檔日志一般都是位于archive目錄下,在Oracle 10g中AIX系統下檔案格式為“1_17884_XXX.dbf”,建議操作前先對資料庫進行備份,删除時至少保留最近幾天的日志用于資料庫恢複。
二、把歸檔日志的實體檔案删除後,我們就可以正常登入ORACLE了,但是還沒完全把歸檔日志删除幹淨,ORACLE的controlfile中仍然記錄着這些archivelog的資訊,在oracle的OEM管理器中有可視化的日志展現出,當我們手工清除archive目錄下的檔案後,這些記錄并沒有被我們從controlfile中清除掉,接下去我們要做的就是這個工作。
1.指定資料庫執行個體
登入資料庫
2.連接配接資料庫
>RMAN TARGET / --由于沒有使用catalog 隻能nocatalog方式登入
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;
5、再次進行手工全庫備份
backup database
同時備份控制檔案、參數檔案、歸檔日志
6、在使用report obsolete指令報告過期備份
7、再使用delete obsolete指令删除過期備份,若不能删除,可以再加一個參數 force強制删除
本文轉自xiaocao1314051CTO部落格,原文連結:http://blog.51cto.com/xiaocao13140/1970940 ,如需轉載請自行聯系原作者