Test-SqlAvailabilityReplica

Evaluates the health of availability replicas.

Syntax

Test-SqlAvailabilityReplica [[-Path] <String[]>] [-ShowPolicyDetails] [-AllowUserPolicies] [-NoRefresh]
 [-InformationAction <ActionPreference>] [-InformationVariable <String>] [-WhatIf] [-Confirm]
 [<CommonParameters>]
Test-SqlAvailabilityReplica [-InputObject] <AvailabilityReplica[]> [-ShowPolicyDetails] [-AllowUserPolicies]
 [-NoRefresh] [-InformationAction <ActionPreference>] [-InformationVariable <String>] [-WhatIf] [-Confirm]
 [<CommonParameters>]

Description

The Test-SqlAvailabilityReplica cmdlet assesses the health of availability replicas by evaluating SQL Server policy based management (PBM) policies. You must have CONNECT, VIEW SERVER STATE, and VIEW ANY DEFINITION permissions to execute this cmdlet.

Examples

Example 1: Evaluate the health of an availability replica

PS C:\> Test-SqlAvailabilityReplica -Path "SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MainAg\AvailabilityReplicas\MainReplica"

This command evaluates the health of the availability replica named MainReplica in the MainAg availability group and outputs a brief summary.

Example 2: Evaluate the health of all availability replicas in an availability group

PS C:\> Get-ChildItem "SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MainAg\AvailabilityReplicas" | Test-SqlAvailabilityReplica

This command evaluates the health of all availability replicas in the availability group named MainAg and outputs a brief summary for each replica.

Example 3: Evaluate the health of an availability replica for each PBM policy

PS C:\> Test-SqlAvailabilityReplica -Path "SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MainAg\AvailabilityReplicas\MainReplica" -ShowPolicyDetails

This command evaluates the health of the availability replica named MainReplica in the MainAg availability group and outputs the evaluation results for each PBM policy that was executed.

Example 4: Evaluate the health of an availability replica and include user-defined policies

PS C:\> Test-SqlAvailabilityReplica -Path "SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MainAg\AvailabilityReplicas\MainReplica" -AllowUserPolicies

This command evaluates the health of the availability replica named MainReplica in the MainAg availability group. User-defined policies are included in this evaluation.

Example 5: Show all availability replicas that are in an error state

PS C:\> Get-ChildItem "SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MainAg\AvailabilityReplicas" | Test-SqlAvailabilityReplica | Where-Object { $_.HealthState -eq "Error" }

This command shows all availability replicas with a health state of "Error" in the MainAg availability group.

Parameters

-ShowPolicyDetails

Indicates that the result of each policy evaluation performed by this cmdlet is shown. The cmdlet outputs one object per policy evaluation. This object contains fields that describe the results of the evaluation.

Type:SwitchParameter
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-AllowUserPolicies

Indicates that this cmdlet runs user policies found in the AlwaysOn policy categories.

Type:SwitchParameter
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-NoRefresh

Indicates that this cmdlet will not manually refresh the objects specified by the Path or InputObject parameters.

Type:SwitchParameter
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Path

Specifies the path to one or more availability replicas. This parameter is optional. If not specified, the current working location is used.

Type:String[]
Required:False
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-InformationAction

Specifies how this cmdlet responds to an information event.

The acceptable values for this parameter are:

- Continue

  • Ignore
  • Inquire
  • SilentlyContinue
  • Stop
  • Suspend

Type:ActionPreference
Aliases:infa
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-InformationVariable

Specifies an information variable.

Type:String
Aliases:iv
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Required:False
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Required:False
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-InputObject

Specifies an array of availability replicas to evaluate.

Type:AvailabilityReplica[]
Required:True
Position:1
Default value:None
Accept pipeline input:True (ByValue)
Accept wildcard characters:False

Inputs

Microsoft.SqlServer.Management.Smo.AvailabilityReplica