Добавление базы данных в группу доступности 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. Щелкните правой кнопкой группу доступности и выберите одну из следующих команд.

    • Для запуска мастера добавления базы данных в группу доступности выберите команду Добавление базы данных . Дополнительные сведения см. в статье Использование мастера добавления базы данных в группу доступности (SQL Server Management Studio).

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

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

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

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

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

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

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

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

    ALTER AVAILABILITY GROUP group_name ADD DATABASEdatabase_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)
Использование панели мониторинга Always On (в SQL Server Management Studio)
Отслеживание групп доступности (Transact-SQL)