oracle默認安裝之後,如何沒有手動設置歸檔路徑(alter system set log_archive_dest_1="LOCATION=/oracle/oracle/archive" scope =spfile;)的話,默認是在db_revovery路徑之下。所以我們有的時候在這個路徑下產生了大量的archivelog.然後我們某天把archivelog 迁移到了别的路径,然后把 revery路径下的文件都清空。但是空间并未释放。
这时我们需要执行以下步骤;
1.
select * from v$recovery_file_dest;
查看都是那些占用空间,而没有在数据字典删除的。
FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------------------ ------------------ ------------------------- ---------------
CONTROLFILE 0 0 0
ONLINELOG 0 0 0
ARCHIVELOG 80.04 0 171
BACKUPPIECE 0 0 0
IMAGECOPY 0 0 0
FLASHBACKLOG 0 0 0
2 .rman target /
rman >crosscheck archivelog all;
rman >delete expired archivelog all;
必须要先执行crosscheck,不然直接执行delete不认。
完成之后在执行一次
select * from v$recovery_file_dest;
或者关闭数据库,开启数据库,一直tail -f $ORACLE_BASE/admin/justin/bdump/alter*.log
观看整个关闭启动过程就会提示空间是不是已经释放。