记一次oracle数据库远程连接失败的解决过程

今天在连接远程oracle数据库的时候碰到了一个问题,花了点时间去解决,所以记录一下,怕自己下次再遇到又需要花好长时间。

公司在某台windows服务器上安装了Oracle数据库,防火墙的入站出站规则已经配置完(入站出站规则配置网上有很多教程),本地的1521端口用telnet也是能通的,然而即便是局域网内,也无法telnet通该服务器的1521端口。

一开始以为会不会是入站出站规则配置有问题导致的,仔细检查后发现没有问题,然后想到是否要修改hosts文件,尝试修改后依然无法访问,说明与hosts文件无关。查阅了蛮多资料,最后修改了oracle安装路径(…\product\11.2.0\dbhome_1\NETWORK\ADMIN)下的 listener.ora 文件,由:

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

改成了:

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

修改了HOST,然后重启oracle数据库,再次尝试访问,成功!



这里碰到了一个小插曲,别的同事连接的时候正常,我连接时提示我 ORA-12638:身份证明检索失败,这个问题的解决方式是修改远程数据库 listener.ora 同一级下的 sqlnet.ora 文件,将:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

改为:

SQLNET.AUTHENTICATION_SERVICES= (BEQ, NONE)

修改完再重启一下oracle数据库,连接,成功!

你可能感兴趣的:(Oracle)