Добавление базы данных в группу доступности Always OnAdd a Database to 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 add a database to 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

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 StudioUse SQL Server Management Studio

  1. В обозревателе объектов подключитесь к экземпляру сервера, на котором размещена первичная реплика, и разверните дерево сервера.In Object Explorer, connect to the server instance that hosts the primary replica, and expand the server tree.

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

  3. Щелкните правой кнопкой группу доступности и выберите одну из следующих команд.Right-click the availability group, and select one of the following commands:

    • Для запуска мастера добавления базы данных в группу доступности выберите команду Добавление базы данных .To launch the Add Database to Availability Group Wizard, select the Add Database command. Дополнительные сведения см. в разделе Использование мастера добавления базы данных в группу доступности (среда SQL Server Management Studio).For more information, see Use the Add Database to Availability Group Wizard (SQL Server Management Studio).

    • Для добавления одной или нескольких баз данных путем их указания в диалоговом окне Свойства группы доступности выберите команду Свойства .To add one or more databases by specifying them in the Availability Group Properties dialog box, select the Properties command. Шаги для добавления базы данных.The steps for adding a database are as follows:

      1. На панели Базы данных доступности нажмите кнопку Добавить .In the Availability Databases pane, click the Add button. Будет создано и выбрано пустое поле базы данных.This creates and selects a blank database field.

      2. Введите имя базы данных, удовлетворяющее требованиям баз данных доступности.Enter the name of a database that meets the availability-databases prerequisites.

      Чтобы добавить другую базу данных, повторите предыдущие шаги.To add another database, repeat the preceding steps. После указания баз данных нажмите кнопку ОК для завершения операции.When you are done specifying databases, click OK to complete the operation.

      После добавления базы данных в группу доступности с помощью диалогового окна Свойства группы доступности необходимо настроить соответствующую базу данных-получатель на каждом из экземпляров сервера, на которых размещена вторичная реплика.After you use the Availability Group Properties dialog box to add a database to an availability group, you need to configure the corresponding secondary database on each server instance that hosts a secondary replica. Дополнительные сведения см. в статье Запуск перемещения данных для базы данных-получателя AlwaysOn (SQL Server).For more information, see Start Data Movement on an Always On Secondary Database (SQL Server).

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

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

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

    ALTER AVAILABILITY GROUP group_name ADD DATABASE database_name [,...n]ALTER AVAILABILITY GROUP group_name ADD DATABASE database_name [,...n]

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

    В следующем примере добавляется база данных MyDb3 в группу доступности MyAG .The following example adds the MyDb3 database to the MyAG availability group.

    -- Connect to the server instance that hosts the primary replica.  
    -- Add an existing database to the availability group.  
    ALTER AVAILABILITY GROUP MyAG ADD DATABASE MyDb3;  
    GO  
    
  3. После добавления базы данных в группу доступности необходимо настроить соответствующую базу данных-получатель на каждом из экземпляров сервера, на которых размещена вторичная реплика.After you add a database to an availability group, you need to configure the corresponding secondary database on each server instance that hosts a secondary replica. Дополнительные сведения см. в статье Запуск перемещения данных для базы данных-получателя AlwaysOn (SQL Server).For more information, see Start Data Movement on an Always On Secondary Database (SQL Server).

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

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

  2. Использование командлета Add-SqlAvailabilityDatabase .Use the Add-SqlAvailabilityDatabase cmdlet.

    Например, следующая команда добавляет базу данных-получатель MyDd к группе доступности MyAG , первичная реплика которой размещена в расположении PrimaryServer\InstanceName.For example, the following command adds the secondary database MyDd to the MyAG availability group, whose primary replica is hosted by PrimaryServer\InstanceName.

    
    Add-SqlAvailabilityDatabase `   
    -Path SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAG `   
    -Database "MyDb"  
    

    Примечание

    Чтобы просмотреть синтаксис командлета, воспользуйтесь командлетом 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.

  3. После добавления базы данных в группу доступности необходимо настроить соответствующую базу данных-получатель на каждом из экземпляров сервера, на которых размещена вторичная реплика.After you add a database to an availability group, you need to configure the corresponding secondary database on each server instance that hosts a secondary replica. Дополнительные сведения см. в статье Запуск перемещения данных для базы данных-получателя AlwaysOn (SQL Server).For more information, see Start Data Movement on an Always On Secondary Database (SQL Server).

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

Полный пример см. в разделе Пример (PowerShell)ниже.For a complete example, see Example (PowerShell), below.

Пример (PowerShell)Example (PowerShell)

В следующем примере показан полный процесс подготовки базы данных-получателя из базы данных на экземпляре сервера, на котором размещается первичная реплика группы доступности, добавления базы данных в группу доступности (в качестве базы данных-источника) и присоединения базы данных-получателя к группе доступности.The following example shows the full process for preparing a secondary database from a database on the server instance that hosts the primary replica of an availability group, adding the database to an availability group (as a primary database), and then joining the secondary database to the availability group. Во-первых, в примере выполняется резервное копирование базы данных и ее журнала транзакций.First, the example backs up the database and its transaction log. Затем выполняется восстановление из резервной копии базы данных и журнала в экземпляры сервера, в которых размещается вторичная реплика.Then the example restores the database and log backups to the server instances that host a secondary replica.

В этом примере Add-SqlAvailabilityDatabase вызывается дважды: сначала в первичной реплике для добавления базы данных в группу доступности, а затем во вторичной реплике для присоединения базы данных-получателя из этой реплики к группе доступности.The example calls Add-SqlAvailabilityDatabase twice: first on the primary replica to add the database to the availability group, and then on the secondary replica to join the secondary database on that replica to the availability group. При наличии нескольких вторичных реплик нужно выполнить восстановление и присоединение базы данных-получателя в каждой из них.If you have more than one secondary replica, restore and join the secondary database on each of them.

$DatabaseBackupFile = "\\share\backups\MyDatabase.bak"  
$LogBackupFile = "\\share\backups\MyDatabase.trn"  
$MyAgPrimaryPath = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAg"  
$MyAgSecondaryPath = "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MyAg"  
  
Backup-SqlDatabase -Database "MyDatabase" -BackupFile $DatabaseBackupFile -ServerInstance "PrimaryServer\InstanceName"  
Backup-SqlDatabase -Database "MyDatabase" -BackupFile $LogBackupFile -ServerInstance "PrimaryServer\InstanceName" -BackupAction 'Log'  
  
Restore-SqlDatabase -Database "MyDatabase" -BackupFile $DatabaseBackupFile -ServerInstance "SecondaryServer\InstanceName" -NoRecovery  
Restore-SqlDatabase -Database "MyDatabase" -BackupFile $LogBackupFile -ServerInstance "SecondaryServer\InstanceName" -RestoreAction 'Log' -NoRecovery  
  
Add-SqlAvailabilityDatabase -Path $MyAgPrimaryPath -Database "MyDatabase"  
Add-SqlAvailabilityDatabase -Path $MyAgSecondaryPath -Database "MyDatabase"  
  

См. также:See Also

Обзор групп доступности AlwaysOn (SQL Server) Overview of Always On Availability Groups (SQL Server)
Создание и настройка групп доступности (SQL Server) Creation and Configuration of Availability Groups (SQL Server)
Использование панели мониторинга AlwaysOn (среда SQL Server Management Studio) Use the Always On Dashboard (SQL Server Management Studio)
Отслеживание групп доступности (Transact-SQL)Monitor Availability Groups (Transact-SQL)