针对可用性组的自动故障转移的灵活的故障转移策略 (SQL Server)
灵活的故障转移策略提供了对导致可用性组自动执行故障转移的条件的精确控制。 通过更改触发自动故障转移的失败条件和运行状况检查的频率,可增大或减小自动进行故障转移来支持高可用性 SLA 的可能性。
可用性组的灵活的故障转移策略是由其失败条件级别和运行状况检查超时阈值定义的。 在检测到某个可用性组已超出其失败条件级别或其运行状况检查超时阈值时,该可用性组的资源 DLL 会响应 Windows Server 故障转移群集 (WSFC) 群集。 之后,WSFC 群集会启动到辅助副本的自动故障转移。
重要提示 |
---|
如果某个可用性组超过其 WSFC 故障阈值,则该 WSFC 群集不会尝试为该可用性组执行自动故障转移。 此外,该可用性组的 WSFC 资源组始终保持失败状态,直到群集管理员手动将该失败的资源组联机,或是数据库管理员对该可用性组执行手动故障转移。 WSFC 故障阈值定义为给定时间段中可用性组所支持的最大故障数。 默认时间段为六个小时,此时间段中最大故障数的默认值为 n-1,其中 n 是 WSFC 节点的数目。 若要更改给定的可用性组的故障阈值,请使用 WSFC 故障转移管理器控制台。 |
本主题包含以下各节:
运行状况检查超时阈值
故障条件级别
相关任务
相关内容
运行状况检查超时阈值
可用性组的 WSFC 资源 DLL 将通过在承载主副本的 SQL Server 实例上调用 sp_server_diagnostics 存储过程来对主副本执行运行状况检查。 sp_server_diagnostics 按等于可用性组的运行状况检查超时阈值的 1/3 的时间间隔返回结果。 默认的运行状况检查超时阈值为 30 秒,这将导致 sp_server_diagnostics 按 10 秒的时间间隔返回结果。 如果 sp_server_diagnostics 的运行速度较慢且未返回信息,则资源 DLL 将在等待运行状况检查超时阈值的完全时间间隔后确定主副本已停止响应。 如果主副本停止响应,则启动自动故障转移(如果当前受支持)。
重要提示 |
---|
sp_server_diagnostics 在数据库级别不执行运行状况检查。 |
[返回页首]
故障条件级别
由 sp_server_diagnostics 返回的诊断数据和运行状况信息是否保证触发自动故障转移取决于可用性组的失败条件级别。 失败条件级别指定触发自动故障转移的失败条件。 有 5 个失败条件级别,其范围从最少限制(级别 1)到最多限制(级别 5)。 给定级别包含限制较少的级别。 因此,最严格的级别 5 包含四个限制更少的条件,依此类推。
重要提示 |
---|
任何级别的故障条件均不检测已损坏的数据库和可疑数据库。 因此,已损坏的或可疑的数据库(无论是由于硬件故障、数据损坏还是其他问题导致)从不触发自动故障转移。 |
下表介绍了与各级别相对应的失败条件。
级别 |
故障条件 |
Transact-SQL 值 |
PowerShell 值 |
---|---|---|---|
一级 |
当服务器关闭时。 指定在发生以下任何情况时启动自动故障转移:
这是限制最少的级别。 |
1 |
OnServerDown |
二级 |
当服务器无响应时。 指定在发生以下任何情况时启动自动故障转移:
|
2 |
OnServerUnresponsive |
三级 |
出现严重服务器错误时。 指定在发生了严重的 SQL Server 内部错误(例如孤立的自旋锁、严重的写访问冲突或过多的转储)时启动自动故障转移。 这是默认级别。 |
3 |
OnCriticalServerError |
四级 |
出现严重服务器错误时。 指定在发生了中等 SQL Server 内部错误(在 SQL Server 内部资源池中出现持久的内存不足情况)时启动自动故障转移。 |
4 |
OnModerateServerError |
五级 |
在出现任何限定的失败条件时。 指定在出现任何符合的失败条件时启动自动故障转移,这些失败条件包括:
这是限制最多的级别。 |
5 |
OnAnyQualifiedFailureConditions |
注意 |
---|
缺少 SQL Server 的实例对客户端请求的响应与可用性组无关。 |
[返回页首]
相关任务
配置自动故障转移
更改可用性副本的可用性模式 (SQL Server)(自动故障转移要求使用同步提交可用性模式)
[返回页首]
相关内容
[返回页首]
请参阅
参考
sp_server_diagnostics (Transact-SQL)