现象描述:通过net start OracleServiceOrcl启动服务,再通过lsnrctl start启动监听器,通过sqlplus访问 sqlplus sys/orcl@orcl as sysdba没有问题。
如果通过oracle.exe orcl启动,再通过lsnrctl start启动监听器,通过sqlplus则无法访问 sqlplus sys/orcl@orcl as sysdba长时间无响应,而sqlplus sys/orcl as sysdba没有问题。这是为什么?难道net start OracleServiceOrcl和oracle.exe orcl有区别吗?
如果通过oracle.exe orcl启动,再通过lsnrctl start启动监听器,通过sqlplus则无法访问 sqlplus sys/orcl@orcl as sysdba长时间无响应,而sqlplus sys/orcl as sysdba没有问题。这是为什么?难道net start OracleServiceOrcl和oracle.exe orcl有区别吗?
同意,window下的最好用服务来启动了,估计这里是有什么子进程在oracle启动的时候没有加载进来。
===============================================================
有区别的,windows 的 service 的 exe 文件结构与普通的 exe 程序是不一样的。
oracle.exe orcl 只是将服务进程当做普通的可执行文件 load 进内存,但服务并没有启动。要启动服务是要调用服务程序中的onload(xxx)函数的。net start 可以完成这样的调用,而 oracle.exe orcl 则不能。