DHCP 数据库异常解决方法

DHCP数据库异常解决方法

一.问题简述:

1.���}主�}:

windows2008StandardR2DHCPServer手���客�舳私�定IP地址出�e,同�r有的用�綦��XIP地址�]有任何原因出�e。

2���}描述

1)DHCPserverconsole介面,在Vlan115�W段��MAC地址��b8ac6f626d61手�咏�定ip出�F���}�D片中的���},

但是�⒃�mac地址�定到其他vlanOK,�似�F象出�F了4次。

2)今天eric的��X�]有任何原因出�F���}�D片(2)中的�@示�e�`。

spacer.gif

3���}�D片

1)如下�D,

2

二.问题分析:

dhcpdatabasecrash,也就是dhcpdatabase出现异常,正常情况下在命令提示符下导出的database文件dhcp.txtdump.txt文件包含的内容是一样的,但是因database导出的dhcp.txt只能在UI界面显示,而无法修复dhcp.txt(直接打开dhcp.txt文件会显示乱码)里的数据,而导出的dump.txt文件可以直接打开修改相关异常数据,故修改了dump.txt文件的内容后再导入到dhcp中,也就是修改了dhcpdatabase里的内容。

1.DHCPdatabase导出,但是导出的此文件无法打开,只能在UI界面可以打开,导出命令为:

在命令提示符下C:\Users\gzpadmin>netshdhcpserverexportd:\dhcp.txtall

2.导出DUMP文件,此文件包含了DHCPscope里所有详细的信息(比dhcpUI界面看到的详细),导出命令为:

在命令提示符下C:\Users\gzpadmin>netshDHCPserverdump>d:\dump.txt

spacer.gif

3.根据有问题的vlanip地址和mac地址查看dump.txt文件里的异常信息,将异常的信息删除后保存为dump2.txt

4.dump2.txt重新导入到dhcp中,导入命令为:

在命令提示符下C:\Users\gzpadmin>netshexecd:\dump2.txt

spacer.gif

5.导入dump2.txt文件后,刷新dhcp,不需要重启dhcpservice,就可以解决此问题了。

附:具体情况如下:

情况一:

mac地址为082e5f0a5214绑定vlan124网段的ip地址出现如下异常:

spacer.gif

原因是这个mac地址在vlan124网段已经分配了124.18这个ip地址,在同一个vlan中不可以给一个mac地址分配2ip地址。

spacer.gif

情况二:

dhcpUI界面看到这种类型的异常,如下图:

spacer.gif

可能原因有当dhcpclient分配了ip地址为114.15后,在网络中有其他的client手动设定114.15ip地址,就会出现这种情况。

MS回复:收到BAD_ADDRESS的信息,是因为客户端申请IP地址时,如果自己通过ARP检测到这个IP地址已经被别的机器用了,那他就会发NACK包给DHCPserver,DHCPserver收到后就会把这个IP地址标记成BAD_ADDRESS

这种情况处理方法:删除此ip地址,刷新DHCP,重新绑定ip地址即可。

情况三:

mac地址为f46d04791032绑定vlan115网段的ip地址出现如下异常,只要是在vlan115网段为此mac地址分配任何一个ip都会出现如下界面,但是在其他vlan为此mac地址分配ipOK

spacer.gif

这种情况是dhcpdatabasecrash,也就是dhcpdatabase异常造成的。

也就是说在vlan115网段的database中已经为此mac绑定过ip地址,但是在UI界面是看不到的。处理方法如下:

1.导出dhcpdatabase文件,导出方法如下:

在命令提示符下C:\Users\gzpadmin>netshDHCPserverdump>d:\dump.txt

2.打开此dump.txt文件,查看是不是已经存在了f46d04791032这个mac地址,如下图:

spacer.gif

说明dhcpdatabase文件中已经为f46d04791032这个mac地址绑定了ip地址为10.132.115.151,不可能在同一个vlan中为一个mac地址绑定多个ip地址,所以在vlan115中为此mac地址绑定任何一个ip都是不成功的。

3.根据情况将异常的信息删除后保存为dump2.txt,将dump2.txt重新导入到dhcp中,导入命令为:在命令提示符下C:\Users\gzpadmin>netshexecd:\dump2.txt

,这步的操作也是修改dhcpdatabase的内容。导入dump2.txt文件后,刷新dhcp,不需要重启dhcpservice,就可以解决此问题了。

DHCPdatabasecrash原因分析

对于DHCPdatabasecorrupt的问题,因为问题已经发生,我们没有办法追溯到问题发生之前的状态,如果没有办法还原发生之前的状态,并重现一次问题,即使我们有您在DHCPdatabasecorrupt时的database,我们也很难启用audit,给出rootcause,但是通常我们遇到这样的问题,我们建议您对DHCPdatabase做一个定期的维护,您可以参照以下的步骤做一个定期的维护操作:

1.Toreconcileascope:

Reconcile操作方法:http://technet.microsoft.com/zh-cn/library/dd145311(v=WS.10).aspx

http://technet.microsoft.com/zh-tw/library/dd183579(v=ws.10).aspx

Reconcile的操作可以在线操作,对dhcpserverclient没有任何影响

a.OpentheDHCPManagementsnap-in.

b.ExpandtheDHCPserverobjectandhighlighttheapplicablescope

c.OntheActionmenu,clickReconcile

d.IntheReconciledialogbox,clickVerify.Inconsistenciesfoundwillbereportedinthestatuswindow

e.Ifthescopeisnotconsistent,selectthedisplayedaddressesthatneedtobereconciled,andclickReconciletorepairtheinconsistencies.

2.ToreconciletheDHCPdatabase:

a.OpentheDHCPManagementsnap-in.

b.HighlightorselecttheapplicableDHCPserverobject.

c.OntheActionmenu,clickReconcileAllScopes

d.IntheReconcileAllScopesdialogbox,clickVerify.Inconsistenciesfoundwillbereportedinthestatuswindow.

e.Ifthedatabaseisnotconsistent,selectthedisplayedaddressesthatneedtobereconciled,andclickReconciletorepairtheinconsistencies.

3.Makesurethatthecustomerhasthe%systemroot%\system32\dhcpand%systemroot%\system32\dhcp\backupfolderssetasanexceptionforAnti-Virusapplicationscanningengines.

4.UsetheMicrosoftJetpack.exeutilitytocompactorrepairtheWindowsDHCP.mdbdatabase.

jetpack.exe操作方法http://support.microsoft.com/kb/145881

jetpack.exe程序是一个字符型的命令程序,必须手工进行操作。

  Cd\winnt\system32\dhcp(进入DHCP目录)

  Netstopdhcpserver(dhcp服务器停止运行)

Jetpackdhcp.mdbtemp.mdbdhcp.mdbdhcp数据库文件,temp.mdb是用于调整的临时文件)

  Netstartdhcpserver(让dhcp服务器开始运行)

spacer.gif

5.RestoringtheDHCPserverdatabaseisusefulinsituationswherethedatabasehaseitherbecomecorruptedorlost.Inordertosuccessfullyrestorethedatabase,youneedtobackupthedatabaseonaregularbasis.Bydefault,DHCPperformssynchronousbackupsthatoccurautomaticallyata60minuteintervaltothefolderlocation%systemroot%\System32\Dhcp\Backup,butyoucanalsoperformmanualbackups,orusebackupsoftwaretocopythedatabasetootherlocations.YoucanrestoretheDHCPdatabasefromabackupcopyofthedatabasefile,Dhcp.mdb,usingtheRestorecommandontheActionmenuintheDHCPconsole.WhenyourestoretheDHCPdatabasefromabackupcopyofDhcp.mdb,thefollowinginformationisconfiguredontheserver:

Allscopes,includingsuperscopesandmulticastscopes

Reservations

Leases

Alloptions,includingserveroptions,scopeoptions,reservationoptions,andclassoptions

Allregistrykeysandotherconfigurationsettings(forexample,auditlogsettingsandfolderlocationsettings)setinDHCPserverproperties

Note:TheDNSdynamicupdatecredentials(username,domain,andpassword)thattheDHCPserveruseswhenregisteringDHCPclientcomputersinDNSarenotbackedupwithanybackupmethod;thereforetheyarenotrestoredduringtherestoreprocedure.AfterrestoringtheDHCPdatabase,configurecredentialsfortheserver.

Areconcile协调机制是什么,是协调dhcpdatabase注册表的设置?还是协调dhcpserverclient之间的信息?

您说当dhcpdatabase老化,也就是dhcpdatabase的设置和相关内容与注册表(还是client)不一致时,reconcile操作会使其一致?

Q:主要是DHCPdatabase自己检查简单的语法问题和逻辑问题,和注册表不能说完全没有关系,但是基本不会有易动,只是常规的检查以下。这里的语法问题或逻辑问题包括:1).ipaddress对应的host信息不正确,比如hostname丢失,错误;2).ipaddress丢失,比如4段ip10.132.126.80,变成了3段ip10.132.126.;3).dhcpdatabasecrash;

A:是不是dhcpserver的任何设置或修改都会写到注册表中?

Q:不是,注册表里存的是DHCP的一些全局配置,DHCPdatabase里存的是信息。

A:您说dhcpclient分配ip地址的动作也会写到注册表中?

Q:这个不会.

A:Jetpack.exe的机制是什么,具体是如何优化数据库的?先压缩后释放是什么意思?

此操作除了需stopdhcpservice之外,对dhcp还有没有其他的影响?

Q:类似于磁盘碎片整理。在database数据表中有很多数据块,当某些数据块不再使用就空出了数据表,这样有数据的数据表和没有数据的数据表很分散,通过Jetpack.exe会整理数据表,将有数据的数据表整理到一起,没有数据的数据表整理到一起,这样达到释放空间的作用。请避开高峰操作。

A:我们通常删除ip地址的方法是选择ip右键删除。这种删除实际上该ipdatabase里还是存在的。

请教我们这种操作是正确的吗,还是说要用其他方法删除ip?能否麻烦您告知正确删除ip的方法?可以在UI的同时也在database里删除

QDHCPlease的删除只有在DHCPmanager里面可以删,您不用担心UI和我们上次所说的database不同步的问题,上次没有显示在UI界面,是偶然现象,是因为DHCPdatabasecorrupt掉导致的,不会经常发生。请您放心。

技术链接可供参考:

-------------------------------------------

173396HowtoRestoreaCorruptedDHCPDatabaseFile

http://support.microsoft.com/default.aspx?scid=kb;EN-US;173396

283251HowtousetheJetpackutilityonaclusteredWINS/DHCPdatabase

http://support.microsoft.com/default.aspx?scid=kb;EN-US;283251

145881HowtoUseJetpack.exetoCompactaWINSorDHCPDatabase

http://support.microsoft.com/default.aspx?scid=kb;EN-US;145881

另外根据我们的经验,可以提供可能造成DHCPdatabasecorruptpossiblecause

-----------------------------------------------------------------------------------------------------------

1.三方的应用程序和服务干扰了DHCPdatabase的读写操作。

2.检查磁盘读写是否正常,需要具体检查一下您的磁盘。

3.是否安装了三方安全软件,可以控制安全软件的扫描程序,将DHCP服务排除在外,以防干扰。

另外对于您的第二个问题,这里需要解释的就是,我们前面所提供的cleanboot加二分法的步骤,就是可以定位具体是哪个三方服务可能干扰DHCPservice还有造成这个问题的rootcause跟第一个问题DHCPdatabasecorrupt肯定不相关,如果要追踪这个新问题,我们需要您上一个新case继续跟踪,同时您可放心,SA的客户可以免费上无限个case,不会对您有额外的收费要求,谢谢您一直以来的耐心和配合。

你可能感兴趣的:(数据库,windows,server,database,IP地址)