產生原因:出現ORA-00257錯誤(空間不足錯誤),通過查找資料,絕大部分說這是由於歸檔日誌太多,佔用了全部的硬盤剩餘空間導致的,通過簡單刪除日誌或加大存儲空間就能夠解決。
解決辦法:
1,SecureCRT登錄服務器,切換用戶Oracle,連接oracle
[root@userbeta~]# su - oracle
[oracle@userbeta~]$ sqlplus /nolog
SQL> connect /as sysdba
2,檢查flash recovery area的使用情況,可以看見archivelog已經很大了,達到85.75 再加上 一個11.2的基本沒有空間了
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
3,現在來清理一下archivelog歸檔日誌,生產環境建議備份
查詢日誌目錄位置
show parameter recover;
4,退出sqlplus,用root用戶登錄,將歸檔日誌備份後刪除
先進入一個目標地址;新建一個oracle歸檔日誌備份目錄
mkdir oracle歸檔日誌備份
進入歸檔日誌源文件目錄(UPRR是數據庫實例名):
cd /mnt/install/ora_11g/app/oracle/flash_recovery_area/UPRR/archivelog/
先進入archivelog目錄外面:
cd ..
備份archivelog下面的歸檔日誌到之前新建的oracle歸檔日誌備份目錄下面:
cp -rf archivelog /mnt/oracle歸檔日誌備份/
等待備份完成之後,刪除已經備份的歸檔日誌
5,在刪除歸檔日誌後,必須用RMAN維護控制文件,否則空間顯示仍然不釋放
使用oracle用戶登錄服務器,進入RMAN維護:
rman target sys/pass
檢查一些無用的archivelog
RMAN> crosscheck archivelog all;
刪除截止到前一天的所有archivelog
RMAN> delete archivelog until time 'sysdate-1' ;
6,再次查詢flash recovery area的使用情況:
先按照步驟1,進入sqlplus環境,然後使用下面命令查詢發現,只使用12.82%,說明清除歸檔日誌成功!
SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
轉自:http://blog.csdn.net/cw370008359/article/details/51023794