删除可用性组 (SQL Server)

本主题说明如何使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 在 SQL Server 2012 中删除 AlwaysOn 可用性组。 如果在删除某一可用性组时承载可用性副本之一的服务器实例处于脱机状态,则在联机后,该服务器实例将删除本地可用性副本。 删除可用性组时,将删除任何关联的可用性组侦听器。

请注意,如果需要,您可以从拥有某一可用性组的正确安全凭据的任何 Windows Server 故障转移群集 (WSFC) 节点删除该可用性组。 因此,在某一可用性组未保留任何可用性副本时,您可以删除该可用性组。

重要说明重要提示

如果可能,请仅在连接到承载主副本的服务器实例时删除此可用性组。 从主副本中删除此可用性组时,允许对以前的 master 数据库进行改变(不具有高可用性保护)。 从辅助副本中删除可用性组会使主副本处于 RESTORING 状态,且不允许对此数据库进行更改。

  • 开始之前:  

    限制和建议

    安全性

  • 删除可用性组,使用:  

    SQL Server Management Studio

    Transact-SQL

    PowerShell

  • 相关内容

开始之前

限制和建议

  • 当可用性组处于联机状态时,从辅助副本删除它会导致主副本转换为 RESTORING 状态。 因此,如果可能,请仅从承载主副本的服务器实例中删除此可用性组。

  • 如果您从已被 WSFC 故障转移群集删除或逐出的计算机删除某一可用性组,则该可用性组仅在本地删除。

  • 如果 Windows Server 故障转移群集 (WSFC) 群集没有仲裁,则避免删除可用性组。 如果在群集缺少仲裁时必须删除可用性组,则不删除群集中存储的元数据可用性组。 在群集重新获得仲裁后,将需要再次删除此可用性组以便将其从 WSFC 群集中删除。

  • 在辅助副本上,DROP AVAILABILITY GROUP 应仅用于紧急情况。 这是因为删除可用性组会使该可用性组脱机。 如果您从辅助副本中删除该可用性组,则主副本无法确定出现 OFFLINE 状态是因为仲裁丢失、强制的故障转移还是 DROP AVAILABILITY GROUP 命令。 主副本将转换为 RESTORING 状态以避免出现可能的裂脑情况。 有关详细信息,请参阅工作方式:DROP AVAILABILITY GROUP 行为(CSS SQL Server 工程师博客)。

安全性

权限

对可用性组要求 ALTER AVAILABILITY GROUP 权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。 若要删除并非由本地服务器实例承载的某一可用性组,您需要针对该可用性组的 CONTROL SERVER 权限或 CONTROL 权限。

[返回页首]

使用 SQL Server Management Studio

删除可用性组

  1. 在对象资源管理器中,连接到承载主副本的服务器实例,如果可能,还可以连接到 WSFC 节点(该节点拥有可用性组的正确安全凭据)上为 AlwaysOn 可用性组启用的另一个服务器实例。 展开服务器树。

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

  3. 此步骤取决于您是要删除多个可用性组还是只删除一个可用性组,如下所示:

    • 若要删除多个可用性组(其主副本位于连接的服务器实例上),请使用**“对象资源管理器详细信息”**窗格查看和选择要删除的所有可用性组。 有关详细信息,请参阅使用对象资源管理器详细信息监视可用性组 (SQL Server Management Studio)

    • 若要删除单个可用性组,请在**“对象资源管理器”窗格或“对象资源管理器详细信息”**窗格中选择它。

  4. 右键单击所选的可用性组,然后选择**“删除”**命令。

  5. 在**“删除可用性组”对话框中,若要删除所有列出的可用性组,请单击“确定”。 如果您不想删除所有列出的可用性组,请单击“取消”**。

用于“返回首页”链接的箭头图标[返回页首]

使用 Transact-SQL

删除可用性组

  1. 连接到承载主副本的服务器实例,如果可能,还可以连接到 WSFC 节点(该节点拥有可用性组的正确安全凭据)上为 AlwaysOn 可用性组启用的另一个服务器实例。

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

    DROP AVAILABILITY GROUP group_name

    其中,group_name 是要删除的可用性组的名称。

    下面的示例将删除 MyAG 可用性组。

    DROP AVAILABILITY GROUP MyAG;
    

用于“返回首页”链接的箭头图标[返回页首]

使用 PowerShell

删除可用性组

在 SQL Server PowerShell 提供程序中:

  1. 将目录切换 (cd) 到承载主副本的服务器实例,如果可能,还可以切换到 WSFC 节点(该节点拥有可用性组的正确安全凭据)上为 AlwaysOn 可用性组启用的另一个服务器实例。

  2. 使用 Remove-SqlAvailabilityGroup cmdlet。

    例如,下面的命令删除名为 MyAg 的可用性组。 可以对承载可用性组的可用性副本的任何服务器实例执行此命令。

    Remove-SqlAvailabilityGroup ` 
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg
    
    注意注意

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

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

用于“返回首页”链接的箭头图标[返回页首]

相关内容

用于“返回首页”链接的箭头图标[返回页首]

请参阅

概念

AlwaysOn 可用性组概述 (SQL Server)

创建和配置可用性组 (SQL Server)