用了很长时间的数据库,一直都挺好,今天早上一来报这个错,开始追究缘由。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; //成功修改闪回区(归档日志的地方)的大小 解决问题
系统已更改。