我们的Windowspipe理员已经发现了克隆Windows服务器的一个问题。 显然,一些克隆的服务器在操作系统级别具有相同的SID。 我听说微软不支持有重复的SID的服务器。 因此,这些服务器上的SID需要更改。
我很好奇这是如何影响SQL Server的。 有任何想法吗? 它如何影响集群数据库服务器?
独自离开SID。 NewSID已经退休了,因为Mark Russinovich做了一些挖掘,发现整个“重复的SID ==不好!” 在过去十年左右,我们所有人都被卷入了我们的头骨,这只是一片废话。
请参阅Mark的最新博客条目: The Machine SID Duplication Myth 。
我肯定会build议不要更改SID,直到您阅读后: 更改计算机SID与NewSID中断SQL Server(以及如何解决它)
显然,一些克隆的服务器在操作系统级别最终具有相同的SID。
我会冒险猜测你所有的克隆系统都有相同的SID。 GhostWalk可以为您重新生成SID。 在初始克隆映像上使用sysprep也可以节省您未来的系统。
如果您安装了SQL Server,请不要更改SID。 坏事会发生。
您可以使用sysinternals NewSID: http ://technet.microsoft.com/en-us/sysinternals/bb897418.aspx
在SQL中更改计算机名称:
use master sp_dropserver '<old computer name>' GO sp_addserver '<new computer name>', local GO sp_helpserver -- will show you the new computer name
然后重新启动sql服务器服务。
如果您的数据库使用Microsoft分布式事务处理协调器执行远程事务,请注意,克隆的计算机也具有相同的MSDTC ID,而不是SID,并且不会被NewSID更改。
你会在事件查看器中看到这个:
本地MS DTC检测到服务器上的MS DTC具有与本地MS DTC相同的唯一标识。 这意味着两个MS DTC将无法相互通信。 如果其中一个系统是使用不受支持的克隆工具克隆的,则通常会出现此问题。 MS DTC要求使用受支持的克隆工具(如SYSPREP)克隆系统。 运行“msdtc -uninstall”然后在命令提示符下运行“msdtc -install”将会解决这个问题。 注意:运行“msdtc -uninstall”会导致系统丢失所有的MS DTCconfiguration信息。
我这样解决:
msdtc -uninstall
等几分钟
msdtc -install sc config msdtc start= auto sc start msdtc
使用现在Microsoft拥有的工具NewSID或sysprep,这就像重新安装Windows没有所有的文件复制。
我不认为你可以join两台计算机到相同的SID相同的域名,所以我会说群集SQL服务器将无法忍受的机会,因为服务器需要在一个域。
sysprep是克隆系统唯一受支持的方式。 有一堆为什么不克隆一个SQL服务器的原因:
– 它不受Microsoft CSS的支持。
-SQL在“重命名”之前将不能正常工作。
如果你有报告服务,它也会被清理。
– 系统和networking服务帐户将获得新的SID和密码,所以如果您将这些帐户用作服务帐户,将会有一些痛苦。
-SQL Server使用这种格式创build好几个本地组。 SQLServer2005MSSQLUser $$ MSSQLSERVER。 不支持重命名这些
为了纠正这种情况,我会 –
打破集群,重build系统,安装SQL,创build新集群,在未重build的服务器上运行备份,然后停止,将备份恢复到新集群,将应用程序指向新集群,重build剩余的服务器并将其添加到新群集
– 或者(可能更简单)为什么不用新的名字构build一个新的服务器(这将解决任何types的SID的潜在问题),然后中断群集安装SQL将其join群集,故障转移到该框,然后重复该过程方式没有宕机,也不需要备份/恢复(虽然我build议你尽pipe如此)。 我们使用zznode1,zznode2和创buildzznode3的方式创buildzznode3的集群名称很简单,因为集群中没有引用节点。 希望有所帮助。