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


场景

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

解决办法

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

查看监听状态lsnrctl status

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

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

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

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

1
2
3
4
5
6
7
8
9
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node75)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

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

1
2
3
4
5
6
7
8
9
10
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

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

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