本文提供了一个解决方案,用于解决在 Windows DNS Server 上启用 Scaveng 以删除区域中的某些旧记录和过时记录的问题。
原始 KB 数: 2791165
现象
你可能会发现自己在 Windows DNS Server 上启用 Scaveng 以消除区域中的一些旧记录和过时记录。
配置适合环境的清理周期和老化(无刷新和刷新间隔),并等待清理周期删除记录。
你注意到,清理周期运行,但不删除带有旧时间戳的记录。
你决定等待另一个清理周期运行,但仍不会删除记录。
原因
你可能会遇到这种情况:DNS 区域以前是手动配置的,以便由其他服务器(使用 dnscmd)进行清理,然后在环境中禁用清理,然后在另一台服务器上再次启用。
解决方法
对于有问题的区域,请运行以下命令:
dnscmd /zoneinfo contoso.com
(例如,我将使用区域作为 contoso.com)你将获得如下所示的结果:
Zone query result:
Zone info:
ptr = 0000000000327C90
zone name = ocntoso.com
zone type = 1
shutdown = 0
paused = 0
update = 2
DS integrated = 1
read only zone = 0
in DS loading queue = 0
currently DS loading = 0
data file = (null)
using WINS = 0
using Nbstat = 0
aging = 1
refresh interval = 168
no refresh = 168
scavenge available = 3606130
Zone Masters NULL IP Array.
Zone Secondaries NULL IP Array.
secure secs = 3
directory partition = AD-Domain flags 00000015
zone DN = DC=contoso.com,cn=MicrosoftDNS,DC=DomainDnsZones,DC=contoso,DC=com Scavenge Servers
Ptr = 000000000031D480
MaxCount = 1
AddrCount = 1
Server[0] => af=2, salen=16, [sub=0, flag=00000000] p=13568, addr=192.168.1.1
在这里,你会注意到 IP 地址 192.168.1.1。 它是有权清理区域(很可能是不再存在的服务器)的服务器 IP 地址(如果不是你配置 Scaveng 的服务器 IP 地址,则需要更改该地址。 若要更改区域的 Scavenging 服务器,请运行以下命令:
dnscmd /zoneresetscavengeservers contoso.com <Ip of the current DNS Server>
其中 <,当前 DNS 服务器的 IP 是配置 Scavenging 的 DNS 服务器的> IP 地址。
详细信息
以下命令重置所有清理服务器设置,并删除手动指定的服务器。
dnscmd /zoneresetscavengeservers contoso.com (without ip address).
注意
通过清理删除过时记录的最长时间是(无刷新间隔 + 刷新间隔 + 清理周期间隔)。