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

本主题介绍如何在 SQL Server Management Studio 中使用 AlwaysOn 策略或 SQL Server 2014 中的 PowerShell 来确定 AlwaysOn 可用性组的作运行状况。 有关 AlwaysOn 策略管理的信息,请参阅 用于处理 AlwaysOn 可用性组(SQL Server)运行问题的 AlwaysOn 策略

重要

对于 AlwaysOn 策略,类别名称用作 ID。 更改 AlwaysOn 类别的名称将中断其运行状况评估功能。 因此,不应修改 AlwaysOn 类别的名称。

在您开始之前

安全

权限

需要 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。

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

    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 接受以下选项:

    选项 DESCRIPTION
    AllowUserPolicies 运行在 AlwaysOn 策略类别中找到的用户策略。
    InputObject 对象的集合,表示可用性组、可用性副本或可用性数据库状态(取决于正在使用的 cmdlet)。 此 cmdlet 将计算指定对象的运行状况。
    NoRefresh 设置此参数后,cmdlet 不会手动刷新-Path-InputObject参数指定的对象。
    Path 指向可用性组、一个或多个可用性副本或可用性数据库的数据库副本群集状态的路径(具体取决于正在使用的 cmdlet)。 这是一个可选参数。 如果未指定,此参数的值默认为当前的工作位置。
    ShowPolicyDetails 显示由 cmdlet 执行的每个策略评估的结果。 对于每个策略评估,cmdlet 都输出一个对象,该对象具有用于描述评估结果的字段(是否传递了策略、策略名称和类别等等)。

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

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

    注释

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

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

相关内容

SQL Server AlwaysOn 团队 Blogs-Monitoring 使用 PowerShell 进行 AlwaysOn 健康管理:

另请参阅

AlwaysOn 可用性组概述 (SQL Server)
管理可用性组 (SQL Server)
监视可用性组 (SQL Server)
针对 AlwaysOn 可用性组运营问题的 AlwaysOn 策略 (SQL Server)