ORA-01106: database must be closed before dismounting
Cause: Obvious
Action: None
和示例
Oracle 的这个 ORA-01106 错误表示“数据库必须在卸载之前关闭”。
当应用进程尝试从服务器产品SQL *Plus、iSQL *Plus或SQLPLUSW中卸载数据库时,ORA-01106错误就会出现。 此错误通常表示有一个或多个活动会话正在连接到数据库并产生可能会导致损坏的活动。
ORA-01106错误常常出现在以下情况:
– 尝试从SQL *Plus命令行接口卸载数据库
– 尝试从SQLPLUSW卸载数据库
– 尝试从iSQL *Plus卸载数据库
正常处理方法及步骤:
要解决这个错误,请按照下面的步骤操作:
1、在SQL *Plus命令行接口中,运行“SELECT COUNT(*)FROM V$SESSION”,然后查看V $ SESSION是否有活动会话。
2、如果确实有活动会话,请确保这些活动会话不会影响到数据库关闭和卸载
3、执行“alter system kill session”操作杀死所有活动会话。
4、检查V$SESSION中的活动会话是否被终止。
5、最后,执行“shutdown immediate”关闭数据库
6、卸载数据库
示例:
下面是示例,说明在使用SQL *Plus时遇到ORA-01106错误的方式:
SQL>shutdown immediate
ORA-01109:数据库未打开
SQL>connect / as sysdba
已成功连接到非恢复性实例ORCL
SQL>shutdown immediate
ORA-01106:数据库必须先关闭才能卸载
SQL> SELECT COUNT(*)FROM V$SESSION;
活动会话数:3
SQL>alter system kill session ‘139,15’;
系统已终止会话
SQL> SELECT COUNT(*)FROM V$SESSION;
活动会话数:1
SQL>shutdown immediate
数据库关闭状态已更改为“关闭”
SQL>exit
您已成功退出SQL *Plus