【引子】
手机中熟悉的旋律响起,接起电话,传来的消息却让人很是不快:紧急故障,有客户处发生AD对象意外删除的灾难,共计百余计算机帐号被误删,涉及全国范围诸多生产系统,如不及时处理,将造成大范围业务瘫痪。
刻不容缓,马上“全副武装”直奔现场。经过几近通宵的鏖战,终于完成灾难恢复。
【思考】
AD作为企业IT基础架构管理的核心,其重要程度不言而喻。能够对AD灾难恢复场景进行冷静的对待及气定神闲的处理,无疑是揽大厦之将倾的重要功劳,也是对一位系统管理员的极大考验。
本文将结合诸多项目经验及AD的理论基础,分享AD管理中可能遇到的灾难场景以及应对策略。声明一点,本文讨论的前提条件是至少有两台DC的合理的AD架构,如果因为只有一台DC,造成部份情况下不可挽回的灾难,请自备香火烧香拜佛。
注:本文只讨论不同的AD灾难场景,及应对思路,并不涉及技术细节,望读者朋友们,以全局为重,多想多练,关于技术细节的实现,将另外介绍。
1、场景一:误删除对象,有备份,但操作尚未通步至其他DC。
如果异致对象丢失的操作发现及时,尚未同步至其他DC,此时能及时切断该DC与其他DC的联系,则可以将故障限制在一台DC 上,只需要恢复备份(要进入目录服务还原模式),然后正常开机联网,让它与其他DC同步数据,则可以恢复故障。
2、场景二:误删除对象,有备份,操作已通步至其他DC。
通常情况下,当我们发现AD对象损坏或丢失,都已经同步至其他DC,而此时,如果单纯的利用还原备份的方法,会导致失败。原因为:被删除的对象的数据并不是真正的被删除,而是有一个墓碑生存时间,而此时进行还原操作,还原后的DC是旧的未删除的对象,其他DC上面,是新的,已经被删除的对象,当数据同步时,按照后应用有效的原则,是会以被删除为准的,所以还原后的对象还是会被删除。
此时,我们需要一种还原方法,叫做授权还原,简单说,就是将还原回来的对象的版本号人为的提高,将其强行改为最新的数据,使其同步时作为权威数据。
授权还原的思路如下:
-
进入目录服务还原模式,还原备份(注意:不要选择授权还原AD数据库,以免导致所有数据被还原到备份状态);
-
还原成功后,不要重启DC,进入命令行工具,准备进行授权还原;
-
命令及关键参数如下:ntdsutil/authoritative restore
-
提示:一定要熟悉被还原对象的LDAP名称的语法。
3、场景三:误删除对象,但无备份。
对于无备份的对象还原,主要有两种解决方法:AD回收站和墓碑还原。
对于林功能级别低于Windows 2008R2的环境,还原无备份的AD对象则只能通过墓碑还原来完成,默认情况下,被删除的对象,会成为Tombstone对象,而这类对象会被删除除登录名及SID以外的多数属性,包括密码,如果想要还原,则可以通过ldp.exe工具,修改如下两个属性即可:isdeleted、distinguishedname。
如果林功能级别达到windows 2008R2,强烈建议开启AD回收站功能,这样可以非常容易的实现AD对象的无损还原,如果服务器是Windows 2008R2,则AD回收站需要在Windows Powershell 中完成,如果服务器是Windows 2012及以上版本,AD回收站可以在图形界面下完成,就如同桌面系统传统的回收站一样方便。
关于AD回收站的几点注意事项:
AD回收站一旦开启,则无法禁用;
无法还原在AD回收站功能开启前,被删除的对象;
需要林功能级别达到Windows 2008R2才可以开启该功能;
开启AD回收站后,LDP工具则不可以再使用;
AD回收站中的对象保留期限是180天。
4、场景四:DC损坏。
对于DC损坏,又无法快速修复的情况,可以考虑重建DC,但是原DC在数据中会成为垃圾数据,需要将其清理。
可以使用命令ntdsutil来进行垃圾服务器对象清理,具体参数是metadatacleanup。如果清理的过程中,发现被清理对象是操作主机,则会弹出提示框,并可以直接迁移操作主机角色。