Oracle刪除歸檔日志的實現(xiàn)方法
Oracle刪除歸檔日志使我們經(jīng)常會用到的操作,下面就為您詳細(xì)介紹Oracle刪除歸檔日志的實現(xiàn)方法,希望對您能夠有所幫助。
當(dāng)Oracle 歸檔日志滿了后,將無法正常登入Oracle,需要刪除一部分歸檔日志才能正常登入Oracle。
一、首先刪除歸檔日志物理文件,歸檔日志一般都是位于archive目錄下,AIX系統(tǒng)下文件格式為“1_17884_667758186.dbf”,建議操作前先對數(shù)據(jù)庫進(jìn)行備份,刪除時至少保留最近幾天的日志用于數(shù)據(jù)庫恢復(fù)。
二、把歸檔日志的物理文件刪除后,我們就可以正常登入Oracle了,但是還沒完全把歸檔日志刪除干凈,Oracle的controlfile中仍然記錄著這些archivelog的信息,在Oracle的OEM管理器中有可視化的日志展現(xiàn)出,當(dāng)我們手工清除archive目錄下的文件后,這些記錄并沒有被我們從controlfile中清除掉,接下去我們要做的就是這個工作。
我們利用RMAN進(jìn)行刪除操作,Oracle刪除歸檔日志操作步驟如下:(WIN客戶端系統(tǒng)為例)
1.指定數(shù)據(jù)庫實例
C:\Documents and Settings\Administrator>SET Oracle_SID =orcl
2.連接數(shù)據(jù)庫
C:\Documents and Settings\Administrator>RMAN TARGET SYS/sysadmin@orcl
3.查看歸檔日志的狀態(tài)
RMAN> list archivelog all;
4.手工刪除歸檔日志文件
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
說明:
SYSDATA-7,表明當(dāng)前的系統(tǒng)時間7天前,before關(guān)鍵字表示在7天前的歸檔日志,如果使用了閃回功能,也會刪除閃回的數(shù)據(jù)。
同樣道理,也可以刪除從7天前到現(xiàn)在的全部日志,不過這個命令要考慮清楚,做完這個刪除,***馬上進(jìn)行全備份數(shù)據(jù)庫
DELETE ARCHIVELOG from TIME 'SYSDATE-7'; 刪除從7天前到現(xiàn)在的全部日志,慎用
UNIX/LINUX下也可以通過FIND找到7天前的歸檔數(shù)據(jù),使用EXEC子操作刪除
find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;
這樣做仍然會在RMAN里留下未管理的歸檔文件
仍需要在RMAN里執(zhí)行下面2條命令
crosscheck archivelog all;
delete expired archivelog all;
所以還不如上面的方法好用,不過用FIND的好處就是,可以在條件上,和EXEC子項上做很多操作,實現(xiàn)更復(fù)雜的功能。
【編輯推薦】