TechNet
Export (0) Print
Expand All

Overview of PowerShell Cmdlets for Always On Availability Groups (SQL Server)

 

Published: May 14, 2016

Updated: May 17, 2016

Applies To: SQL Server 2016

Microsoft PowerShell is a task-based command-line shell and scripting language designed especially for system administration. Always On Availability Groups provides a set of PowerShell cmdlets in SQL Server 2016 that enable you to deploy, manage, and monitor availability groups, availability replicas, and availability databases.

System_CAPS_ICON_note.jpg Note


A PowerShell cmdlet can complete by successfully initiating an action. This does not indicate that the intended work, such as the fail over of an availability group, has completed. When scripting a sequence of actions, you might have to check the status of actions, and wait for them to complete.

This topic introduces the cmdlets for the following sets of tasks:

System_CAPS_ICON_note.jpg Note


For a list of topics in SQL Server 2016 Books Online that describe how to use cmdlets to perform Always On Availability Groups tasks, see the "Related Tasks" section of Overview of Always On Availability Groups (SQL Server).

CmdletsDescriptionSupported on
Disable-SqlAlways OnDisables the Always On Availability Groups feature on a server instance.The server instance that is specified by the Path, InputObject, or Name parameter. (Must be an edition of SQL Server that supports Always On Availability Groups.)
Enable-SqlAlways OnEnables Always On Availability Groups on an instance of SQL Server 2016 that supports the Always On Availability Groups feature. For information about support for Always On Availability Groups, see Prerequisites, Restrictions, and Recommendations for Always On Availability Groups (SQL Server).Any edition of SQL Server that supports Always On Availability Groups.
New-SqlHadrEndPointCreates a new database mirroring endpoint on a server instance. This endpoint is required for data movement between primary and secondary databases.Any instance of SQL Server
Set-SqlHadrEndpointChanges the properties of an existing database mirroring endpoint, such as the name, state, or authentication properties.A server instance that supports Always On Availability Groups and lacks a database mirroring endpoint
CmdletsDescriptionSupported on
Backup-SqlDatabaseCreates a data or log backup.Any online database (for Always On Availability Groups, a database on the server instance that hosts the primary replica)
Restore-SqlDatabaseRestores a backup.Any instance of SQL Server (for Always On Availability Groups, a server instance that hosts a secondary replica)

 ** Important ** When preparing a secondary database, you must use the -NoRecovery parameter in every Restore-SqlDatabase command.

For information about using these cmdlets to prepare a secondary database, see Manually Prepare a Secondary Database for an Availability Group (SQL Server).

CmdletsDescriptionSupported on
New-SqlAvailabilityGroupCreates a new availability group.Server instance to host primary replica
Remove-SqlAvailabilityGroupDeletes availability group.HADR-enabled server instance
Set-SqlAvailabilityGroupSets the properties of an availability group; take an availability group online/offlineServer instance that hosts primary replica
Switch-SqlAvailabilityGroupInitiates one of the following forms of failover:

A forced failover of an availability group (with possible data loss).

A manual failover of an availability group.
Server instance that hosts target secondary replica
CmdletDescriptionSupported on
New-SqlAvailabilityGroupListenerCreates a new availability group listener and attaches it to an existing availability group.Server instance that hosts primary replica
Set-SqlAvailabilityGroupListenerModifies the port setting on an existing availability group listener.Server instance that hosts primary replica
Add-SqlAvailabilityGroupListenerStaticIpAdds a static IP address to an existing availability group listener configuration. The IP address can be an IPv4 address with subnet, or an IPv6 address.Server instance that hosts primary replica
CmdletsDescriptionSupported on
New-SqlAvailabilityReplicaCreates a new availability replica. You can Use the -AsTemplate parameter to create an in-memory availability-replica object for each new availability replica.Server instance that hosts primary replica
Join-SqlAvailabilityGroupJoins a secondary replica to the availability group.Server instance that hosts secondary replica
Remove-SqlAvailabilityReplicaDeletes an availability replica.Server instance that hosts primary replica
Set-SqlAvailabilityReplicaSets the properties of an availability replica.Server instance that hosts primary replica
CmdletsDescriptionSupported on
Add-SqlAvailabilityDatabaseOn the primary replica, adds a database to an availability group.

On a secondary replica, joins a secondary database to an availability group.
Any server instance that hosts an availability replica (behavior differs for primary and secondary replicas)
Remove-SqlAvailabilityDatabaseOn the primary replica, removes the database from the availability group.

On a secondary replica, removes the local secondary database from the local secondary replica.
Any server instance that hosts an availability replica (behavior differs for primary and secondary replicas)
Resume-SqlAvailabilityDatabaseResumes the data movement for a suspended availability database.The server instance on which the database was suspended.
Suspend-SqlAvailabilityDatabaseSuspends the data movement for an availability database.Any server instance that hosts an availability replica.

The following SQL Server cmdlets enable you to monitor the health of an availability group and its replicas and databases.

System_CAPS_ICON_important.jpg Important


You must have CONNECT, VIEW SERVER STATE, and VIEW ANY DEFINITION permissions to execute these cmdlets.

CmdletDescriptionSupported on
Test-SqlAvailabilityGroupAssesses the health of an availability group by evaluating SQL Server policy based management (PBM) policies.Any server instance that hosts an availability replica.*
Test-SqlAvailabilityReplicaAssesses the health of availability replicas by evaluating SQL Server policy based management (PBM) policies.Any server instance that hosts an availability replica.*
Test-SqlDatabaseReplicaStateAssesses the health of an availability database on all joined availability replicas by evaluating SQL Server policy based management (PBM) policies.Any server instance that hosts an availability replica.*

*To view information about all of the availability replicas in an availability group, use to the server instance that hosts the primary replica.

For more information, see Use Always On Policies to View the Health of an Availability Group (SQL Server).

Overview of Always On Availability Groups (SQL Server)
Get Help SQL Server PowerShell

Community Additions

ADD
Show:
© 2016 Microsoft