1. 程式人生 > >如何正確刪除Oracle 歸檔日誌文件

如何正確刪除Oracle 歸檔日誌文件

如何正確刪除oracle 歸檔日誌文件

當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強制刪除


本文出自 “我主梁緣” 博客,請務必保留此出處http://xiaocao13140.blog.51cto.com/6198256/1970940

如何正確刪除Oracle 歸檔日誌文件