总是提示:ORA-12541: TNS:no listener的监听器的错误,望高手指点一二!

时间:2022-02-05 08:39:05
由于本人是初学者,在学校用的是人家已经装好的,所以我就在自己机子上也装了一个9i版本的,可装后总是提示没有监听器,确定服务已启动,重新配置了也没用,在网上查了做过很多工作都无济于事,最后无奈卸载重装,结果一样。希望高手指点一二,最好能说的系统一些,要不我也看不懂,呵呵,谢谢了!
对了,我对这个网络配置也比较呆,我们学校校园网IP是自动获取的,所以主机名就用的本机名,也不晓得又什么影响...

7 个解决方案

#1


问题:Oracle中,如果不配置好合适的listener.ora文件,启动监听器时就会报错:The listener supports no services。该怎么配置呢?

  回答:Oracle给了个监听器配置文件的例子,内容如下:

  # LISTENER =

  # (ADDRESS_LIST=

  # (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))

  # (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

  # SID_LIST_LISTENER=

  # (SID_LIST=

  # (SID_DESC=

  # #BEQUEATH CONFIG

  # (GLOBAL_DBNAME=salesdb.mycompany)

  # (SID_NAME=sid1)

  # (ORACLE_HOME=/private/app/oracle/product/8.0.3)

  # #PRESPAWN CONFIG

  # (PRESPAWN_MAX=20)

  # (PRESPAWN_LIST=

  # (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))

  # )

  # )

  # )

  经试验,只要将其中的某些参数(比如PORT,GLOBAL_DBNAME,SID_NAME,ORACLE_HOME等)改为真实数据即可。当然,这些内容要置于listener.ora中,listener.ora放在/etc/下或者$ORACLE_HOME/network/admin/目录下。

#2


1、在计算机 开始--->管理-->服务中没有看到 OracleOraHome92TNSListener 服务,但服务已经启动2、C:\>lsnrctl start 执行完后报open service error。然后在计算机 开始--->管理-->服务中看到  了 OracleOraHome92TNSListener 服务 
3、运行regedit.exe启动注册表编辑器,在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/下的Services和CurrentControlSet/Services下找到OracleOraHome92TNSListener项,在右边窗口按右键,新建/字符串,取名ImagePath。
双击新见的建,在“数值数据”项输入D:\oracle\ora92\bin\TNSLSNR.EXE(根据你自己的实际情况进行修改),确定完成。 
再次在服务中双击打开OracleOraHome92TNSListener的服务看到其“可执行文件的路径”一栏已经显示了其正确的值。这时你可以启动监听了。4、C:>tnsping 数据库SID。看看tns服务没有起来。如果没有起来,用下面的命令
c:\>lsnrctl
lsnrctl>start把这个服务起动起来。

#3


由于选择的是主机名,修改:
C:\oracle\ora90\network\admin\TNSNAMES.ORA
内容如下:
hostname =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1523))
      
    )
    (CONNECT_DATA =
      (SID = db)
    )
  )

hostname 与 IP要对应

#4


可以把那个文件删除,在dos下运行netca重新建立监听试一下。。

#5


netca删除监听,然后在重新添加一个!

#6


我是做了就是不管用

#7


安装ORACLE的时候请关闭网络

#1


问题:Oracle中,如果不配置好合适的listener.ora文件,启动监听器时就会报错:The listener supports no services。该怎么配置呢?

  回答:Oracle给了个监听器配置文件的例子,内容如下:

  # LISTENER =

  # (ADDRESS_LIST=

  # (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))

  # (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

  # SID_LIST_LISTENER=

  # (SID_LIST=

  # (SID_DESC=

  # #BEQUEATH CONFIG

  # (GLOBAL_DBNAME=salesdb.mycompany)

  # (SID_NAME=sid1)

  # (ORACLE_HOME=/private/app/oracle/product/8.0.3)

  # #PRESPAWN CONFIG

  # (PRESPAWN_MAX=20)

  # (PRESPAWN_LIST=

  # (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))

  # )

  # )

  # )

  经试验,只要将其中的某些参数(比如PORT,GLOBAL_DBNAME,SID_NAME,ORACLE_HOME等)改为真实数据即可。当然,这些内容要置于listener.ora中,listener.ora放在/etc/下或者$ORACLE_HOME/network/admin/目录下。

#2


1、在计算机 开始--->管理-->服务中没有看到 OracleOraHome92TNSListener 服务,但服务已经启动2、C:\>lsnrctl start 执行完后报open service error。然后在计算机 开始--->管理-->服务中看到  了 OracleOraHome92TNSListener 服务 
3、运行regedit.exe启动注册表编辑器,在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/下的Services和CurrentControlSet/Services下找到OracleOraHome92TNSListener项,在右边窗口按右键,新建/字符串,取名ImagePath。
双击新见的建,在“数值数据”项输入D:\oracle\ora92\bin\TNSLSNR.EXE(根据你自己的实际情况进行修改),确定完成。 
再次在服务中双击打开OracleOraHome92TNSListener的服务看到其“可执行文件的路径”一栏已经显示了其正确的值。这时你可以启动监听了。4、C:>tnsping 数据库SID。看看tns服务没有起来。如果没有起来,用下面的命令
c:\>lsnrctl
lsnrctl>start把这个服务起动起来。

#3


由于选择的是主机名,修改:
C:\oracle\ora90\network\admin\TNSNAMES.ORA
内容如下:
hostname =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1523))
      
    )
    (CONNECT_DATA =
      (SID = db)
    )
  )

hostname 与 IP要对应

#4


可以把那个文件删除,在dos下运行netca重新建立监听试一下。。

#5


netca删除监听,然后在重新添加一个!

#6


我是做了就是不管用

#7


安装ORACLE的时候请关闭网络