當ORACLE歸檔日誌滿後如何正確刪除歸檔日誌

2021-09-20 23:48:37 字數 2896 閱讀 8677

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

一、首先刪除歸檔日誌物理檔案,歸檔日誌一般都是位於archive目錄下,aix系統下檔案格式為「1_17884_667758186.dbf」,建議操作前先對資料庫進行備份,刪除時至少保留最近幾天的日誌用於資料庫恢復。

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

我們利用rman進行刪除操作,操作步驟如下:(window客戶端系統為例)

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

5.退出rman

rman> exit

附帶說明:rman 是oracle資料庫軟體自帶的備份恢復工具,一種是類似於dos,通過鍵盤操作的 命令列方式。

通過rman連線本地資料庫非常簡單,以 w indows 平台為例,進入到命令提示符介面:

c:/documents and settings/junsansi> set oracle_sid =jssbook

c:/documents and settings/junsansi> rman target /

recovery manager: release 10.2.0.1.0 - production on tue mar 17 21:12:17 2009

connected to target database: jssbook (dbid=1415261003)

rman>

如上所示,使用rman連線本地資料庫之前必須首先設定作業系統環境變數:oracle_sid,並指定該值等於目標資料庫的例項名。如果本地庫只有乙個例項並已經設定了oracle_sid環境變數,則不需要再指定oracle_sid。rman會自動連線到預設例項。

當然,你也可以先啟動rman,然後再通過connect命令來連線目標資料庫,如下所示:

c:/documents and settings/junsansi> rman

recovery manager: release 10.2.0.1.0 - production on tue mar 17 21:12:36 2009

rman> connect target /

connected to target database: jssbook (dbid=1415261003)

本地連線允許使用作業系統驗證,因此上述示例都不需要輸入使用者名稱和密碼,不過如果本地沒有啟用作業系統身份驗證的話,就必須指定具有相應許可權的使用者名稱和密碼。

需要注意,linux/unix 環境下設定作業系統環境變數應使用 export 命令,另外oracle_sid必須為大寫。例如:

[oracle@yans1  ~ ]$  export  oracle_sid=test08

[oracle@yans1  ~ ]$  rman target /

recovery manager: release 10.2.0.3.0 - production on tue mar 17 16:08:32 2009

connected to target database: test08 (dbid=3812548755)

rman> 

連線遠端資料庫

如果要連線的目標資料庫是乙個遠端資料庫,那麼必須在建立連線時指定乙個有效的網路服務名(net service name),本地的tnsname.ora檔案中必須已經建立了該網路服務名的正確配置。連線示例如下:

c:/documents and settings/junsansi> rman target sys/change_on_install@testdb

recovery manager: release 10.2.0.1.0 - production on tue mar 17 16:12:32 2009

connected to target database: testdb (dbid=2220262593)

rman>

當ORACLE歸檔日誌滿後如何正確刪除歸檔日誌

當oracle 歸檔日誌滿了後,將無法正常登入oracle,需要刪除一部分歸檔日誌才能正常登入oracle。一 首先刪除歸檔日誌物理檔案,歸檔日誌一般都是位於archive目錄下,aix系統下檔案格式為 1 17884 667758186.dbf 建議操作前先對資料庫進行備份,刪除時至少保留最近幾天...

Oracle歸檔日誌滿後導致遠端訪問失敗

背景 cognos服務配置好後,正常啟動了一段時間後,突然內容資料庫測試失敗。通過sqlplus 以sysdba身份可以正常登入oracle資料庫,說明oracle例項沒有問題,已經啟動。sqlplus as sysdba因為cognos是採用tns的方式連線oracle,繼而檢視tns 服務狀態 ...

oracle日誌歸檔

文章出處 感謝作者的分享 oracle 歸檔日誌 oracle可以將聯機日誌檔案儲存到多個不同的位置,將聯機日誌轉換為歸檔日誌的過程稱之為歸檔。相應的日誌被稱為歸檔日誌。一 歸檔日誌 是聯機重做日誌組檔案的乙個副本 包含redo記錄以及乙個唯一的log sequence number 對日誌組中的乙...