時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(5)
當(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)行刪除操作,操作步驟如下:(WIN客戶端系統(tǒng)為例)
1.指定數(shù)據(jù)庫實(shí)例
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àng)上做很多操作,實(shí)現(xiàn)更復(fù)雜的功能
關(guān)鍵詞標(biāo)簽:Oracle
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法