适用于:SQL Server
本主题提供有关以下问题的信息:
故障排除的基本步骤。
从故障转移群集故障中恢复。
解决最常见的故障转移群集问题。
使用扩展存储过程和 COM 对象。
故障排除的基本步骤
第一个诊断步骤是运行最新的群集验证检查。 有关验证的详细信息,请参阅创建故障转移群集:验证配置。 这可以在不中断任何服务的情况下完成,因为它不影响任何联机的群集资源。 一旦故障转移群集功能安装完成,就可以在任何时候,包括部署群集前、创建群集期间以及群集运行时进行验证。 实际上,一旦群集处于使用状态就会执行其他测试,检查高度可用的工作负载是否遵循了最佳做法。 在这几十项测试中,只有几项会影响正在运行的群集工作负载,而这些工作负载都处于存储类别中,因此跳过这整个类别是避免破坏性测试的简便方法。
故障转移群集附带了内置的保护措施,以防止在验证过程中运行存储测试时出现意外故障时间。 如果在启动验证时该群集有任何联机组,并且存储测试保持选定状态,则会提示用户确认是否要要运行所有测试(会导致故障时间),或跳过所有联机组的磁盘测试以避免故障时间。 如果已从测试中排除整个存储类别,则不会显示此提示。 这可以使群集验证在没有故障时间的情况下进行。
如何重新验证群集
在故障转移群集管理单元中,控制台树内,确保选定“故障转移群集管理”,然后在“管理”下面,单击“验证配置”。
按照向导中的说明指定服务器和测试,然后运行这些测试。 在运行测试之后会显示 “摘要” 页。
仍位于“摘要” 页面时,单击“查看报告” 以查看测试结果。
若要在关闭向导之后查看测试结果,请参阅 %SystemRoot%\Cluster\Reports\Validation Report date and time.html ,其中 %SystemRoot% 是安装操作系统的文件夹(例如, C:\Windows)。
若要查看可帮助你解释测试结果的帮助主题,请单击“关于群集验证测试的详细信息” 。
若要在关闭向导后查看关于群集验证的帮助主题,在故障转移群集管理单元中,依次单击“帮助”、“帮助主题”和“内容”选项卡,展开故障转移群集帮助的内容并单击“验证故障转移群集配置”。 验证向导运行完毕后,“摘要报告” 会显示结果。 所有带绿色复选标记或者在某些情况下带黄色三角形标记(警告)的测试表示通过。 查看问题区域(红色的 X 或黄色的问号)时,在汇总测试结果的报表部分中,单击单个测试以查看详细信息。 任何红色的 X 标示的问题必须在疑难解答 SQL Server 问题之前解决。
安装更新
安装更新是避免系统出现问题的重要部分。 有用的链接:
从故障转移群集故障中恢复
通常,故障转移群集故障有以下两个原因:
双节点群集的一个节点出现硬件故障。 此硬件故障可能是由 SCSI 卡或操作系统中的故障造成的。
若要从此故障中恢复,请使用 SQL Server 安装程序将故障节点从故障转移群集中删除,在计算机脱机的情况下解决硬件故障,重新将计算机联机,然后将修复后的节点添加回故障转移群集实例。
有关详细信息,请参阅创建新的 SQL Server 故障转移群集(安装程序)和从故障转移群集实例失败中恢复。
操作系统故障。 在这种情况下,节点处于脱机状态,但并非无法解决该故障。
若要从操作系统故障中恢复,请恢复节点并测试故障转移。 如果 SQL Server 实例未能正确地进行故障转移,必须使用 SQL Server 安装程序从故障转移群集中删除 SQL Server ,进行必要的修复,重新将计算机联机,然后将修复后的节点添加回故障转移群集实例。
使用此方法从操作系统故障中恢复可能要花些时间。 如果很容易从操作系统故障中恢复,请不要使用此方法。
有关详细信息,请参阅创建新的 SQL Server 故障转移群集(安装程序)和如何:从故障转移群集失败中恢复(案例 2)。
解决常见问题
以下列表介绍了常见的使用问题并说明如何解决这些问题。
问题:不正确使用命令提示语法安装 SQL Server
问题 1: 在从命令提示符使用 /qn 开关时,很难诊断安装程序问题,因为 /qn 开关取消了所有安装程序对话框和错误消息。 如果指定了 /qn 开关,则所有安装程序消息(包括错误消息)都将写入安装程序日志文件。 有关日志文件的详细信息,请参阅 查看和阅读 SQL Server 安装程序日志文件。
解决方法 1:使用 /qb 开关替代 /qn 开关 。 如果使用 /qb 开关,将显示每个步骤中的基本 UI(包括错误消息)。
问题:在迁移到另一个节点之后,SQL Server 无法登录到网络
问题 1: SQL Server 服务帐户无法与域控制器取得联系。
解决方法 1:检查事件日志以查看是否存在网络连接问题,例如适配器故障或 DNS 问题。 验证是否能成功对域控制器运行 ping 命令。
问题 2: SQL Server 服务帐户密码在所有群集节点上并非全都一致,或者节点没有重启从失败的节点迁移过来的 SQL Server 服务。
解决方法 2: 使用 SQL Server 配置管理器更改 SQL Server 服务帐户密码。 如果不这样做,并且更改了其中一个节点上的 SQL Server 服务帐户密码,也必须更改所有其他节点上的密码。 SQL Server 配置管理器会自动执行此操作。
问题:SQL Server 无法访问群集磁盘
问题 1: 并未在所有节点上都更新了固件或驱动程序。
解决方法 1: 确保所有节点都使用正确的固件版本和相同的驱动程序版本。
问题 2: 如果失败的节点位于具有不同驱动器号的共享群集磁盘上,则其他节点无法恢复从该节点迁移过来的群集磁盘。
解决方法 2: 两台服务器上的群集磁盘的磁盘驱动器号必须相同。 如果不相同,请检查操作系统和 Microsoft 群集服务 (MSCS) 的原始安装。
问题:SQL Server 服务故障导致故障转移
解决方法: 若要防止特定服务的故障导致 SQL Server 组进行故障转移,请使用 Windows 中的群集管理器配置这些服务,如下所示:
- 在 “全文属性” 对话框的 “高级” 选项卡中,清除 “影响组” 复选框。 但是,如果 SQL Server 导致故障转移,则全文搜索服务将重新启动。
问题:SQL Server 不自动启动
解决方法: 使用 MSCS 中的群集管理器自动启动某个故障转移群集。 SQL Server 服务应该设置为手动启动,应该在 MSCS 中配置群集管理器,使其启动 SQL Server 服务。 有关详细信息,请参阅 管理服务。
问题:网络名称离线,无法使用 TCP/IP 连接到 SQL Server
问题 1: DNS 失败,而群集资源设置为需要 DNS。
解决方法 1: 更正 DNS 问题。
问题 2: 网络上存在重复的名称。
解决方法 2: 使用 NBTSTAT 查找重复的名称,然后更正问题。
问题 3: SQL Server 不是使用命名管道进行连接。
解决方法 3: 若要使用命名管道进行连接,请使用 SQL Server 配置管理器创建一个别名,以连接到适当的计算机。 例如,如果有一个群集包含两个节点(节点 A 和 节点 B)和一个具有默认实例的故障转移群集实例 (Virtsql),则可以执行下列步骤连接到网络名称资源已离线的服务器:
使用群集管理器确定包含 SQL Server 实例的组在哪个节点上运行。 对于本例,此节点是 节点 A。
使用 SQL Server net start 在该计算机上启动服务。 有关使用 net start的详细信息,请参阅 手动启动 SQL Server。
在节点 A 上启动 SQL Server SQL Server 配置管理器。查看服务器正在侦听的管道名称。 它应类似于 \\.\$$\VIRTSQL\pipe\sql\query。
在客户端计算机上,启动 SQL Server 配置管理器。
创建别名 SQLTEST1 以通过命名管道连接到此管道名称。 为此,请输入“节点 A”作为服务器名称,并将管道名称编辑为 \\.\pipe\$$\VIRTSQL\sql\query。
使用别名 SQLTEST1 作为服务器名称连接到此实例。
问题:群集上的 SQL Server 安装程序因发生错误 11001 而失败
问题: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.X\Cluster] 中存在孤立的注册表项
解决方法: 确保当前未使用 MSSQL.X 注册表配置单元,然后删除该群集项。
问题:群集安装错误:“安装程序没有足够的特权,无法访问此目录: <驱动器>\Microsoft SQL Server。 安装无法继续。 请以管理员身份登录,或与您的系统管理员联系”
问题: 此错误是由于 SCSI 共享驱动器未正确分区而引起的。
解决方法: 执行下列步骤以在该共享磁盘上重新创建一个分区:
从群集中删除磁盘资源。
删除磁盘上的所有分区。
在磁盘属性中验证磁盘是否为基本磁盘。
在共享磁盘上创建一个分区、格式化该磁盘并为磁盘分配一个驱动器号。
使用群集管理器 (cluadmin) 将磁盘添加到群集中。
运行 SQL Server 安装程序。
问题:应用程序无法在分布式事务中登记 SQL Server 资源
问题: 由于在 Windows 中未完全配置 Microsoft 分布式事务处理协调器 (MS DTC),因此应用程序可能无法在分布式事务中登记 SQL Server 资源。 此问题可能会影响使用分布式事务的链接服务器、分布式查询和远程存储过程。 有关如何配置 MS DTC 的详细信息,请参阅 Before Installing Failover Clustering。
解决方法: 若要避免此类问题,必须在安装 SQL Server 和配置 MS DTC 的服务器上完全启用 MS DTC 服务。
若要完全启用 MS DTC,请执行下列步骤:
在控制面板中打开 “管理工具” ,然后打开 “计算机管理” 。
在“计算机管理”的左侧面板中,展开 “服务和应用程序” ,然后单击 “服务” 。
在“计算机管理”的右窗格中,右键单击“分布式事务处理协调器”,并选择“属性”。
在 “Distributed Transaction Coordinator 的属性” 窗口中,单击 “常规” 选项卡,再单击 “停止” 来停止此服务。
在“分布式事务处理协调器”窗口中,单击“登录”选项卡,将登录帐户设置为 NT AUTHORITY\NetworkService。
单击 “应用” 和 “确定” 以关闭 “分布式事务处理协调器” 窗口。 关闭 “计算机管理” 窗口。 关闭 “管理工具” 窗口。
使用扩展存储过程和 COM 对象
如果在故障转移群集配置中使用扩展存储过程,所有扩展存储过程都必须安装在与 SQL Server相关的群集磁盘中。 这样做可确保当某节点发生故障转移时,仍能继续使用扩展存储过程。
如果扩展存储过程使用 COM 组件,管理员必须在群集的所有节点中都注册 COM 组件。 活动节点的注册表中必须包含加载和执行 COM 组件所需的信息,才能创建这些组件。 否则,这些信息将保留在最先注册 COM 组件的计算机的注册表中。