plsql远程连接oracle的纠结。。

标题很唬人,最后很崩溃。。

下午在服务器(win2003 64bit)上建好oracle实例,在客户端本地配置好tnsname.ora里的服务名。

testxgd =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.132)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = testxgd)
    )
  )

结果plsql连不上。

开启服务器上的监听程序:

开启远程监听服务:
lsnrctl start
关闭远程监听服务:
lsnrctl stop
查看监听状态:
lsnrctl status

服务器本地可以测试:

c:>tnsping testxgd

如果客户端本地装了oracle客户端,可执行远程测试:
c:>tnsping 192.168.1.132:1521/testxgd

结果因为服务器本地测试一直失败,然后苦苦研究D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN目录下的三个ora配置文件,各种改。

还是不行。最后把三个文件还改成原来的配置,如下:

tnsname.ora:

testxgd =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = svctag-8d8bk2x)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testxgd)
)
)

listener.ora:

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = svctag-8d8bk2x)(PORT = 1521))
)
)

sqlnet.ora:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

特此记录下来,以防以后忘了乱改。。

突然想起了防火墙。。于是跑到组里其他oracle服务器上一看,防火墙果然都关了,虽然这不太安全,但是。。顾不了那么多了。。

于是把132的防火墙狠狠的关了,也不选择过滤规则了。。结果一连,松松的就成功了!

虽然此时本地tnsping testxgd还是报无效的TNS 03505 :无法解析名称的错误。补充一下,后来我把实例删除,重新建了一下,就完美了。

好伤。。

结论:不要轻易把问题想得很复杂,先从常识入手。防火墙。。。

原文地址:https://www.cnblogs.com/peterpanzsy/p/2989805.html