Oracle登录 ORA-01033: ORACLE正在初始化或关闭的解决方法

Oracle存在多实例

 

相应的在DOS命令下执行:

1. 设置正确的ORACLE实例:set ORACLE_SID = INSTANCE_NAME

2. 启动SQLPLUS:sqlplus /nolog

3.以DBA(通常有好几个sys或system)用户sqlplus登录:connect system/sys as sysdba

 

 

oracle登录错误(ORA-01033:ORACLE initialization or shutdown in progress

上面说到了创建表分区的例子,所以创建表空间的时候创建了好几个表空间物理文件,之后感觉创建的有误,想删掉它们,可是删不掉(因为数据库进程启动着),所以把数据库服务给关了,直接Shift+Del把文件给删掉了。

问题出来了:我再次启动oracle相关服务后,登录不了了。

出现了ORA-01033:ORACLE initialization or shutdown in progress

 

原因就是因为我把介质文件给删掉了

解决步骤:

以DBA(通常有好几个sys或system)用户sqlplus登录

请输入用户名: system/sys as sysdba

然后(卸载数据)输入:

SQL> shutdown normal

会出现:

ORA-01109: 数据库未打开

 

已经卸载数据库。

ORACLE 例程已经关闭。

 

然后(装载数据)输入:

SQL> startup mount

 

ORACLE 例程已经启动。

数据库装载完毕。

 

之后:

SQL>alter database open;

第 1 行出现错误:

ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 6: 'D:/ORACLE/PRODUCT/10.1.0/ORADATA/RAILWAY/2008_1.DAT'

 

SQL> alter database create datafile 6;

数据库已更改。

SQL>alter database open;

第 1 行出现错误:

ORA-01113: 文件 6 需要介质恢复

ORA-01110: 数据文件 6: 'D:/ORACLE/PRODUCT/10.1.0/ORADATA/RAILWAY/2008_1.DAT'

 

SQL> alter database datafile 6 offline drop;

数据库已更改。

 

继续

SQL>alter database open;

如果出现以上错误,继续执行相关操作,上面的6要和create和drop对应。

 

如果

SQL> alter database open;

出现了:

数据库已更改。

则成功了。

这时可以再用PL/SQL等客户端工具,登录操作数据库了。

 

 

 

 

至于介质恢复: ora-01172 ora-01151了,解决办法如下:

c:>sqlplus /nolog 

SQL> connect sys/sys@oracle as SYSDBA 

已连接 

SQL>  startup mount 

ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭 

SQL> alter database open read only; 

alter database open read only 

ERROR 位于第 1 行: 

ORA-16005: 数据库需要恢复

 

 

SQL> recover database 

完成介质恢复。 

SQL> shutdown immediate 

ORA-01109: 数据库未打开

 

 

已经卸载数据库。 

ORACLE 例程已经关闭。 

SQL> startup 

ORACLE 例程已经启动。

 

Total System Global Area  730931140 bytes 

Fixed Size                   454596 bytes 

Variable Size             411041792 bytes 

Database Buffers          318767104 bytes 

Redo Buffers                 667648 bytes 

数据库装载完毕。 

数据库已经打开。 

 

 

 

 

今天用客户端连接oracle时,发现报ORA-01033: ORACLE 正在初始化或关闭错误,其实这个错误报了几天了,前两次重启一下就好了,今天是怎么也起不来了,通过在网上查找,很好的就解决了,

首先我用startup mount命令,可以正常,然后用alter database open就会报错,如下图

 

 

 

从中可以看出归档文件的问题,随后

 

 

 

可以看出改组非当前状态但已归档,所以用clear命令来重建当前组

SQL>alter database clear logfile group 3;

如果是该日志组还没有归档,则需要用

SQL>alter database clear unarchived logfile group 3;

然后alter database open  数据库就可以连上了。

我这是在自己本机上随便做的,但是如果在生产机上最好立刻做备份一下。

说明:

1)、如果损坏的是非当前的联机日志文件,一般只需要clear就可以重建该日志文件,但是如果该数据库处于归档状态但该日志还没有归档,就需要强行clear。

2)、建议clear,特别是强行clear后作一次数据库的全备份。

3)、此方法适用于归档与非归档数据库。

 

 

 

 

你可能感兴趣的:(Oracle)