从可用性组中删除辅助副本 (SQL Server)

适用于:SQL Server

本主题说明了如何通过在 SQL Server Management Studio 中使用 Transact-SQL、SQL Server 或 PowerShell 从 Always On 可用性组中删除次要副本。

限制和局限

  • 只有主副本支持该任务。
  • 从可用性组中仅可删除辅助副本。

先决条件

  • 您必须连接到承载可用性组的主副本的服务器实例。

权限

对可用性组要求 ALTER AVAILABILITY GROUP 权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。

使用 SQL Server Management Studio

删除辅助副本

  1. 在对象资源管理器中,连接到承载主副本的服务器实例,然后展开服务器树。

  2. 依次展开“Always On 高可用性”节点和“可用性组”节点。

  3. 选择可用性组,然后展开 “可用性副本” 节点。

  4. 此步骤取决于您是要删除多个副本,还是只删除一个副本,如下所示:

  5. 右键单击选定的一个或多个次要副本,然后在命令菜单中选择“从可用性组中删除”

  6. “从可用性组删除辅助副本” 对话框中,要删除所有列出的辅助副本,请单击 “确定”。 如果您不想删除所有列出的副本,请单击 “取消”

“使用 Transact-SQL”

删除辅助副本

  1. 连接到承载主副本的服务器实例。

  2. 按如下所示使用 ALTER AVAILABILITY GROUP 语句:

    ALTER AVAILABILITY GROUP group_name REMOVE REPLICA ON 'instance_name' [,...n]

    其中,group_name 为可用性组的名称,instance_name 为该次要副本所在的服务器实例。

    下面的示例将次要副本从 MyAG 可用性组中删除。 目标次要副本位于名为 COMPUTER02 的计算机上的服务器实例(名为 HADR_INSTANCE)上。

    ALTER AVAILABILITY GROUP MyAG REMOVE REPLICA ON 'COMPUTER02\HADR_INSTANCE';  
    

使用 PowerShell

删除辅助副本

  1. 将目录 (cd) 更改为托管主副本的服务器实例。

  2. 使用 Remove-SqlAvailabilityReplica cmdlet。

    例如,下面的命令从名为 MyReplica 的可用性组中删除服务器 MyAg上的可用性副本。 此命令必须在承载可用性组的主副本的服务器实例上运行。

    Remove-SqlAvailabilityReplica `   
    -Path SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAg\AvailabilityReplicas\MyReplica  
    

    注意

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

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

跟进:在删除辅助副本之后

如果您指定一个当前不可用的副本,则在该副本联机时,将发现该副本已被删除。

删除副本会导致它停止接收数据。 在某个辅助副本确认其已从全局存储中删除之后,该副本将从其数据库(在本地服务器实例上保留为 RECOVERING 状态)中删除可用性组设置。

另请参阅

AlwaysOn 可用性组概述 (SQL Server)
将辅助副本添加到可用性组 (SQL Server)
删除可用性组 (SQL Server)