从可用性组中删除主数据库 (SQL Server)

本主题说明如何通过在 SQL Server 2012 中使用 SQL Server Management Studio、Transact-SQL 或 PowerShell,从 AlwaysOn 可用性组中删除主数据库和对应的辅助数据库。

  • 开始之前: 

    先决条件和限制

    安全性

  • 若要删除可用性数据库,请使用: 

    SQL Server Management Studio

    Transact-SQL

    PowerShell

  • **跟进:**在从可用性组中删除可用性数据库之后

开始之前

先决条件和限制

  • 只有主副本支持该任务。 您必须连接到承载主副本的服务器实例。

安全性

权限

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

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

使用 SQL Server Management Studio

删除可用性数据库

  1. 在对象资源管理器中,连接到承载要删除的一个或多个数据库的主副本的服务器实例,然后展开服务器树。

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

  3. 选择可用性组,然后展开**“可用性数据库”**节点。

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

  5. 右键单击选定的一个或多个数据库,然后在命令菜单中选择**“从可用性组中删除数据库”**。

  6. 在**“从可用性组中删除数据库”对话框中,删除所有列出的数据库,然后单击“确定”。 如果您不想全部删除这些数据库,请单击“取消”**。

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

使用 Transact-SQL

删除可用性数据库

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

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

    ALTER AVAILABILITY GROUP group_name REMOVE DATABASE availability_database_name

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

    下面的示例将从 MyAG 可用性组中删除名为 Db6 的数据库。

    ALTER AVAILABILITY GROUP MyAG REMOVE DATABASE Db6;
    

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

使用 PowerShell

删除可用性数据库

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

  2. 使用 Remove-SqlAvailabilityDatabase cmdlet,指定要从可用性组中删除的可用性数据库的名称。 当您连接到承载主副本的服务器实例时,主数据库及其对应的辅助数据库将从可用性组中全部删除。

    例如,下面的命令从名为 MyAg 的可用性组中删除可用性数据库 MyDb9。 因为此命令在承载主副本的服务器实例上执行,所以,主数据库及其对应的所有辅助数据库都将从可用性组中删除。 在任何辅助副本上都不会出现针对此数据库的数据同步。

    Remove-SqlAvailabilityDatabase ` 
    -Path SQLSERVER:\Sql\PrimaryComputer\InstanceName\AvailabilityGroups\MyAg\Databases\MyDb9
    
    注意注意

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

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

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

跟进:在从可用性组中删除可用性数据库之后

从其可用性组中删除可用性数据库后,将结束先前主数据库与对应的辅助数据库之间的数据同步。 以前的 master 数据库保持联机状态。 每个对应的辅助数据库都处于 RESTORING 状态。

此时,可以通过多种备选方法处理删除的辅助数据库:

  • 如果不再需要给定的辅助数据库,则可以将其删除。

    有关详细信息,请参阅删除数据库

  • 如果当辅助数据库已从可用性组中删除后要访问它,则可以恢复此数据库。 但是,如果恢复删除的辅助数据库,则会有两个同名的、独立但不同的数据库处于联机状态。 您必须确保客户端仅可访问其中一个数据库,通常为最新的 master 数据库。

    有关详细信息,请参阅恢复数据库但不还原数据 (Transact-SQL)

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

请参阅

概念

AlwaysOn 可用性组概述 (SQL Server)

从可用性组中删除辅助数据库 (SQL Server)