1.root登陸後切換oracle使用者
[root@localhost]
# su - oracle
2.執行sqlplus / as sysdba進入oracle資料庫
[oracle@localhost]
# sqlplus / as sysdba
3.執行 select * from v$flash_recovery_area_usage;命令檢視日誌大小
sql> select
*from v$flash_recovery_area_usage
;
檢視archivelog的百分比,超過80%就需要清理了
4.歸檔日誌目錄查詢
sql> show parameter db_recovery_file_dest;
目錄下面以每天日期為單位的資料夾,只保留近兩天的資料夾,其餘日期目錄都刪除
5.退出oracle資料庫
sql> quit;
6.執行 rman target sys/pass進入rman
[oracle@localhost]
# rman target sys/pass
7.檢查一些無用的archivelog
rman> crosscheck archivelog all;
8.刪除過期的歸檔
rman> delete expired archivelog all;
或者
rman> delete archivelog until time "sysdate-1"
期間選擇yes
9.退出rman
rman>quit;
10.重複步驟2,3檢視清理後的歸檔日誌大小,沒問題就可以執行步驟5退出
如果使用fast recovery area存放歸檔日誌,需要注意該區域有大小限制,建議將大小調大
alter system set db_recovery_file_dest_size=
10g scope=both;
如果使用本地路徑存放歸檔日誌,需要將db_recovery_file_dest引數置空,然後設定log_archive_dest引數
alter system set db_recovery_file_dest=''
;
alter system set log_archive_dest='/data/oracle/archive'
;
如果archive log模式下不能正常startup,則先恢復成noarchive log,startup成功後,再shutdown;
shutdown immediate;
startup mount;
alter database noarchivelog;
alter database open;
shutdown immediate;
再次startup以archive log模式
shutdown immediate;
startup mount;
show parameter log_archive_dest;
alter database archivelog;
archive log list;
alter database open;
參考鏈結
oracle資料庫清理歸檔日誌步驟
root登陸後切換oracle使用者 root localhost su oracle執行 sqlplus as sysdba進入oracle資料庫 oracle localhost sqlplus as sysdba執行 sqlplus as sysdba進入oracle資料庫 oracle lo...
Oracle資料庫 之 清理歸檔日誌的方法
su oracle 切換至歸檔日誌目錄,刪除歸檔日誌。刪除的歸檔日誌狀態會變為 失效 在crosscheck之後,就可以刪除這些失效的歸檔日誌了。rman rman connect target rman crosscheck archivelog all rman delete expired a...
oracle歸檔日誌清理
rman清除方式會自動清除磁碟上的歸檔日誌檔案,同時會釋放控制檔案中對應的歸檔日誌的歸檔資訊。list expired archivelog all 列出所有失效的歸檔日誌 delete archivelog until sequence 16 刪除log sequence為16及16之前的所有歸檔...