"ORA-01012: not logged on"以及"Connected to an idle instance."解决思路

今天测试用的ORACLE服务器出现卡顿情况,于是准备重启一下,在运行shutdown指令关闭数据库的时候意外断开连接,后面想再次进入ORACLE服务器启动时便遇见如下报错:

  • 使用sqlplus /nolog进入SQL Plus后,想连接数据库conn username/password as sysdba时,会报Connected to an idle instance.错误。
  • 在SQL Plus界面,想直接startup启动数据库时,会报ORA-01012: not logged on错误。

通过查阅资料,判断报错原因是在关闭数据库意外退出后,ORACLE一直处于锁定状态,不再允许其他操作。

个人的解决方法是:

  • 先关闭ORACLE进程:
ps -ef|grep ora_dbw0_$ORACLE_SID //找到ORACLE进程
kill -9 PID //通过找到的进程PID号kill掉该进程
  • 然后重启ORACLE:
sqlplus /nolog //进入SQL Plus
startup //启动ORACLE

最后附上关闭ORACLE的命令说明,以免造成错误的关闭操作:

  • shutdown normal(所有连接断开后关闭数据库)
  • shutdown transactional(所有事务结束后主动断开连接,并关闭数据库)
  • shutdown immediate(主动断开连接和事务)
  • shutdown abort(立即关闭数据库,由于该操作不会同步数据,清空回滚段,不触发检查点,所以比较危险,每次启动需要实例恢复)
posted @ 2015-09-10 15:52 honoka 阅读(...) 评论(...) 编辑 收藏