進入機器,設置環境變量,如:
export ORACLE_HOME=/main/app/oracle/product/11.2.0/db_1 export ORACLE_SID=devdb
然后切換oracle用戶,admin方式登錄sqlplus
[root@dbserver~]# su - oracle [oracle@dbserver~]$ sqlplus /nolog SQL> connect /as sysdba
檢查flash recovery area的使用情況,可以看見archivelog已經很大了,達到99.94
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
3,現在來清理一下archivelog歸檔日志,生產環境建議備份
查詢日志目錄位置
show parameter recover;
4,退出sqlplus,用root用戶登錄,將歸檔日志備份后刪除
先進入一個目標地址;新建一個oracle歸檔日志備份目錄
mkdir oracle歸檔日志備份
進入歸檔日志源文件目錄(devdb是數據庫實例名):
cd /mnt/install/ora_11g/app/oracle/flash_recovery_area/devdb/archivelog/
先進入archivelog目錄外面:
cd ..
備份archivelog下面的歸檔日志到之前新建的oracle歸檔日志備份目錄下面:
cp -rf archivelog /mnt/oracle歸檔日志備份/
等待備份完成之后,刪除已經備份的歸檔日志
5,在刪除歸檔日志后,必須用RMAN維護控制文件,否則空間顯示仍然不釋放
使用oracle用戶登錄服務器,進入RMAN維護:
rman target sys/pass
檢查一些無用的archivelog
RMAN> crosscheck archivelog all;
刪除截止到前5天的所有archivelog
RMAN> delete archivelog until time 'sysdate-5' ;
6,再次查詢flash recovery area的使用情況:
先按照步驟1,進入sqlplus環境,然后使用下面命令查詢發現,只使用0.66%,說明清除歸檔日志成功!
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;