程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle刪除歸檔日志的實現方法

Oracle刪除歸檔日志的實現方法

編輯:Oracle數據庫基礎

Oracle刪除歸檔日志使我們經常會用到的操作,下面就為您詳細介紹Oracle刪除歸檔日志的實現方法,希望對您能夠有所幫助。

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

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

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

我們利用RMAN進行刪除操作,Oracle刪除歸檔日志操作步驟如下:(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子項上做很多操作,實現更復雜的功能。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved