如何刪除歸檔日誌檔案

2021-08-29 21:56:20 字數 3239 閱讀 6919

我們都都知道在controlfile中記錄著每乙個archivelog的相關資訊,當然們在os下把這些物理檔案delete掉後,在我們的

controlfile中仍然記錄著這些archivelog的資訊,在oracle的oem管理器中有視覺化的日誌展現出,當我們手工清除archive目錄下的檔案後,這些記錄並沒有被我們從controlfile中清除掉,也就是oracle並不知道這些檔案已經不存在了!這時候我們要做手工的清除的話,下面我經過實驗,可以嘗試這種方法:

1. 進入rman

2. connect target /

3. crosscheck archivelog all;

4. delete expired archivelog all;

這時候我們再去oem中看就一定看不到,如果你的從來沒有做過這個動作的話,我們可以比較從這個動作前的controlfile後動作後的controlfile的大小!

oracle正確刪除歸檔並**空間的方法

oracle正確刪除歸檔並**空間的方法

乙個oracle歸檔日誌經常滿,表現為/oraarchive 這個檔案空間占用100%大家一定抱怨oracle為何沒有歸檔維護工具,很多人直接刪除了事,錯了,oracle有,而且很智慧型,可以正確的刪除歸檔和flashback,不過切記,oracle歸檔日誌對於oracle的資料恢復和備份非常重要,不到萬不得已不要刪除歸檔日誌。

刪除歸檔日誌的過程

以oracle使用者身份登入到資料庫伺服器主機或通過網路連線

進入oracle資料備份工具

rman target/

或rman target/@orcl

在命令視窗裡面執行

delete archivelog all completed before 'sysdate-7';

說明sysdata-7,表明當前的系統時間7天前,before關鍵字表示在7天前的歸檔日誌,如果使用了閃回功能,也會刪除閃回的資料。

同樣道理,也可以刪除從7天前到現在的全部日誌,不過這個命令要考慮清楚,做完這個刪除,最好馬上進行全備份資料庫

delete archivelog from time 'sysdate-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子項上做很多操作,實現更複雜的功能

3.簡要介紹一下report obsolete命令

使用report obsolete命令報告過期備份

4.使用delete obsolete命令刪除過期備份:

5 在rman中用crosscheck檢查歸檔日誌,2個歸檔日誌都是失敗的:

rman> crosscheck archivelog all;

釋放的通道: ora_disk_1

分配的通道: ora_disk_1

通道 ora_disk_1: sid=14 devtype=disk

對歸檔日誌的驗證失敗

存檔日誌檔名 =d:oracleoradatatestarchive1_47.dbf 記錄 id=1 時間戳 =572866

683對歸檔日誌的驗證失敗

存檔日誌檔名 =d:oracleoradatatestarchive11_48.dbf 記錄 id=2 時間戳 =57286

6931

已交叉檢驗的 2 物件

6 試著同步一下,看行不行,結果不行,crosscheck還是失敗:

rman> resync catalog;

正在啟動全部恢復目錄的 resync

完成全部 resync

rman> crosscheck archivelog all;

釋放的通道: ora_disk_1

分配的通道: ora_disk_1

通道 ora_disk_1: sid=14 devtype=disk

對歸檔日誌的驗證失敗

存檔日誌檔名 =d:oracleoradatatestarchive1_47.dbf 記錄 id=1 時間戳 =572866

683對歸檔日誌的驗證失敗

存檔日誌檔名 =d:oracleoradatatestarchive11_48.dbf 記錄 id=2 時間戳 =57286

6931

已交叉檢驗的 2 物件

7 用list expired看看是否有失效的archive log,證明沒有失效的archive log:

rman> list expired archivelog all;

說明與恢復目錄中的任何存檔日誌均不匹配

8 更改語言環境試試,結果再次crosscheck,2個archive log 都成功了:

rman> exit

恢復管理器完成。

c:>set nls_lang=american_america.zhs16gbk

c:>rman catalogrman/rman@safetarget /

recovery manager: release 9.2.0.1.0 - production

connected to target database: test (dbid=1870953724)

connected to recovery catalog database

rman> crosscheck archivelog all;

allocated channel: ora_disk_1

channel ora_disk_1: sid=9 devtype=disk

validation succeeded for archived log

archive log filename=d:oracleoradatatestarchive1_47.dbf recid=1 stamp=57286

6683

validation succeeded for archived log

archive log filename=d:oracleoradatatestarchive11_48.dbf recid=2 stamp=5728

66931

crosschecked 2 objects

ORACLE如何刪除歸檔日誌檔案

1,首先刪除歸檔日誌物理檔案,歸檔日誌一般都是位於archive目錄下,aix系統下檔案格式為 1 17884 667758186.dbf 建議操作前先對資料庫進行備份,刪除時至少保留最近幾天的日誌用於資料庫恢復。2,把歸檔日誌的物理檔案刪除後,我們就可以正常登入oracle了,但是還沒完全把歸檔日...

如何正確刪除Oracle 歸檔日誌檔案

當oracle中的歸檔日誌空間滿時,則需要把它清空,否則將會影響資料庫正常執行,將無法正常登入oracle,需要刪除一部分歸檔日誌才能正常登入oracle。一 首先刪除歸檔日誌物理檔案,歸檔日誌一般都是位於archive目錄下,在oracle 10g中aix系統下檔案格式為 1 17884 dbf ...

刪除歸檔日誌

今天一早,同事說oracle資料庫連線不上。用sqlplus測試一下,報如下錯 ora 00257 archiver error.connect internal only,until freed.原因比較明顯,應該是歸檔日誌檔案太多造成磁碟或者裝置空間不足。官方的解釋就基本如此 簡單地,我們可以到...