用了很長時間的數據庫,一直都挺好,今天早上一來報這個錯,開始追究緣由。html
1.用SYS用戶登陸;sql
2.將數據庫修改成打開狀態,alter database open,出現以下的錯誤提示:數據庫
ORA-16038:日誌3 sequence# 2289沒法歸檔spa
ORA-19809:超出了恢復文件數的限制線程
ORA_00312:聯機日誌 3 線程 1: 'e:\......\redo03.log'日誌
3.查看日誌是否沒有空間,【select * from v$recovery_file_dest;】 htm
NAMEget
---------------------------------------------------------------- flash
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILESio
----------- ---------- ----------------- ---------------
\ORA_BAK
2147483648 2547483848 0 73
從這裏能夠看到,db_recovery_file_dest的容量已經爲零,被佔用完了。
4.那如今就來解決【超出了恢復文件數的限制】這個問題;
5.登陸SQLPLUS,【sqlplus conn sys/sys@orcl as sysdba】
6.接下來就能夠參考以下操做了,來源:http://www.51testing.com/html/64/n-849764.html
SQL> grant create table to scott;
grant create table to scott
*
第 1 行出現錯誤:
ORA-01109: 數據庫未打開
SQL> startup
ORA-01081: 沒法啓動已在運行的 ORACLE - 請首先關閉它
SQL> shutdown immediate
ORA-01109: 數據庫未打開
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啓動。
Total System Global Area 373293056 bytes Fixed Size 1249056 bytes Variable Size 88080608 bytes Database Buffers 276824064 bytes Redo Buffers 7139328 bytes |
數據庫裝載完畢。
ORA-16038: 日誌 3 序列號 36 沒法歸檔
ORA-19809: 超出了恢復文件數的限制
ORA-00312: 聯機日誌 3 線程 1: 'E:\DEV\DATABASE\ORACLE\ORADATA\ORCL\REDO03.LOG' //判斷問題爲閃回區設置得過小,日誌沒法歸檔
SQL> select reason,object_type,suggested_action from dba_outstanding_alerts; //由於沒法打開數據庫因此沒法查詢閃回區域使用狀況
select reason,object_type,suggested_action from dba_outstanding_alerts
*
第 1 行出現錯誤:
ORA-01219: 數據庫未打開: 僅容許在固定表/視圖中查詢
SQL> select status from V$instance; //查到當前數據庫處於mounted狀態 沒法open
STATUS ------------------------ MOUNTED SQL> alter system set log_archive_dest = 'E:\Dev\Database\Oracle\oradata\flashba ck'; alter system set log_archive_dest = 'E:\Dev\Database\Oracle\oradata\flashback' * |
第 1 行出現錯誤:
ORA-02097: 沒法修改參數, 由於指定的值無效
ORA-16018: 沒法將 LOG_ARCHIVE_DEST 與 LOG_ARCHIVE_DEST_n 或
DB_RECOVERY_FILE_DEST 一塊兒使用
SQL> alter database clear unarchived logfile 'E:\DEV\DATABASE\ORACLE\ORADATA\ORC //清空損壞(沒法歸檔)的日誌文件
L\REDO03.LOG';
數據庫已更改。
SQL> alter database open; //成功啓動數據庫
數據庫已更改。
SQL> ALTER SYSTEM SET db_recovery_file_dest_size=1g scope=both; //成功修改閃回區(歸檔日誌的地方)的大小 解決問題
系統已更改。