AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 707878
Accepted
Lenniey
Lenniey
Asked: 2015-07-24 02:00:09 +0800 CST2015-07-24 02:00:09 +0800 CST 2015-07-24 02:00:09 +0800 CST

来自网络共享上的应用程序的连接失败

  • 772

编辑: 我测试了更多......如果我将 nslookup 从 Windows 目录复制到我的映射网络驱动器,它不能'解析主机名:

H:\nslookup dbserver
(null)   UnKnown
Address:  192.168.0.195

如果我使用 C:: 中的默认 nslookup

C:\>nslookup dbserver

Server:  dnsserver.dom.local
Address:  192.168.0.195

Name:    dbserver.dom.local
Address:  192.168.0.231

所以它与oracle没有任何关系,我将更改标题和标签。


我的同事创建了使用已安装的 Oracle 客户端连接到远程 Oracle 数据库的应用程序。从 DFS 上的映射驱动器(在两台服务器上)运行这些应用程序会导致连接成功。从另一台服务器(独立文件服务器)上的映射驱动器运行它们会导致没有任何连接。我通过 Wireshark 对其进行了跟踪,并观察到甚至没有尝试建立连接(根本没有 oracle 数据包正在退出客户端)。

我在数据库服务器、filserver 和客户端上禁用了防火墙,但无济于事。所有映射的网络驱动器(DFS 和标准文件服务器)都已放入 Intranet 区域。

如果我tnsping从本地 Oracle 客户端安装中使用,我可以解析主机:

OK (20 ms)

如果我使用tnsping放置在文件服务器上的映射网络驱动器中,我不能:

TNS-12545: Connect failed because target host or object does not exist

到相同的 Oracle-DB。

我在这里不知所措,请参阅下面的失败尝试日志摘录:

nfun2awanm: Getting the path of sqlnet.ora
nnfun2awanm: Getting the adapter name
nnfun2awanm: exit
nsmal: 216 bytes at 0x75e228
nscall: connecting...
snlinGetAddrInfo: entry
snlinGetAddrInfo: getaddrinfo() failed with error 11003
snlinGetAddrInfo: exit
nlad_expand_hst: GetAddrInfo call failed
nladini: entry
nladini: exit
nladget: entry
nladget: exit
nsmal: 89 bytes at 0x7b2c48
nsc2addr: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbserver)(PORT=1521))(CONNECT_DATA=(SID=instance)))
nttbnd2addr: entry
snlinGetAddrInfo: entry
snlinGetAddrInfo: getaddrinfo() failed with error 11001
snlinGetAddrInfo: exit
nttbnd2addr: looking up IP addr for host: dbserver
snlinGetAddrInfo: entry
snlinGetAddrInfo: getaddrinfo() failed with error 11003
snlinGetAddrInfo: exit
nttbnd2addr:  *** hostname lookup failure! ***
nttbnd2addr: exit
nserror: nsres: id=0, op=77, ns=12545, ns2=12560; nt[0]=515, nt[1]=1003, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
nsmfr: 89 bytes at 0x7b2c48
nscall: connecting...
nladget: entry
nladget: exit

与成功的 tnsping 相比:

nnfun2awanm: Getting the path of sqlnet.ora
nnfun2awanm: Getting the adapter name
nnfun2awanm: exit
nsmal: 216 bytes at 0x31426e8
nscall: connecting...
snlinGetAddrInfo: entry
snlinGetAddrInfo: exit
snlinGetNameInfo: entry
snlinGetNameInfo: exit
snlinFreeAddrInfo: entry
snlinFreeAddrInfo: exit
nladini: entry
nladini: exit
nladget: entry
nladget: exit
nsmal: 95 bytes at 0x30f3158
nsc2addr: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.231)(PORT=1521))(CONNECT_DATA=(SID=instance)))
nttbnd2addr: entry
snlinGetAddrInfo: entry
snlinGetAddrInfo: exit
nttbnd2addr: using host IP address: 192.168.0.231
snlinFreeAddrInfo: entry
snlinFreeAddrInfo: exit
nttbnd2addr: exit
nsmal: 996 bytes at 0x3142bc8
nsmal: 2120 bytes at 0x3142fb8
nsmal: 84 bytes at 0x3143948
nsopen: opening transport...
nttcon: entry
nttcon: toc = 1
nttcnp: entry
nttcnp: exit
nttcni: entry
nttcni: Tcp conn timeout = 60000 (ms)
nttctl: entry
nttctl: Setting connection into non-blocking mode
nttcni: trying to connect to socket 564.
ntt2err: entry
ntt2err: exit
ntctst: size of NTTEST list is 1 - not calling poll
nttctl: entry
nttctl: Clearing non-blocking mode
snlinGetNameInfo: entry
snlinGetNameInfo: exit
nttcni: connected on ipaddr 192.168.0.99
nttcni: exit
nttcon: set TCP_NODELAY on 564
nttcon: exit
nsopen: transport is open

通过将这些结果粘贴到 serverfault 中,我才意识到成功的尝试可以通过 DNS 解析主机名,而失败的则不能。所以它似乎甚至与 Oracle 无关?

windows
  • 1 1 个回答
  • 1976 Views

1 个回答

  • Voted
  1. Best Answer
    Guido Vaccarella
    2015-07-24T02:39:15+08:002015-07-24T02:39:15+08:00

    如您所想,这是独立服务器上的主机名解析问题。

    使用名称的独立服务器上的 TNS 别名dbserver似乎与使用 tnsping 工作的服务器上192.168.0.231使用 IP 的别名不同。

    您可以修改tnsnames.ora独立服务器上的文件以使用 IP192.168.0.231或在文件中添加条目以hosts解析名称 dbserver

    • 1

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve