使用 AlwaysOn 策略查看可用性组的运行状况 (SQL Server)

本主题说明在 SQL Server 2012 中如何使用 SQL Server Management Studio 或 PowerShell 通过 AlwaysOn 策略确定 AlwaysOn 可用性组的运行状况。 有关 AlwaysOn 基于策略的管理的信息,请参阅针对 AlwaysOn 可用性组运行问题的 AlwaysOn 策略 (SQL Server)

重要说明重要提示

对于 AlwaysOn 策略,类别名称用作 ID。 更改 AlwaysOn 类别的名称将会破坏其运行状况评价功能。 因此,任何时候都不应修改 AlwaysOn 类别的名称。

  • 开始之前: 安全性

  • 使用 AlwaysOn 策略查看可用性组的运行状况,使用:

    AlwaysOn 面板

    PowerShell

开始之前

安全性

权限

需要 CONNECT、VIEW SERVER STATE 和 VIEW ANY DEFINITION 权限。

用于“返回首页”链接的箭头图标[返回页首]

使用 AlwaysOn 仪表板

打开 AlwaysOn 仪表板

  1. 在对象资源管理器中,连接到承载可用性副本之一的服务器实例。 若要查看有关可用性组中所有可用性副本的信息,请使用承载主副本的服务器实例。

  2. 单击服务器名称以展开服务器树。

  3. 展开**“AlwaysOn 高可用性”**节点。

    右键单击**“可用性组”**节点或展开此节点,然后右键单击特定的可用性组。

  4. 选择**“显示面板”**命令。

有关如何使用 AlwaysOn 仪表板的信息,请参阅使用 AlwaysOn 面板 (SQL Server Management Studio)

用于“返回首页”链接的箭头图标[返回页首]

使用 PowerShell

使用 AlwaysOn 策略查看可用性组的运行状况

  1. 将默认值 (cd) 设置为承载其中一个可用性副本的服务器实例。 若要查看有关可用性组中所有可用性副本的信息,请使用承载主副本的服务器实例。

  2. 使用以下 cmdlet:

    • Test-SqlAvailabilityGroup
      通过评估 SQL Server 基于策略的管理 (PBM) 策略来评估可用性组的运行状况。 您必须具有 CONNECT、VIEW SERVER STATE 和 VIEW ANY DEFINITION 权限才能执行此 cmdlet。

      例如,以下命令显示服务器实例 Computer\Instance 上具有“Error”运行状态的所有可用性组。

      Get-ChildItem SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups ` 
      | Test-SqlAvailabilityGroup | Where-Object { $_.HealthState -eq "Error" }
      
    • Test-SqlAvailabilityReplica
      通过评估 SQL Server 基于策略的管理 (PBM) 策略来评估可用性副本的运行状况。 您必须具有 CONNECT、VIEW SERVER STATE 和 VIEW ANY DEFINITION 权限才能执行此 cmdlet。

      例如,以下命令评估可用性组 MyAg 中名为 MyReplica 的可用性副本的运行状况并输出简短摘要。

      Test-SqlAvailabilityReplica ` 
      -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityReplicas\MyReplica
      
    • Test-SqlDatabaseReplicaState
      通过评估 SQL Server 基于策略的管理 (PBM) 策略来评估所有加入的可用性副本的可用性数据库的运行状况。

      例如,以下命令评估可用性组 MyAg 中所有可用性数据库的运行状况并输出各数据库的简短摘要。

      Get-ChildItem SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\DatabaseReplicaStates ` 
       | Test-SqlDatabaseReplicaState
      

    这些 cmdlet 接受以下选项:

    选项

    说明

    AllowUserPolicies

    运行在 AlwaysOn 策略类别中找到的用户策略。

    InputObject

    对象的集合,表示可用性组、可用性副本或可用性数据库状态(取决于正在使用的 cmdlet)。 此 cmdlet 将计算指定对象的运行状况。

    NoRefresh

    如果设置了此参数,cmdlet 将不会手动刷新由 -Path 或 -InputObject 参数指定的对象。

    Path

    指向可用性组、一个或多个可用性副本或可用性数据库的数据库副本群集状态的路径(具体取决于正在使用的 cmdlet)。 这是一个可选参数。 如果未指定,此参数的值默认为当前的工作位置。

    ShowPolicyDetails

    显示由 cmdlet 执行的每个策略评估的结果。 对于每个策略评估,cmdlet 都输出一个对象,该对象具有用于描述评估结果的字段(是否传递了策略、策略名称和类别等等)。

    例如,以下 Test-SqlAvailabilityGroup 命令指定 -ShowPolicyDetails 参数,以为在名为 MyAg 的可用性组上执行的每个基于策略的管理 (PBM) 策略显示此 cmdlet 执行的每个策略评估结果。

    Test-SqlAvailabilityGroup ` 
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\AgName `
    -ShowPolicyDetails
    
    注意注意

    若要查看 cmdlet 的语法,请在 SQL Server PowerShell 环境中使用 Get-Help cmdlet。 有关详细信息,请参阅 获取 SQL Server PowerShell 帮助

设置和使用 SQL Server PowerShell 提供程序

用于“返回首页”链接的箭头图标[返回页首]

相关内容

SQL Server AlwaysOn 团队博客 — — 使用 PowerShell 监视 AlwaysOn 运行状况:

用于“返回首页”链接的箭头图标[返回页首]

请参阅

概念

AlwaysOn 可用性组概述 (SQL Server)

管理可用性组 (SQL Server)

监视可用性组 (SQL Server)

针对 AlwaysOn 可用性组运行问题的 AlwaysOn 策略 (SQL Server)