--- title: "Change availability mode of a replica for an availability group" description: "A description for how to change the availability mode of an availability replica within an Always On availability group using either Transact-SQL (T-SQL), PowerShell, or SQL Server Management Studio." ms.custom: "seo-lt-2019" ms.date: "05/17/2016" ms.prod: sql ms.reviewer: "" ms.technology: availability-groups ms.topic: how-to helpviewer_keywords: - "Availability Groups [SQL Server], deploying" - "Availability Groups [SQL Server], configuring" - "Availability Groups [SQL Server], availability modes" ms.assetid: c4da8f25-fb1b-45a4-8bf2-195df6df634c author: cawrites ms.author: chadam --- # Change availability mode of a replica within an Always On availability group [!INCLUDE [SQL Server](../../../includes/applies-to-version/sqlserver.md)] This topic describes how to change the availability mode of an availability replica in an Always On availability group in [!INCLUDE[ssnoversion](../../../includes/ssnoversion-md.md)] by using [!INCLUDE[ssManStudioFull](../../../includes/ssmanstudiofull-md.md)], [!INCLUDE[tsql](../../../includes/tsql-md.md)], or PowerShell. The availability mode is a replica property that controls the whether the replica commits asynchronously or synchronously. *Asynchronous-commit mode* maximizes performance at the expense of high availability and supports only forced manual failover (with possible data loss), typically called *forced failover*. *Synchronous-commit mode* emphasizes high availability over performance and, once the secondary replica is synchronized, supports manual failover and, optionally, automatic failover. ## Prerequisites You must be connected to the server instance that hosts the primary replica. ## Permissions Requires ALTER AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission. ## Using SQL Server Management Studio **To change the availability mode of an availability group** 1. In Object Explorer, connect to the server instance that hosts the primary replica, and expand the server tree. 2. Expand the **Always On High Availability** node and the **Availability Groups** node. 3. Click the availability group whose replica you want to change. 4. Right-click the replica, and click **Properties**. 5. In the **Availability Replica Properties** dialog box, use the **Availability mode** drop list to change the availability mode of this replica. ## Using Transact-SQL **To change the availability mode of an availability group** 1. Connect to the server instance that hosts the primary replica. 2. Use the [ALTER AVAILABILITY GROUP](../../../t-sql/statements/alter-availability-group-transact-sql.md) statement, as the following example: ```sql ALTER AVAILABILITY GROUP *group_name* MODIFY REPLICA ON '*server_name*' WITH ( AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT , FAILOVER_MODE = MANUAL ); ``` Where *group_name* is the name of the availability group and *server_name* is the name of the server instance that hosts the replica to be modified. > [!NOTE] > `FAILOVER_MODE = AUTOMATIC` is supported only if you also specify `AVAILABILITY_MODE = SYNCHRONOUS_COMMIT`. The following example, entered on the primary replica of the `AccountsAG` availability group, changes the availability and failover modes to synchronous commit and automatic failover, respectively, for the replica hosted by the `INSTANCE09` server instance. ```sql ALTER AVAILABILITY GROUP AccountsAG MODIFY REPLICA ON 'INSTANCE09' WITH (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT); ALTER AVAILABILITY GROUP AccountsAG MODIFY REPLICA ON 'INSTANCE09' WITH (FAILOVER_MODE = AUTOMATIC); ``` ## Using PowerShell **To change the availability mode of an availability group** 1. Change directory (**cd**) to the server instance that hosts the primary replica. 2. Use the **Set-SqlAvailabilityReplica** cmdlet with the **AvailabilityMode** parameter and, optionally, the **FailoverMode** parameter. For example, the following command modifies the replica `MyReplica` in the availability group `MyAg` to use synchronous-commit availability mode and to support automatic failover. ```powershell Set-SqlAvailabilityReplica -AvailabilityMode "SynchronousCommit" -FailoverMode "Automatic" ` -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg\AvailabilityReplicas\MyReplica ``` > [!NOTE] > To view the syntax of a cmdlet, use the **Get-Help** cmdlet in the [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] PowerShell environment. For more information, see [Get Help SQL Server PowerShell](../../../powershell/sql-server-powershell.md). **To set up and use the SQL Server PowerShell provider** - [SQL Server PowerShell Provider](../../../powershell/sql-server-powershell-provider.md) ## See Also [Overview of Always On Availability Groups (SQL Server)](../../../database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server.md) [Availability Modes (Always On Availability Groups)](../../../database-engine/availability-groups/windows/availability-modes-always-on-availability-groups.md) [Failover and Failover Modes (Always On Availability Groups)](../../../database-engine/availability-groups/windows/failover-and-failover-modes-always-on-availability-groups.md)