本地计算机 上的 OracleOraDb11g_home1TNSListener 服务启动后停止

时间:2021-07-26 17:53:32

今天玩oracle的时候突然遇到一个问题:本地计算机 上的 OracleOraDb11g_home1TNSListener 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。

在网上找解决方案的时候,发现很多人都遇到了这个问题,第一个方案没有解决我的问题,下面自己记录一下,留个备份,方便下次查阅方便

第一步:首先查阅你的【NETWORK\ADMIN】目录下的【tnsnames.ora】和【listener.ora】这两个文件,我的路径是:D:\app\Oracle11g\dbhome_1\NETWORK\ADMIN;然后看看里面的【HOST】信息,看看是不是你当前的ip地址,如果不是尝试着把这个2个文件改成你的ip地址,由于我自己只是玩玩oracle,为了方便,直接就改成了127.0.0.1:

[plain] view plaincopyprint?
01.LISTENER =  
02.  (DESCRIPTION_LIST =  
03.    (DESCRIPTION =  
04.      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))  
05.      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))  
06.    )  
07.  )  
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )然后启动监听器,居然好了。

不过也发现有第一步不成功的朋友,那么尝试第二步吧:

1:注册表中

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleOraDb11g_home1TNSListener
中的ImagePath改为:
D:/oracle_11g/product/11.1.0/db_1/BIN/TNSLSNR.EXE(之前后面的.EXE没有)

2:环境变量中

ORACLE_HOME改为:D:/oracle_11g/product/11.1.0/db_1(之前为空)

这是直接复制别人的,我第一次就是尝试的这种方式,不过没有通过,但不保证不是这个问题,还是记录一下