代码改变世界

ORA-01012: not logged on

2015-01-23 16:16  潇湘隐者  阅读(48632)  评论(0编辑  收藏  举报

关于ORA-01012这个错误,惜分飞的博客ORA-01012: not logged on里面已经做了一些介绍,原因就不多说了,看看他的描述说明:

 

现象说明:

 

   1)终于发现了ORA-01012错误,期待了很久。发现只有当sys登录系统,对数据库进行查询或者操作之时才会出现ORA-01012,其他用户只要一登录数据库就会提示ORA-00020错误。

   2)当process达到数据库最大限时,sysdba登录系统是也显示不正常

 

2.1)当使用sqlplus “/ as sysdba”登录时,缺少:

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.4.0 – Production

With the Partitioning, OLAP and Oracle Data Mining options

JServer Release 9.2.0.4.0 – Production

 

2.2)当使用conn / as sysdba登录时,提示为:

Connected to an idle instance.

 

解决方法:

 

1:重启监听服务

1.1: 停止监听服务,等数据库访问连接数下降用户再登录。

lsnrctl stop

1.2: sqlplus “/ as sysdba”登陆后,修改processes值。(这一步可用也可以不用)

方法虽好,但是在生产环境却不方便使用,一来停止监听服务会导致应用程序问题,用户投诉,这个适合在晚上或维护时间处理。是治标治本的方法。

 

 

2: sqlplus “/ as sysdba”登陆后

shutdonwn abort

 

3: ps -ef|grep ora_dbw0_$Oracle_SID

  kill -9 pid ;

   startup --重启数据库

 

这个方法慎用,谁要是提倡使用,我保证不打死他……。我用过一次,提心吊胆的。不怕死的可以试试。

clip_image001

另外我在这篇文章ORA-12516:TNS:listener could not find available handler with matching protocol stack里面也介绍过这种情况。

 

 

参考资料:

    http://www.xifenfei.com/1351.html