我们的Windows管理员已发现克隆Windows服务器的方式存在问题。显然,某些克隆的服务器在操作系统级别最终具有相同的SID。我听说Microsoft不支持具有重复SID的服务器。因此,这些服务器上的SID需要更改。
我很好奇这如何影响SQL Server。有任何想法吗?它如何影响集群数据库服务器?
我们的Windows管理员已发现克隆Windows服务器的方式存在问题。显然,某些克隆的服务器在操作系统级别最终具有相同的SID。我听说Microsoft不支持具有重复SID的服务器。因此,这些服务器上的SID需要更改。
我很好奇这如何影响SQL Server。有任何想法吗?它如何影响集群数据库服务器?
Answers:
不理会SID。NewSID已退休,因为Mark Russinovich进行了一些挖掘,发现整个“重复的SID ==不好!” 在过去的十年左右的时间里,我们所有人的脑袋都被打成一片了,这简直是胡说八道。
请参阅Mark的最新博客文章:机器SID复制神话。
我绝对建议您不要更改SID,直到您阅读以下内容:使用NewSID更改计算机SID会破坏SQL Server(以及如何修复)
显然,某些克隆的服务器在操作系统级别最终具有相同的SID。
我可能会猜测所有克隆的系统都具有相同的SID。GhostWalk可以为您重新生成SID。在初始克隆映像上使用sysprep也可以节省将来的系统。
如果安装了SQL Server,请不要更改SID。坏事会发生。
您可以使用sysinternals NewSID:http ://technet.microsoft.com/zh-cn/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 server服务。
如果您的数据库使用Microsoft分布式事务处理协调器进行远程事务处理,请注意,克隆的计算机还具有相同的MSDTC ID,该ID不是SID,也不会被NewSID更改。
您将在事件查看器中看到以下内容:
本地MS DTC检测到SERVER上的MS DTC具有与本地MS DTC相同的唯一标识。这意味着两个MS DTC将无法相互通信。如果使用不受支持的克隆工具克隆了其中一个系统,则通常会出现此问题。MS DTC要求使用受支持的克隆工具(例如SYSPREP)来克隆系统。从命令提示符运行“ msdtc -uninstall”然后运行“ msdtc -install”将解决此问题。注意:运行'msdtc -uninstall'将导致系统丢失所有MS DTC配置信息。
我这样解决:
msdtc -uninstall
等待几分钟,然后
msdtc -install
sc config msdtc start= auto
sc start msdtc
使用现在由Microsoft拥有的工具NewSID或sysprep,这类似于重新安装Windows而不复制所有文件。
我不认为您可以使用相同的SID将两台计算机加入到同一域中,因此我想说群集SQL Server不会有机会,因为服务器必须位于域中。
克隆系统的唯一受支持方法是使用sysprep。为什么不克隆SQL Server有很多原因:
-Microsoft CSS不支持。
-SQL在“重命名”之前无法正常工作。
-如果您有报告服务,则也会进行软管处理。
-系统和网络服务帐户将获得新的SID和密码,因此,如果将它们用作服务帐户,将会有些麻烦。
-SQL Server使用该格式创建了很多本地组。SQLServer2005MSSQLUser $$ MSSQLSERVER。不支持重命名这些
为了纠正这种情况,我会-
断开群集,重建系统,安装SQL,创建新群集,在尚未重建的服务器上运行备份-然后停止它,将备份还原到新群集,将应用程序指向新群集,重建其余的群集服务器并将其添加到新集群
-或者(可能更容易)为什么不使用新名称构建新服务器(这将解决任何类型的SID的潜在问题),然后中断集群安装SQL,将其加入集群,故障转移到该框,然后重复该过程,方式,无需停机,也无需备份/还原(尽管我还是建议您这样做)。我们使用zznode1,zznode2和集群名称,这样创建zznode3并将其连接到集群非常简单,因为在集群中未引用该节点。希望能有所帮助。