我想知道是否有其他人做了这个,后来遇到任何问题,或者如果根据我所描述的,任何人都可以build议我可能遇到的问题types:
我将Windows 2008 R2 Datacenter作为我的Hyper-v主机,并在其上运行Windows 2008 R2 Ent guest VM。
在进行重大更新之前,我保存了guest虚拟机的VHD文件的副本(这是来宾VM上的C:驱动器)。 这不是快照,只是VHD文件的复制/粘贴。
在SQL Server 2012升级的一些困难和挫折之后,我决定放弃故障排除(我有一个简短的维护窗口来处理),而是停止了VM。 然后将VHD文件更改为之前保存的以前的副本。
VM已启动,但未被域控制器识别。 我删除并重新将其添加到域,然后没有重大问题。 我完成了升级,没有以前的问题和安装Windows更新也没有问题。
这被认为是不好的做法? 我可以保持这个虚拟机,还是我需要从头重build,以避免exception与操作系统? 如果你是一个领导系统pipe理员,这是一个生产箱,你会允许吗? 谢谢
首先,您需要了解的Windows机器/域的一些基本概念(可能已经或可能不知道):
计算机就像用户一样是安全主体
名称只是对底层SID的人性化引用
计算机在启动时对域进行身份validation
计算机帐户也有密码(默认情况下每30天更改一次)
基本上,当你在你的机器中卡住了旧的VHD时发生了什么(我打赌),计算机帐户的本地密码与DC对于计算机帐户的密码不匹配,因为密码在备份你做了,你恢复的时间。 因此,域控制器将不会让计算机进行身份validation,并且您看到的错误是失败的信任关系。
这依赖于一两个假设,最值得注意的是你的备份和失败的机器没有不同的SID,这也将打破域信任。 当您重命名计算机或将计算机join与现有帐户同名的域时,通常会发生这种情况。 新更名的计算机将尝试使用其新的SID进行身份validation,但名称映射到旧的SID,因此当AD检查时,SID不匹配,身份validation失败。
因此无论哪种方式,当您“恢复”旧备份时,基本上都会破坏虚拟机与域之间的身份validation。 我相信你可以看到为什么这是不好的。 (如果它只是机器密码,那就不那么糟了,而不是一个不同的SID,值得一提的是)
为什么这样做是不好的做法是主观的,会从不同的pipe理员得到不同的答案(或不同的具体问题),但我的答案基本上是不好的做法,因为有一个更好的方法来做到这一点,不打破域名authentication或增加复杂性和未知数混合。 (备份的年龄有多大?系统之间和之后发生了什么变化?依赖于那些可能会破坏或导致难以排除故障的变化?)这也是不好的做法,因为听起来你没有实际的,有效的备份,还是一个快速的过程,以便在需要时从[真实]备份中恢复。 这很糟糕,因为我希望你不需要澄清。
说了这么多,听起来好像你是相对安全的。 (当然,假设旧备份不会丢失一堆SQL数据,或者安装了旧版本的东西,或者其他任何基本的东西)。不同的计算机帐户密码将不会在任何地方被引用,计算机的完整的SID也不会在AD之外被引用,所以改变它不应该引起问题。 (但是就像任何一个pipe理人员曾经在这个区块一次或两次一样,我已经看到了会让你的血液凝固并导致我的排位赛结果的东西,否则就是绝对的陈述。)
希望这是有帮助的。
域成员定期同步域成员资格证书。 当系统长时间处于脱机状态时,域不再识别系统凭据。 只要你不重命名系统,你可以重新join域没有问题注意,你也可以尝试NLTEST /SC_RESET:domain_name\DC_name而不是重新join域
问题是这样做的域控制器。 它有一个唯一的数字与其他域控制器共享和保持同步的数据库。 突然将其中一个恢复到旧的不同步数字是一个坏主意。
编辑:也许我有点简单。 让我再补充三点: