Linux下解决TNS-12541 TNS no listener问题


场景

Navicat连接远程oracle数据库,数据库搭建在Redhat 7.1服务器上,莫名出现这个问题。

解决办法

  • 检查监听状态
  • 无监听,则查看监听文件

查看监听状态lsnrctl status

如果有监听,则如下图,显示有服务orcl(服务名)监听。

如果没有监听,查看监听文件

cd /opt/oracle/product/oraHome/network/admin

tnsnames.ora:用于客户端,提示客户端从哪个监听实例连接。

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = node75)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

listener.ora:用于服务端,用于提示服务端监听哪些实例。

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST =node75)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = /opt/oracle

其中HOST为当前主机名,之前将主机名更改,忘记(其实就是不知道)修改oracle监听的主机名。

开启oracle

配置完成,开启oracle

lsnrctl start  #开启监听
dbstart    # 启动用户实例

文章作者: 苏叶新城
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 苏叶新城 !
  目录