如何解决ORA-011033:正在进行ORACLE初始化或关闭

时间:2008-09-10 09:14:48

标签: database oracle

当尝试通过TOAD(Quest Software)或任何其他方式(Oracle Enterprise Manager)连接到ORACLE用户时,我只是得到错误:

  

ORA-011033:ORACLE初始化或   正在关机


[本着StackOverflow的精神,我会自己回答这个问题 - 至少我会说明我在案件中如何解决这个问题 - 请关注你自己的冒险......]

9 个答案:

答案 0 :(得分:92)

经过一些谷歌搜索后,我找到了以下建议:

> sqlplus /nolog

SQL> connect / as sysdba

Connected.

SQL> shutdown abort

ORACLE Instance shut down.

SQL> startup nomount

ORACLE Instance started

SQL> alter database mount;

SQL> alter database open;

仍然给出了错误:

  

ORA-00600:内部错误代码,参数:[kcratr1_lostwrt]

然后我找到了以下建议:

SQL> startup mount

ORACLE Instance started

SQL> recover database 

Media recovery complete

SQL> alter database open;

Database altered

答案 1 :(得分:22)

(回馈SO人)我今天遇到了这个问题 - 不幸的是,我无法按照上述步骤解决“启动我的实例”。简而言之,经过几个小时的环顾四周,我能够按照以下方式解决问题。

问题

enter image description here

这个工作,我得到了错误[0600]

SQL> shutdown abort
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1904054272 bytes
Fixed Size                  2404024 bytes
Variable Size             570425672 bytes
Database Buffers         1325400064 bytes
Redo Buffers                5824512 bytes
Database mounted.
SQL> recover database
Media recovery complete.
SQL> alter database open
  2
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
[108], [615], [655], [], [], [], [], [], [], []`

这是我对这个问题的解决方案:

    SQL> Startup mount
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown abort
ORACLE instance shut down.
SQL>
SQL> startup mount
ORACLE instance started.

Total System Global Area 1904054272 bytes
Fixed Size                  2404024 bytes
Variable Size             570425672 bytes
Database Buffers         1325400064 bytes
Redo Buffers                5824512 bytes
Database mounted.
SQL> Show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      C:\APP\USER\ORADATA\ORACLEDB\C
                                                 ONTROL01.CTL, C:\APP\USER\FAST
                                                 _RECOVERY_AREA\ORACLEDB\CONTRO
                                                 L02.CTL
SQL> select a.member,a.group#,b.status from v$logfile a ,v$log b where a.group#=
b.group# and b.status='CURRENT'
  2
SQL> select a.member,a.group#,b.status from v$logfile a ,v$log b where a.group#=
b.group# and b.status='CURRENT';

MEMBER
--------------------------------------------------------------------------------

    GROUP# STATUS
---------- ----------------
C:\APP\USER\ORADATA\ORACLEDB\REDO03.LOG
         3 CURRENT


SQL> shutdown abort
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1904054272 bytes
Fixed Size                  2404024 bytes
Variable Size             570425672 bytes
Database Buffers         1325400064 bytes
Redo Buffers                5824512 bytes
Database mounted.
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 4234808 generated at 01/21/2014 18:31:05 needed for thread 1
ORA-00289: suggestion :
C:\APP\USER\FAST_RECOVERY_AREA\ORACLEDB\ARCHIVELOG\2014_01_22\O1_MF_1_108_%U_.AR

C
ORA-00280: change 4234808 for thread 1 is in sequence #108


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
C:\APP\USER\ORADATA\ORACLEDB\REDO03.LOG
Log applied.
Media recovery complete.
SQL> alter database open resetlogs;

Database altered.

最终工作:

enter image description here

答案 2 :(得分:15)

按照Oracle's tutorial安装12c数据库时,我遇到了类似的问题。该指令指示读者创建一个PLUGGABLE DATABASE(pdb)。

问题:

sqlplus hr/hr@pdborcl会导致 ORACLE初始化或正在关机

解决方案:[对我有用]:

  1. 以SYSDBA身份登录dabase:
    sqlplus SYS/Oracle_1@pdborcl AS SYSDBA

  2. 更改数据库:
    alter pluggable database pdborcl open read write;

  3. 再次登录:sqlplus hr/hr@pdborcl

  4. 此处提供了一些文档:https://docs.oracle.com/database/121/SQLRF/statements_2008.htm#SQLRF55667

答案 3 :(得分:5)

在数据库启动或停止时的正常情况下也会发生此错误。通常在启动时,您可以等到启动完成,然后照常连接。如果错误仍然存​​在,则可以在未启动数据库的情况下启动服务(在Windows机器上)。这可能是由于启动问题,或者因为服务未配置为自动启动数据库。在这种情况下,您必须以sysdba身份连接,并使用“startup”命令以物理方式启动数据库。

答案 4 :(得分:3)

我使用了上面的rohancragg,Mukul Goel和NullSoulException的答案。但是我还有一个错误:

ORA-01157:无法识别/锁定数据文件字符串 - 请参阅DBWR跟踪文件

我在这里找到了答案:http://nimishgarg.blogspot.com/2014/01/ora-01157-cannot-identifylock-data-file.html

如果上面的帖子被删除我也在这里包含命令。

C:\>sqlplus sys/sys as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Tue Apr 30 19:07:16 2013
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to an idle instance.

SQL> startup
ORACLE instance started.
Total System Global Area  778387456 bytes
Fixed Size                  1384856 bytes
Variable Size             520097384 bytes
Database Buffers          251658240 bytes
Redo Buffers                5246976 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 11 – see DBWR trace file
ORA-01110: data file 16: 'E:\oracle\app\nimish.garg\oradata\orcl\test_ts.dbf'

SQL> select NAME from v$datafile where file#=16;
NAME
--------------------------------------------------------------------------------
E:\ORACLE\APP\NIMISH.GARG\ORADATA\ORCL\TEST_TS.DBF

SQL> alter database datafile 16 OFFLINE DROP;
Database altered.

SQL> alter database open;
Database altered.

谢谢大家节省了我的一天!

Fissh

答案 5 :(得分:2)

问题还可能是由于缺少硬盘空间。安装将成功,但在启动时,oracle将无法创建所需的文件,并将失败并显示相同的上述错误消息。

答案 6 :(得分:0)

我希望这会对某人有所帮助,我解决了这样的问题

出现问题,因为数据库未打开。 命令启动将打开数据库。

您可以使用命令alter database open解决此问题 在某些情况下使用alter database open resetlogs

[oracle@localhost ~]$ sqlplus / sysdba
SQL> startup
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size          8628936 bytes
Variable Size         624952632 bytes
Database Buffers      436207616 bytes
Redo Buffers            3952640 bytes
Database mounted.
Database opened.
SQL> conn user/pass123
Connected.
SQL> 

答案 7 :(得分:0)

我遇到了同样的问题。我为该数据库实例重新启动了oracle服务,该错误消失了。

答案 8 :(得分:0)

对我有用的是,我没有设置local_listener,要查看本地侦听器是否将登录设置为sqlplus / as sysdba,请确保数据库已打开并运行以下命令 show parameter local_listener,如果该值为空,则必须使用以下SQL命令ALTER SYSTEM SET LOCAL_LISTENER='<LISTENER_NAME_GOES_HERE>'

设置local_listener