1.由歸檔日誌空間滿了引發的ORA-00257
2.不啓用歸檔日誌
從昨天下午往自己的電腦導入數據包,導到一個地方就卡住不走了。
今天早上想把用戶刪了重新建用戶,在重新導包,發現刪不了用戶,卡住了
嘗試用用戶登錄,登錄不了,sqlplus卡住,PL\SQL報錯 oracle-00257
解放方法:
看看archive log所在位置
SQL> show parameter log_archive_dest;
VALUE爲空時,可以用archive
log list;檢查一下歸檔目錄和log sequence
SQL> archive log list;
SQL>
select * from V$FLASH_RECOVERY_AREA_USAGE;
看archivelog大小
計算flash
recovery area已經佔用的空間
SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;
到recovery目錄,找到archivelog,把它刪掉
SQL> show parameter recover;
再回來查一下flash recovery area的使用情況
SQL>
select * from V$FLASH_RECOVERY_AREA_USAGE;
archivelog的大小沒有變
退出sql,進入rman,用RMAN維護控制文件,否則空間顯示仍然不釋放
檢查所有的archivelog
刪除過期的歸檔,(因爲是用自己的電腦搭建環境用,所以選擇把archivelog全部都刪了)
RMAN> delete expired archivelog all;
注:delete archivelog until time 'sysdate-1' ; 刪除截止到前一天的所有archivelog
退出rman
用sys用戶登錄,
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database noarchivelog --必須在mount狀態下更改,我並不需要讓日誌歸檔
SQL>startup open;
重新關閉再啓動 或startup force
SQL>select group#,sequence#,status,archived from v$log;
再次查詢flash recovery area的使用情況
SQL>
select * from V$FLASH_RECOVERY_AREA_USAGE;
至此,解決。