适用于:SQL Server
本文介绍如何在 SQL Server 中使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 删除 Always On 可用性组。 如果在删除某一可用性组时承载可用性副本之一的服务器实例处于脱机状态,则在联机后,该服务器实例将删除本地可用性副本。 删除可用性组时,将删除任何关联的可用性组侦听器。
请注意,如果需要,您可以从拥有某一可用性组的正确安全凭据的任何 Windows Server 故障转移群集 (WSFC) 节点删除该可用性组。 因此,在某一可用性组未保留任何可用性副本时,您可以删除该可用性组。
重要
如果可能,请仅在连接到承载主副本的服务器实例时删除此可用性组。 从主副本中删除此可用性组时,允许对以前的主数据库进行更改(不具有高可用性保护)。 从辅助副本中删除可用性组会使主副本处于 RESTORING 状态,且不允许对此数据库进行更改。
限制和建议
- 当可用性组处于联机状态时,从辅助副本中将其删除会导致主副本转换到 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
删除可用性组
在对象资源管理器中,连接到承载主副本的服务器实例;如果无法这样做,则连接到另一台已启用 Always On 可用性组功能的服务器实例,该实例位于具有可用性组所需正确安全凭据的 WSFC 节点上。 展开服务器树。
依次展开“Always On 高可用性”节点和“可用性组”节点。
此步骤取决于您是要删除多个可用性组还是只删除一个可用性组,如下所示:
若要删除多个可用性组(其主要副本位于连接的服务器实例上),请使用“对象资源管理器详细信息”窗格查看和选择要删除的所有可用性组。 有关更多信息,请参阅使用“对象资源管理器详细信息”监视可用性组 (SQL Server Management Studio)。
若要删除单个可用性组,请在 “对象资源管理器” 窗格或 “对象资源管理器详细信息” 窗格中选择它。
右键单击所选的一个或多个可用性组,然后选择 删除 命令。
在 “删除可用性组” 对话框中,若要删除所有列出的可用性组,请单击 “确定”。 如果您不想删除所有列出的可用性组,请单击 “取消”。
“使用 Transact-SQL”
删除可用性组
如果可能,请连接到承载主副本的服务器实例;如果无法这样做,则连接到 WSFC 节点上另一个已启用 Always On 可用性组且具有可用性组所需正确安全凭据的服务器实例。
使用 DROP AVAILABILITY GROUP 语句,如下所示
DROP AVAILABILITY GROUP group_name
其中, group_name 是要删除的可用性组的名称。
下面的示例将删除
MyAG可用性组。DROP AVAILABILITY GROUP MyAG;
使用 PowerShell
删除可用性组
在 SQL Server PowerShell 提供程序中:
如果可能,请将目录 (cd) 切换到承载主副本的服务器实例,或者连接到 WSFC 节点上另一个已为 Always On 可用性组启用的服务器实例,且该节点具有可用性组所需的正确安全凭据。
使用 Remove-SqlAvailabilityGroup cmdlet。
例如,下面的命令删除名为
MyAg的可用性组。 可以对承载可用性组的可用性副本的任何服务器实例执行此命令。Remove-SqlAvailabilityGroup ` -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg备注
若要查看 cmdlet 的语法,请在 PowerShell 环境中使用 Get-Help SQL Server cmdlet。 有关详细信息,请参阅 Get Help SQL Server PowerShell。
配置和使用 SQL Server PowerShell 提供程序
相关内容
- 工作原理: DROP AVAILABILITY GROUP行为(CSS SQL Server工程师博客)