今天在执行一个测试库的shutdown时候遇到了一个ORA-00106: 无法在连接到调度程序时启动/关闭数据库错误。这个错误的原因是数据库运行在共享模式下,在数据库机器上进行操作,其tnsnames.ora配置中使用的是SHARED模式,通过这个模式登进去是无法进行shutdown和close操作,解决的办法就是将SHARED改成DEDICATED,记录如下。
[oracle@itd-test-120 admin]$ clear
[oracle@itd-test-120 admin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on 星期五 5月 21 17:14:19 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> conn sys/test@test331 as sysdba
已连接。
SQL> shutdown immediate;
ORA-00106: 无法在连接到调度程序时启动/关闭数据库
//出现这个问题的原因是因为数据库运行在共享模式下,而且客户端的tnsnames.ora配置的连接方式又是SHARED的,在这个模式下是无法执行database close或者shutdown操作的,解决的办法就是将SHARED改成DEDICATED。
SQL> !vi /oracle/ora10g/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /oracle/ora10g/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
TEST331 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = itd-test-120)(PORT = 1521))
(CONNECT_DATA =
(SERVER =SHARED)
(SERVICE_NAME = test331)
)
)
SQL> !vi /oracle/ora10g/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /oracle/ora10g/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
TEST331 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = itd-test-120)(PORT = 1521))
(CONNECT_DATA =
(SERVER =DEDICATED)
(SERVICE_NAME = test331)
)
)
"tnsnames.ora" 62L, 1241C written
SQL> shutdown immediate;
ORA-00106: 无法在连接到调度程序时启动/关闭数据库
SQL> exit
//需要退出重新登入进行操作
从 Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开
[oracle@itd-test-120 admin]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on 星期五 5月 21 17:16:53 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
SQL> conn sys/test@test331 as sysdba
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
-The End-