您的位置:首页 > 数据库 > Oracle

ORA-01033: ORACLE 正在初始化或关闭 进程 ID: 0 会话 ID: 0 序列号: 0

2013-12-12 12:01 615 查看
用了很长时间的数据库,一直都挺好,今天早上一来报这个错,开始追究原因。

1.用SYS用户登录;

2.将数据库修改为打开状态,alter database open,出现如下的错误提示:

    ORA-16038:日志3 sequence# 2289无法归档

    ORA-19809:超出了恢复文件数的限制

    ORA_00312:联机日志 3 线程 1: 'e:\......\redo03.log'

3.查看日志是否没有空间,【select * from v$recovery_file_dest;】    

    NAME

    ----------------------------------------------------------------

    SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES

    ----------- ---------- ----------------- ---------------

    \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; //成功修改闪回区(归档日志的地方)的大小 解决问题

  系统已更改。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: