在Windows中安装好Oracle后,会在Windows中创建一些服务,如OracleOraDb10g_home1TNSListener用来监听服务端口,以及和实例相关的OracleServiceORCL用来启动实例,OracleDBConsoleorcl是用来启动EM的。
OracleOraDb10g_home1TNSListener可以用lsnrctl start命令来启动,只有它启动后才能监听安装时候指定的端口,如1521,为机器上的多个实例服务。
OracleServiceORCL是为orcl实例服务的,如果一台机器创建了多个数据库,有多个实例的话,每个实例都对应这样一个服务。可以通过命令 oradim -startup -sid orcl来启动。
OracleDBConsoleorcl对应orcl实例的EM,启动后就可以通过url访问em了。
其中OracleServiceORCL的启动通常意味着对应的数据库也被打开了(start open),但是可以通过修改注册表的ORA_ORCL_AUTOSTART,将其值由TRUE改为FALSE,这样的话,这个服务启动后,数据库这时候是没有start的。
这时候通过 sqlplus sys/sys as sysdba 连接的话可以看到Connected to an idle instance.这时候执行SQL,会得到错误:ORA-01034: ORACLE not available。
这时候,通过startup可以将实例启动。
查看 的属性,可以看到可执行文件路径为,d:\oracle\product\10.2.0\db_1\bin\ORACLE.EXE ORCL,所以我们可以不启动这个服务,而是在CMD中通过ORACLE.EXE ORCL也可以启动这个服务的“部分”功能,之所以说是“部分”,因为这时候通过走网络的话,连接不到这个实例的:
1,将OracleServiceORCL停掉,2,在cmd中通过 oracle.ext orcl将“服务”启动,3通过sqlplus sys/sys as sysdba这可以连到实例,通过sqlplus sys/sys@orcl as sysdba则不能连接到实例。