天天看點

歸檔日志實體删除後閃回恢複區空間未釋放

連接配接資料庫進去提示ora-00257:archiver error.Connect internal only,until freed.

登入伺服器,作業系統驗證,登入好久登入不進去

無奈,把oracle服務重新開機了下,終于登入進去了

查詢v$archived_log

裡面有2條歸檔日志記錄,但是在磁盤上怎麼找都找不到

select * from V$FLASH_RECOVERY_AREA_USAGE;--顯示歸檔日志占用閃回恢複區有98%

select sum(percent_space_used)*2/100 from v$flash_recovery_area_usage;--顯示使用2.9個G(閃回恢複區的大小是2G)

使用RMAN

list copy;--顯示這2條歸檔日志記錄

使用delete archivelog all;--删除控制檔案中的歸檔日志記錄

删除之後,

select * from V$FLASH_RECOVERY_AREA_USAGE;--顯示使用率為0

select sum(percent_space_used)*2/100 from v$flash_recovery_area_usage;--顯示使用為0

select * from v$log;--發現每個日志的大小是1個G,汗...

怪不得,兩個日志一歸檔就把閃回恢複區給塞滿了

由于是測試庫,且有每日邏輯備份,在mount模式下,把歸檔關閉:alter database noarchivelog;

修改每個日志檔案的大小是100M

alter database add logfile group 4 'D:\DB_ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO04.LOG' size 100M;

alter database add logfile group 5 'D:\DB_ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO05.LOG' size 100M;

alter database add logfile group 6 'D:\DB_ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO06.LOG' size 100M;

切換日志使得1、2、3組不成為目前組

alter database drop logfile group 1;

alter database drop logfile group 2;

alter database drop logfile group 3;

總結:實體删除歸檔日志,由于控制檔案上還記錄着相關資訊,空間沒有釋放,需要在RMAN中删除歸檔日志,才算真正地删除