oracle11G 已开启监听,但远程连接依旧无监听解决过程

时间:2024-11-12 10:03:22

1、连接数据库显示无监听程序,首先查看服务器的oracle监听服务是否开启,服务名称:OracleOraDb11g_home1TNSListener(具体环境中可能不完全一样,但是认准TNSListener是没错的)

2、本地使用127.0.0.1可以连接,但使用本机IP则显示无监听,使用其他机器连接也是无监听,先排查一下防火墙问题

3、排查防火墙后依旧没有解决,那么问题根源所在:oracle的文件

解决办法:


文件路径:F:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\(具体安装路径可能有不同,请根据自己的安装路径来找),修改之后需要重启监听服务


解决过程中的一些其他技巧:

1、cmd可以使用的命令:

lsnrctl stop  停止监听服务

lsnrctl start  开始监听服务

lsnrctl reload  重启监听服务

lsnrctl status 查看监听服务状态

tnsping IP 查看该IP的监听服务是否正常 例如:tnsping 192.168.20.25


2、可以使用sqlplus进入数据库进行操作(在各种工具都无法连接数据库的情况下,sqlplus依旧坚挺)

show parameter listen 查看数据库中关于监听的配置

alter system set local_listener=‘(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))’ (修改监听配置列表中的参数,引号中的参数仅作为样例)

原先无论如何都无法连接数据库,显示无监听,进行这一步修改之后,本机使用127.0.0.1就可以连接数据库了,但其他机子以及使用IP依旧无法连接,然后才有了上面一步的操作


其他收获:

1、有些机子是认不到localhost的,所以尽量使用127.0.0.1 

2、plsql会读取F:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\文件

3、修改了文件之后,如果出现服务无法启动(提示服务没有报告任何错误),那么很有可能是文件中某个地方写错了,比如说少了个括号什么的