我不是管理员,但由于我们的常规人员正在休假,问题就落在了我的头上。我会尽可能简短地讲。
我们注意到我们的 SQL Server 2005 实例表现得很奇怪:应用程序启动,应用程序无法连接到数据库。但是,应用程序在重新启动后工作正常。SQL Server Managemetn Studio 也是如此。在多台网络计算机上都观察到了这种行为,因此它可能不是客户端问题。同时,使用服务器的 IP 地址始终有效,对我这个新手来说,这看起来像是名称解析问题。
按名称 ping 服务器,Destination host unreachable
第一次尝试会成功,后续尝试都会成功。等待一段不确定的时间后,同样的循环会重复。再次,ping 服务器的 IP 可以完美运行。
事件查看器在 DNS 部分包含错误 4004 和 4015。使用 Google 修复这些错误的尝试目前尚未成功。
问题:有简单的解决办法吗?
更新
我设法通过重新安装 DNS 服务消除了错误 4004,尽管错误 4015 仍然存在。
我注意到的另一件有趣的事情与第一次 ping 失败有关:
Pinging oxyserver [169.254.2.62] with 32 bytes of data:
Reply from 169.254.74.29: Destination host unreachable.
Reply from 169.254.74.29: Destination host unreachable.
我不知道它是如何得到这个 IP 地址(169.254.2.62)的,因为此后,ping 就正确获取了服务器的 IP 地址,并且工作正常:
Pinging oxyserver [192.168.1.201] with 32 bytes of data:
Reply from 192.168.1.201: bytes=32 time<1ms TTL=128
Reply from 192.168.1.201: bytes=32 time<1ms TTL=128
更新2
根据要求,结果dnscmd /info
Query result:
Server info
server name = oxyserver.Oxy.loc
version = 0ECE0205 (5.2 build 3790)
DS container = cn=MicrosoftDNS,cn=System,DC=Oxy,DC=loc
forest name = Oxy.loc
domain name = Oxy.loc
builtin domain partition = ForestDnsZones.Oxy.loc
builtin forest partition = DomainDnsZones.Oxy.loc
last scavenge cycle = not since restart (0)
Configuration:
dwLogLevel = 00000000
dwDebugLevel = 00000000
dwRpcProtocol = FFFFFFFF
dwNameCheckFlag = 00000002
cAddressAnswerLimit = 0
dwRecursionRetry = 3
dwRecursionTimeout = 15
dwDsPollingInterval = 180
Configuration Flags:
fBootMethod = 3
fAdminConfigured = 0
fAllowUpdate = 1
fDsAvailable = 1
fAutoReverseZones = 1
fAutoCacheUpdate = 0
fSlave = 0
fNoRecursion = 0
fRoundRobin = 1
fStrictFileParsing = 0
fLooseWildcarding = 0
fBindSecondaries = 1
fWriteAuthorityNs = 0
fLocalNetPriority = 1
Aging Configuration:
ScavengingInterval = 0
DefaultAgingState = 0
DefaultRefreshInterval = 168
DefaultNoRefreshInterval = 168
ServerAddresses:
Addr Count = 2
Addr[0] => 192.168.1.201
Addr[1] => 169.254.2.62
ListenAddresses:
NULL IP Array.
Forwarders:
NULL IP Array.
forward timeout = 5
slave = 0
Command completed successfully.
这两个地址显然是一个危险信号。
在“网络连接/高级”中更改 NIC 的优先级似乎已经解决了错误 4015。但是,原始问题仍然存在。
答案1
鉴于它第一次尝试时给出的 APIPA 地址,我倾向于认为您的名称服务器已损坏,或者某处有错误的 DNS 记录。检查返回错误地址的主机的记录。
试试这个:打开命令提示符。输入ipconfig /flushdns
。现在尝试 ping 服务器并查看结果。
答案2
您的服务器有多少个 NIC?我曾在工作中看到过此错误,当时 [不知何故] 另一个 NIC 的优先级被设置为高于主 NIC。
编辑 你能检查一下你的 ARP 缓存吗?我认为 Daniel 已经发现了 APIPA 的一些问题。
打开命令提示符并输入arp -a
并发布输出。
答案3
“按名称 ping 服务器会导致第一次尝试时无法访问目标主机”
这里可能有点“牵强”,但您可以查看一下服务器 NIC 上的电源管理设置。通常在所有设置和运行后,它不应更改。
答案4
我设法通过禁用第二个网络适配器(TAP-Win32 Adapter v9)解决了该问题,该适配器被列为断开连接,但由于某种原因被分配了一个 IP 地址。
感谢大家的帮助。Josh 建议我运行 ,这促使我找到了解决方案arp -a
。当它没有返回 169.xxx 地址的任何内容时,我突然想运行ipconfig /all
,结果将 169.xxx 地址列在另一个 NIC 旁边。简单地禁用然后重新启动就可以解决问题。