ORA-24324:未初始化服务句柄,不允许此值,正在关闭 - 不允许连接
C:/Documents and Settings/Administrator>sqlplus " /as sysdba"SQL> startup mount
ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> shutdown
--好久没有关闭,CTRL+C
C:/Documents and Settings/Administrator>sqlplus " /as sysdba"
已连接。
SQL> shutdown immediate
ORA-24324: 未初始化服务句柄
ORA-24323: 不允许此值
ORA-01090: 正在关闭 - 不允许连接
SQL> shutdown immediate
ORA-24324: 未初始化服务句柄
ORA-24323: 不允许此值
ORA-01090: 正在关闭 - 不允许连接
SQL> shutdown abort
ORA-01031: insufficient privileges
SQL> quit
已断开连接
C:/Documents and Settings/Administrator>sqlplus/nolog
SQL> conn sys/oracle as sysdba
已连接到空闲例程。
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 1073741824 bytes
Fixed Size 1253072 bytes
Variable Size 281018672 bytes
Database Buffers 784334848 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL>
从出现问题的原因中我们可以看到,数据库是因为关闭过程被中断所引起的,之后用shutdown命令也无法关闭数据库,因此可以想到,在正常关闭和立即关闭无法工作时,我们可以用shutdown abort来中止当前的数据库实例。
Shutdown abort中止一个实例时具有如下特点:
l Oracle服务器立即中止当前正在处理的SQL语句;
l ORACLE服务器不会等待当前与数据库连接的用户断开连接;
l 数据重做日志缓冲不会写到磁盘中;
l 未完成的事务不会回滚;
l 实例终止,而不会关闭文件;
l ORACLE关闭和卸载数据库;
l 下一次启动需要实例恢复,这是自动的。