Microsoft 将 Microsoft SQL Server 2012 修复分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。
症状
将 Microsoft SQL Server 2008 或 Microsoft SQL Server 2008 R2 群集实例升级到 Microsoft SQL Server 2012 群集实例时,升级操作将失败。 此外,你还会收到以下错误消息:
SQL Server 升级操作期间出现错误。 安装程序无法移动故障转移群集资源组并使其联机。 若要继续此升级操作,请将资源组手动联机,然后重试设置。 原因:群集组 "ClusterGroupName" 无法在节点 "任何可用节点" 上联机。 错误:从提供商处调用群集代码时出现故障。 异常消息:常规失败。 状态代码:997。 说明:重叠的 i/o 操作正在进行。
注意 当群集实例包含许多数据库时,可能会出现此问题。
原因
出现此问题的原因是群集升级操作期间发生了超时。 群集组的升级数据库所花费的时间比预期长得多。 在这段时间内,SQL Server 群集资源保持为 "联机挂起" 状态。 这将导致升级操作失败。注意群集组等待五分钟以使资源在另一个节点上联机。
解决方案
累积更新信息
SQL Server 2012
此问题的修补程序首次在 SQL Server 2012 的累积更新2中发布。有关如何获取此累积更新包的 SQL Server 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2703275 SQL Server 2012 累积更新包2注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本
解决方法
若要解决此问题,请按照下列步骤操作:
-
一次升级大约一半的被动节点。 若要阻止设置操作将资源组移动到任何已升级的节点,请使用以下参数:
/FAILOVERCLUSTERROLLOWNERSHIP=0
有关 /FAILOVERCLUSTERROLLOWNERSHIP 参数的详细信息,请转到以下 MSDN 网站:
-
将步骤1中升级的节点手动添加到 "网络名称" 资源的 "可能所有者" 中。
-
将资源组手动移动到已升级的节点,并等待该组联机。
-
从 "网络名称" 资源的可能所有者中手动删除未升级的节点。
-
升级群集节点的其余部分。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。