出現ORA-16038 ORA-19809 ORA-00312
Oracle 10g默認的歸檔日誌存放在flash_recovery_area,而默認安裝的時候該區間選擇了1G大小
當歸檔日誌超過1G的時候,空間不足,於是無法歸檔,當時手工刪除歸檔日誌文件,Oracle是無法識別空間是否釋放。
導致數據庫無法啓動
解決辦法:
1、mount數據庫
sql> startup mount (注意,這時候還會報錯,但是可以更改系統參數)
2、 更改系統參數
sql> alter system set db_recovery_file_dest_size=2g scope=spfile;
參數db_recovery_file_dest_size的值根據磁盤剩餘空間大小和實際需要來設置,沒有定論
3、打開數據庫
sql> alter database open
不會成功的
4、刪除失效歸檔日誌
rman
RMAN> connect target /
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
RMAN> exit
5、重新啓動數據庫
sql> shutdown immediate
sql> startup
OK
--另一個版本的解決方法---------------------------------------------------------------------------------------------
oracle出現ORA-16038,ORA-19809,ORA-00312問題的解決方法 SQL> startup
ORACLE 例程已經啓動。
Total System Global Area 188743680 bytes
Fixed Size 1248020 bytes
Variable Size 79693036 bytes
Database Buffers 104857600 bytes
Redo Buffers 2945024 bytes
數據庫裝載完畢。
ORA-16038: 日誌 3 序列號 46 無法歸檔
ORA-19809: 超出了恢復文件數的限制
ORA-00312: 聯機日誌 3 線程 1:
'D:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG'
SQL> alter database clear unarchived logfile 'D:ORACLEPRODUCT10.2.0ORADATAO
RCLREDO03.LOG';
數據庫已更改。
SQL> shutdown immediate
ORA-01109: 數據庫未打開
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啓動。
Total System Global Area 188743680 bytes
Fixed Size 1248020 bytes
Variable Size 79693036 bytes
Database Buffers 104857600 bytes
Redo Buffers 2945024 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL>
無法歸檔錯誤主要是因爲數據庫不正常關閉,SQL語句出錯造成數據線程停止所因起。