未完全关闭数据库导致ORA-01012: not logged的解决

非 Y 不嫁゛ 提交于 2019-12-30 18:03:42

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

首先使用SHUTDOWN NORMAL方式关闭数据库,在数据库未关闭时CTRL+Z停止执行,退出用SQLPLUS重登陆,出现报错:ORA-01012: not logged on

 

实验如下:

首先执行
SYS@bys1>shutdown
ORA-01013: user requested cancel of current operation


[oracle@bys001 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sat Sep 7 09:05:08 2013
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected.
ERROR:
ORA-01012: not logged on
Process ID: 0
Session ID: 0 Serial number: 0


SYS@bys1>startup
ORA-01012: not logged on
SYS@bys1>conn / as sysdba
Connected to an idle instance.
ERROR:
ORA-01012: not logged on
Process ID: 0
Session ID: 0 Serial number: 0

SYS@bys1>conn esb/esb
ERROR:
ORA-01090: shutdown in progress - connection is not permitted
Process ID: 0
Session ID: 0 Serial number: 0

Warning: You are no longer connected to ORACLE.
 

解决方法:

找到进程,kill掉就可以了。

[oracle@bys001 ~]$ ps -ef |grep ora_dbw0_
oracle    6519     1  0 Sep06 ?        00:00:15 ora_dbw0_bys1
oracle   20947 20924  0 09:08 pts/0    00:00:00 grep ora_dbw0_
[oracle@bys001 ~]$ kill -9 6519
[oracle@bys001 ~]$ ps -ef |grep ora_dbw0_
oracle   20949 20924  0 09:08 pts/0    00:00:00 grep ora_dbw0_

[oracle@bys001 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sat Sep 7 09:08:22 2013
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to an idle instance.
SYS@bys1>startup
ORACLE instance started.
Total System Global Area  631914496 bytes
Fixed Size                  1338364 bytes
Variable Size             264242180 bytes
Database Buffers          360710144 bytes
Redo Buffers                5623808 bytes
Database mounted.
Database opened.
SYS@bys1>

 

 

 

 

 

 

 

 

 

ORA-01012:not logged on的解决办法

 

conn / as sysdba 报错ORA-01012: not logged on

 

发生原因:关闭数据库是shutdown 后面没有接关闭参数中的任何一个。
 

 nomal          --->所有连接都断开时才能关闭;

 transactional  --->等待事务结束后,主动断开连接;

 

 immediate      --->主动断开事务和连接  www.2cto.com  

 abort          --->立刻关闭数据库,这个操作是危险的,不会同步数据,不触发检查点,回滚段直接清  空,相当于掉电,每次启动都要实例恢复。

 

所以,数据库关闭很慢,这时我一心急,就直接退出了sqlplus,造成oracle文件被lock,当我再次startup时,操作失败,因为文件依然被锁定状态。报错ORA-01012: not logged on。

 

后来重启服务,就可以用了,看了oracle的报错解释,更让我费解。虽然问题解决了,但是生产环境是不能随便down机的,所以,这个问题待续。。。

   www.2cto.com  

kill oracle 进程 或者关掉oracle

 

ps -ef|grep ora_dbw0_$ORACLE_SID

kill  -9 pid

 

重新启动oracle

sqlplus sys as sysdba

startup;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!