Удаление базы данных-получателя из группы доступности (SQL Server)Remove a Secondary Database from an Availability Group (SQL Server)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

В этом разделе описывается удаление базы данных-получателя из группы доступности AlwaysOn с помощью среды SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLили PowerShell в SQL Server 2017SQL Server 2017.This topic describes how to remove a secondary database from an Always On availability group by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell in SQL Server 2017SQL Server 2017.

Требования и ограниченияPrerequisites and Restrictions

  • Эта задача поддерживается только на вторичных репликах.This task is supported only on secondary replicas. Необходимо подключиться к экземпляру сервера, размещающему вторичную реплику, из которой удаляется база данных.You must be connected to the server instance that hosts the secondary replica from which the database is to be removed.

PermissionsPermissions

Необходимо разрешение ALTER на базу данных.Requires ALTER permission on the database.

Использование среды SQL Server Management StudioUsing SQL Server Management Studio

Удаление базы данных-получателя из группы доступностиTo remove a secondary database from an availability group

  1. В обозревателе объектов подключитесь к экземпляру сервера, размещающему вторичную реплику, из которой требуется удалить одну или несколько баз данных-получателей, и разверните дерево сервера.In Object Explorer, connect to the server instance that hosts the secondary replica from which you want to remove one or more secondary databases, and expand the server tree.

  2. Разверните узел Высокий уровень доступности AlwaysOn и узел Группы доступности .Expand the Always On High Availability node and the Availability Groups node.

  3. Выберите группу доступности и разверните узел Базы данных доступности .Select the availability group, and expand the Availability Databases node.

  4. Этот шаг зависит от того, удаляется несколько баз данных или только одна база данных.This step depends on whether you want to remove multiple databases groups or only one database, as follows:

  5. Щелкните правой кнопкой мыши выбранную базу данных или базы данных и выберите в контекстном меню команду Удалить базу данных-получателя .Right-click the selected database or databases, and select Remove Secondary Database in the command menu.

  6. В диалоговом окне Удаление базы данных из группы доступности нажмите кнопку ОК, чтобы удалить все выбранные базы данных.In the Remove Database from Availability Group dialog box, to remove all the listed databases, click OK. Если все перечисленные базы данных удалять не нужно, нажмите кнопку Отмена.If you do not want to remove all the listed databases, click Cancel.

Использование Transact-SQLUsing Transact-SQL

Удаление базы данных-получателя из группы доступностиTo remove a secondary database from an availability group

  1. Подключитесь к экземпляру сервера, на котором находится дополнительная реплика.Connect to the server instance that hosts the secondary replica.

  2. Используйте предложение SET HADR в инструкции ALTER DATABASE следующим образом:Use the SET HADR clause of the ALTER DATABASE statement, as follows:

    ALTER DATABASE имя_базы_данных SET HADR OFFALTER DATABASE database_name SET HADR OFF

    где имя_базы_данных ― имя базы данных-получателя, удаляемой из группы доступности, к которой она относится.where database_name is the name of a secondary database to be removed from the availability group to which it belongs.

    В следующем примере локальная база данных-получатель MyDb2 удаляется из соответствующей группы доступности.The following example removes the local secondary database MyDb2 from its availability group.

    ALTER DATABASE MyDb2 SET HADR OFF;  
    GO  
    

Использование PowerShellUsing PowerShell

Удаление базы данных-получателя из группы доступностиTo remove a secondary database from an availability group

  1. Перейдите в каталог (cd) экземпляра сервера, на котором размещается вторичная реплика.Change directory (cd) to the server instance that hosts the secondary replica.

  2. Используйте командлет Remove-SqlAvailabilityDatabase , указав имя базы данных доступности, которую требуется удалить из группы доступности.Use the Remove-SqlAvailabilityDatabase cmdlet, specifying the name of the availability database to be removed from the availability group. Когда установлено подключение к экземпляру сервера, на котором находится вторичная реплика, из группы доступности удаляется только локальная база данных-получатель.When you are connected to a server instance that hosts a secondary replica, only the local secondary database is removed from the availability group.

    Например, следующая команда удаляет базу данных-получатель MyDb8 из вторичной реплики, размещенной на экземпляре сервера SecondaryComputer\Instance.For example, the following command removes the secondary database MyDb8 from the secondary replica hosted by the server instance named SecondaryComputer\Instance. Синхронизация данных для удаленных баз данных-получателей прекращается.Data synchronization to the removed secondary databases ceases. Эта команда не влияет на базу данных-источник и на любые другие базы данных-получатели.This command does not affect the primary database or any other secondary databases.

    Remove-SqlAvailabilityDatabase `  
    -Path SQLSERVER:\Sql\SecondaryComputer\InstanceName\AvailabilityGroups\MyAg\Databases\MyDb8  
    

    Примечание

    Чтобы просмотреть синтаксис командлета, воспользуйтесь командлетом Get-Help в среде PowerShell SQL ServerSQL Server .To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL ServerSQL Server PowerShell environment. Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.For more information, see Get Help SQL Server PowerShell.

Настройка и использование поставщика SQL Server PowerShellTo set up and use the SQL Server PowerShell provider

Дальнейшие действия. После удаления базы данных-получателя из группы доступностиFollow Up: After Removing a Secondary Database from an Availability Group

После удаления базы данных-получателя она перестает входить в группу доступности, кроме того, из группы доступности удаляются все сведения об этой базе данных-получателе.When a secondary database is removed, it is no longer joined to the availability group and all information about the removed secondary database is discarded by the availability group. Удаленная база данных-получатель переводится в состояние RESTORING.The removed secondary database is placed in the RESTORING state.

Совет

В течение некоторого времени после удаления базы данных-получателя можно перезапустить синхронизацию данных AlwaysOn в базе данных, повторно присоединив ее к группе доступности.For a short time after removing a secondary database, you might be able to restart Always On data synchronization on the database by re-joining it to the availability group. Дополнительные сведения см. в статье Присоединение базы данных-получателя к группе доступности (SQL Server).For more information, see Join a Secondary Database to an Availability Group (SQL Server).

В этот момент поступить с удаленной базой данных-получателем можно следующим образом.At this point there are alternative ways of dealing with a removed secondary database:

  • Если эта база данных-получатель больше не нужна, ее можно удалить.If you no longer need the secondary database, you can drop it.

    Дополнительные сведения см. в разделе DROP DATABASE (Transact-SQL) или Удаление базы данных.For more information, see DROP DATABASE (Transact-SQL) or Delete a Database.

  • Если после удаления базы данных-получателя из группы доступности она еще может понадобиться, ее можно восстановить.If you want to access a removed secondary database after it has been removed from the availability group, you can recover the database. Однако при восстановлении удаленной базы данных-получателя в режиме «в сети» окажутся две разные базы данных с одним именем.However, if you recover a removed secondary database, two divergent, independent databases that have the same name are online. Необходимо обеспечить, чтобы клиенты могли получить доступ только к текущей базе данных-источнику.You must make sure that clients can access only the current primary database.

    Дополнительные сведения см. в разделе Восстановление базы данных без восстановления данных (Transact-SQL).For more information, see Recover a Database Without Restoring Data (Transact-SQL).

См. также:See Also

Обзор групп доступности AlwaysOn (SQL Server) Overview of Always On Availability Groups (SQL Server)
Удаление базы данных-источника из группы доступности (SQL Server)Remove a Primary Database from an Availability Group (SQL Server)