ORA-01033: ORACLE initialization or shutdown in progress

    技术2022-05-19  22

    ORA-01033: ORACLE initialization or shutdown in progress

    打开 SQLPLUS, 输入用户名和密码后 , 却总是

    报 ORA-01033: ORACLE initialization or shutdown in progress  的错误 . 在网上搜索解决办法和大家分享 :

        1) 开始 - 运行 -cmd

         2) 命令行中输入 SQLPLUS SYS/SYS AS SYSDBA

         3) 输入 SHUTDOWN

         4) 输入 STARTUP.

    在第四步的时候留意它输出的错误。我的是:

    SQL> STARTUP

    ORACLE  例程已经启动。

    Total System Global Area  313860096 bytes

    Fixed Size                  1332892 bytes

    Variable Size             255854948 bytes

    Database Buffers           50331648 bytes

    Redo Buffers                6340608 bytes

    数据库装载完毕。

    ORA-00313:  无法打开日志组   1 ( 用于线程   1)  的成员

    ORA-00312:  联机日志   1  线程   1: 'D:/ORACLE/ORADATA/ORCL/REDO01.LOG'

     

    很明显的是日志组出了问题。进到 D:/ORACLE/ORADATA/ORCL/  看看,原来是用优化大师时把日志文件给删掉了。

    OK, 知道问题,那就来解决问题吧。上网找找。有篇文章是这样的:

    “ ORA - 00205 错误 , 即某些控制文件出现了问题 , 解决方法 . 先到 E:/oracle/product/10.1.0 /oradata/orcl 目录下 , 可以看见有 CONTROL01.CTL,   CONTROL02.CTL,   CONTROL03.CTL 三个控制文件 , 如果错误报的是 CONTROL02.CTL,   CONTROL03.CTL 有问题 , 那么就把这两个文件删掉 , 然后使用好的控制文件境象文件复制成删除的控制文件就可以了。”

    可惜我的不是控制文件的问题,而是日志。最先冒出的想法是,我可不可以也另外的日志文件来替代呢?叫同学发个日志文件过来,放在 D:/ORACLE/ORADATA/ORCL/ 下,

    “ SQL> startup

    数据库装载完毕。

    ORA-00305:  日志   1 ( 用于线程   1)  不一致 ;  属于另一个数据库

    ORA-00312:  联机日志   1  线程   1: 'D:/ORACLE/ORADATA/ORCL/REDO01.LOG' ”

    结论这是不行的 .

    最后的解决方法是:

    SQL> shutdown immediate;

    SQL> startup mount;

    SQL> select * from v$log;      /*查看日志状态(见后面的资料)*/

    SQL> alter database clear unarchived logfile group 2;        /* 重建日志文件 */

    SQL> alter database clear unarchived logfile group 3;

    SQL> alter database clear unarchived logfile group 1;

    SQL> startup;

    Total System Global Area  313860096 bytes

    Fixed Size                  1332892 bytes

    Variable Size             255854948 bytes

    Database Buffers           50331648 bytes

    Redo Buffers                6340608 bytes

    数据库装载完毕。

    数据库已经打开。

    SQL> conn system

    输入口令 :

    已连接。

    SQL>

     到这里,问题解决了!

    后话,恢复日志文件的顺序要注意。

    附加些资料:

    日志文件组的状态

      current:  当前正在使用的工作组

      inactive:  非活动组

      active :  归档还没有完成

      unused :  还没有使用 , 一般新建的工组组都是这个状态

    在 active,current 状态下的工作组都不能删除 , 要日志切换后才可以

     

    SQL> shutdown immediate; 

    SQL> startup mount;

    1 、 STARTUP   NOMOUNT            NONOUNT 选项仅仅创建一个 Oracle 实例 , 当实例打开后,系统将显示一个 SGA 内存结构和大小的列表 ;    2 、 STARTUP   MOUNT           该命令创建实例并且安装数据库,但没有打开数据库 , 在这种打开方式下 , 除了可以看到 SGA 系统列表以外,系统还会给出 " 数据库装载完毕 " 的提示 ;    3 、 STARTUP          该命令完成创建实例、安装实例和打开数据库的所有三个步骤 , 这时系统除了可以看到前面 Startup   Mount 方式下的所有提示外,还会给出一个 " 数据库已经打开 " 的提示 , 此时,数据库系统处于正常工作状态,可以接受用户请求。


    最新回复(0)