我试图更好地了解Active Directory如何处理架构更新,特别是该过程的安全性,给定AD的严重程度以及需要更新的情况的范围。例如,Exchange 2007,OCS,SCOM都需要更改架构,而不仅仅是考虑从Windows 2003到Windows 2008基础架构的重大转变时发生的事情。
我在寻找的是关于方案更改的最佳回退计划的建议,以防万一它确实出错了。例如,在更新期间使一个DC脱机并在架构更新失败时使用该DC还原整个环境是否可以接受?重新激活架构更新期间脱机的DC是否有任何问题?
我试图更好地了解Active Directory如何处理架构更新,特别是该过程的安全性,给定AD的严重程度以及需要更新的情况的范围。例如,Exchange 2007,OCS,SCOM都需要更改架构,而不仅仅是考虑从Windows 2003到Windows 2008基础架构的重大转变时发生的事情。
我在寻找的是关于方案更改的最佳回退计划的建议,以防万一它确实出错了。例如,在更新期间使一个DC脱机并在架构更新失败时使用该DC还原整个环境是否可以接受?重新激活架构更新期间脱机的DC是否有任何问题?
Answers:
模式更新是一种单向功能。您只能向AD添加新架构,而不能删除任何内容。因此,当软件需要架构扩展或更新时,您应该始终仔细评估替代方案;确保这是您愿意使用的东西。
首先,请确保您具有AD数据库的良好备份副本(通常为%SystemRoot%\ ntds \ NTDS.DIT)!妥善保管。
如果您的林中只有一个DC,那将非常简单。只需按照说明运行adprep(或让软件更新AD本身)。
如果您有多个DC,请确保dcdiag
和没有报告任何错误replmon -syncall
。确保已备份每个AD数据库(来自每个DC)。确定具有架构主机角色的DC。尽可能在该服务器上进行所有更新。
在大多数情况下,AD将保护自己免受失败的架构更新的影响。如果LDIF文件未通过语法(例如在更新过程中显示BSOD),则不会加载该文件。每个“更新”都有其自己的LDIF文件集。
我从未见过架构更新(只要正确完成)会出错。事实证明,MS确实确实竭尽全力使这一过程可靠而可靠。我可以看到发生任何不良情况的唯一真实情况是,如果您在中途断电(即使我不确定),或者如果您的广告已经开始使用(在这种情况下,您会有更大的问题)。
架构升级真正要做的就是用新的对象类和属性(应用程序或更新版本的AD可以利用)扩展AD,因此灾难的范围非常有限。 这篇technet文章提供了不错的概述,并介绍了一些潜在的坏事发生案例。
对我而言,标准方法是确保所有事情都事先正常运行(通过dcdiag,replmon等),并确保我有一个已知的AD备份,以防万一发生最坏的情况。我将尽可能长时间地保留此备份,因为AD可能非常健壮,以至于问题以后可能不会出现很长时间。因此,标准备份和还原将是我的回滚。但是就像我说的那样,我从未见过这种情况。
单直流离线方法适用于小型环境。对于大型环境,我希望在未连接的DC上执行更新。提供更新过程成功完成,然后将其连接到网络并复制更改。在这种情况下,撤消就像拉一个镜像集的一个驱动器,然后关闭DC并重新插入更新前的当前良好驱动器一样简单。
在具有数百或数千个dc的大型网络上,重新插入良好的dc方法将不切实际。