Добавление базы данных в группу доступности Always On

Область применения: SQL Server

В этом разделе описывается добавление базы данных в группу доступности AlwaysOn с помощью SQL Server Management Studio, Transact-SQL или PowerShell в среде SQL Server.

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

Разрешения

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

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

  1. В обозревателе объектов подключитесь к экземпляру сервера, на котором размещена первичная реплика, и разверните дерево сервера.

  2. Разверните узел Высокий уровень доступности AlwaysOn и узел Группы доступности .

  3. Щелкните правой кнопкой группу доступности и выберите одну из следующих команд.

    • Для запуска мастера добавления базы данных в группу доступности выберите команду Добавление базы данных . Дополнительные сведения см. в статье Добавление базы данных в группу доступности Always On с помощью мастера создания групп доступности.

    • Для добавления одной или нескольких баз данных путем их указания в диалоговом окне Свойства группы доступности выберите команду Свойства . Шаги для добавления базы данных.

      1. На панели Базы данных доступности нажмите кнопку Добавить . Будет создано и выбрано пустое поле базы данных.

      2. Введите имя базы данных, удовлетворяющее требованиям баз данных доступности.

      Чтобы добавить другую базу данных, повторите предыдущие шаги. После указания баз данных нажмите кнопку ОК для завершения операции.

      После добавления базы данных в группу доступности с помощью диалогового окна Свойства группы доступности необходимо настроить соответствующую базу данных-получатель на каждом из экземпляров сервера, на которых размещена вторичная реплика. Дополнительные сведения см. в статье Запуск перемещения данных для базы данных-получателя Always On (SQL Server).

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

  1. Подключитесь к экземпляру сервера, на котором размещен экземпляр сервера с первичной репликой доступности.

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

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

    где group_name — это имя группы доступности, а database_name — это имя базы данных, добавляемой в группу.

    В следующем примере добавляется база данных MyDb3 в группу доступности MyAG .

    -- 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. После добавления базы данных в группу доступности необходимо настроить соответствующую базу данных-получатель на каждом из экземпляров сервера, на которых размещена вторичная реплика. Дополнительные сведения см. в статье Запуск перемещения данных для базы данных-получателя Always On (SQL Server).

С помощью PowerShell

  1. Перейдите в каталог (cd) экземпляра сервера, в котором находится первичная реплика.

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

    Например, следующая команда добавляет базу данных-получатель MyDd к группе доступности MyAG , первичная реплика которой размещена в расположении PrimaryServer\InstanceName.

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

    Примечание.

    Чтобы просмотреть синтаксис командлета, используйте командлет Get-Help в среде SQL Server PowerShell. Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.

  3. После добавления базы данных в группу доступности необходимо настроить соответствующую базу данных-получатель на каждом из экземпляров сервера, на которых размещена вторичная реплика. Дополнительные сведения см. в статье Запуск перемещения данных для базы данных-получателя Always On (SQL Server).

Настройка и использование поставщика SQL Server PowerShell

Полный пример см. в разделе Пример (PowerShell)ниже.

Пример (PowerShell)

В следующем примере показан полный процесс подготовки базы данных-получателя из базы данных на экземпляре сервера, на котором размещается первичная реплика группы доступности, добавления базы данных в группу доступности (в качестве базы данных-источника) и присоединения базы данных-получателя к группе доступности. Во-первых, в примере выполняется резервное копирование базы данных и ее журнала транзакций. Затем выполняется восстановление из резервной копии базы данных и журнала в экземпляры сервера, в которых размещается вторичная реплика.

В этом примере Add-SqlAvailabilityDatabase вызывается дважды: сначала в первичной реплике для добавления базы данных в группу доступности, а затем во вторичной реплике для присоединения базы данных-получателя из этой реплики к группе доступности. При наличии нескольких вторичных реплик нужно выполнить восстановление и присоединение базы данных-получателя в каждой из них.

$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"  
  

См. также

Обзор групп доступности Always On (SQL Server)
Создание и настройка групп доступности (SQL Server)
Использование панели мониторинга AlwaysOn (среда SQL Server Management Studio)
Отслеживание групп доступности (Transact-SQL)