Удаление базы данных-источника из группы доступности Always OnRemove a primary database from an Always On availability group

ОБЛАСТЬ ПРИМЕНЕНИЯ: да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 both the primary database and the corresponding secondary database(s) 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 primary replicas. Необходимо подключиться к экземпляру сервера, на котором размещена первичная реплика.You must be connected to the server instance that hosts the primary replica.

PermissionsPermissions

Необходимо разрешение ALTER AVAILABILITY GROUP для группы доступности, разрешение CONTROL AVAILABILITY GROUP, разрешение ALTER ANY AVAILABILITY GROUP или разрешение CONTROL SERVER.Requires ALTER AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.

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

Удаление базы данных доступностиTo remove an availability database

  1. В обозревателе объектов подключитесь к экземпляру сервера, размещающего базы данных, которые требуется удалить, и разверните дерево сервера.In Object Explorer, connect to the server instance that hosts the primary replica of the database or databases to be removed, 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 Database from Availability Group in the command menu.

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

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

Удаление базы данных доступностиTo remove an availability database

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

  2. Инструкция ALTER AVAILABILITY GROUP используется следующим образом:Use the ALTER AVAILABILITY GROUP statement, as follows:

    ALTER AVAILABILITY GROUP имя_группы REMOVE DATABASE имя_базы_данных_доступностиALTER AVAILABILITY GROUP group_name REMOVE DATABASE availability_database_name

    где имя_группы — имя группы доступности, а имя_базы_данных_доступности — имя удаляемой базы данных.where group_name is the name of the availability group and database_name is the name of the database to be removed.

    В следующем примере удаляется база данных с именем Db6 из группы доступности MyAG .The following example removes a databases named Db6 from the MyAG availability group.

    ALTER AVAILABILITY GROUP MyAG REMOVE DATABASE Db6;  
    

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

Удаление базы данных доступностиTo remove an availability database

  1. Перейдите в каталог (cd) экземпляра сервера, в котором находится первичная реплика.Change directory (cd) to the server instance that hosts the primary 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 the server instance that hosts the primary replica, the primary database and its corresponding secondary databases are all removed from the availability group.

    Например, следующая команда удаляет базу данных доступности MyDb9 из группы доступности с именем MyAg.For example, the following command removes the availability database MyDb9 from the availability group named MyAg. Поскольку команда выполняется в экземпляре сервера, на котором размещается первичная реплика, из группы доступности удаляется как база данных-источник, так и все соответствующие базы данных-получатели.Because the command is executed on the server instance that hosts the primary replica, the primary database and all its corresponding secondary databases are removed from the availability group. Синхронизация данных для этой базы данных во всех вторичных репликах больше происходить не будет.Data synchronization will no longer occur for this database on any secondary replica.

    Remove-SqlAvailabilityDatabase `   
    -Path SQLSERVER:\Sql\PrimaryComputer\InstanceName\AvailabilityGroups\MyAg\AvailabilityDatabases\MyDb9
    

    Примечание

    Чтобы просмотреть синтаксис командлета, воспользуйтесь командлетом Get-Help в среде SQL Server 2017SQL Server 2017 PowerShell.To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL Server 2017SQL Server 2017 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 an Availability Database from an Availability Group

При удалении базы данных доступности из соответствующей группы доступности выполнение синхронизации данных между бывшей базой данных-источником и соответствующими базами данных-получателями прекращается.Removing an availability database from its availability group ends data synchronization between the former primary database and the corresponding secondary databases. Бывшая база данных-источник остается в режиме «в сети».The former primary database remains online. Все соответствующие базы данных-получатели переводятся в состояние RESTORING.Every corresponding secondary database is placed in the RESTORING state.

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

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

    Дополнительные сведения см. в разделе Удаление базы данных.For more information, see 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 one of them, typically the most recent 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 Secondary Database from an Availability Group (SQL Server)