Создание группы доступности (SQL Server PowerShell)

В данном разделе описывается использование командлетов PowerShell для создания и настройки группы доступности AlwaysOn в SQL Server 2012. Группа доступности определяет набор пользовательских баз данных, которые будут действовать при сбое как единое целое, а также набор партнеров по обеспечению отработки отказа, называемых репликами доступности и поддерживающих отработку отказа.

ПримечаниеПримечание

Базовые сведения о группах доступности см. в разделе Обзор групп доступности AlwaysOn (SQL Server).

  • Перед началом работы  

    Предварительные условия, ограничения и рекомендации

    Безопасность

    Сводка задач и соответствующие командлеты PowerShell

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

  • Создание и настройка группы доступности с использованием:  Использование PowerShell для создания и настройки групп доступности

  • **Примеры. ** Использование PowerShell для создания группы доступности

  • Связанные задачи

  • См. также

ПримечаниеПримечание

Вместо командлетов PowerShell вы можете использовать мастер создания группы доступности или Transact-SQL. Дополнительные сведения см. в разделах Используйте диалоговое окно «Создание группы доступности» (SQL Server Management Studio) и Создание группы доступности (Transact-SQL).

Перед началом работы

Настоятельно рекомендуется прочитать этот раздел, прежде чем пытаться настроить свою первую группу доступности.

Предварительные условия, ограничения и рекомендации

  • Перед созданием группы доступности необходимо, чтобы экземпляры SQL Server, на которых находятся реплики доступности, были расположены на различных узлах одной отказоустойчивой кластеризации Windows Server (WSFC). Также необходимо обеспечить соответствие экземпляров сервера всем другим предварительным условиям для экземпляров сервера; кроме того, следует выполнить все требования Группы доступности AlwaysOn и ознакомиться с соответствующими рекомендациями. Для получения дополнительных сведений настоятельно рекомендуется раздел предварительными требованиями, и ограничениями и рекомендациями для групп доступности AlwaysOn (SQL Server).

Значок стрелки, используемый со ссылкой «В начало»[Top]

Безопасность

Разрешения

Требуется членство в предопределенной роли сервера sysadmin и одно из следующих разрешений сервера: CREATE AVAILABILITY GROUP, ALTER ANY AVAILABILITY GROUP или CONTROL SERVER.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Сводка задач и соответствующие командлеты PowerShell

В следующей таблице перечислены основные задачи, входящие в настройку группы доступности, и указывается, какие из них поддерживаются командлетами PowerShell. Задачи Группы доступности AlwaysOn должны выполняться в той последовательности, в которой они перечислены в таблице.

Задача

Командлеты PowerShell (если доступны) или инструкции Transact-SQL

Место выполнения задачи*

Создание конечной точки зеркального отображения базы данных (одна точка на экземпляр SQL Server)

New-SqlHadrEndPoint

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

ПримечаниеПримечание

Для изменения существующей конечной точки зеркального отображения базы данных используйте Set-SqlHadrEndpoint.

Создание группы доступности

Во-первых, используйте командлет New-SqlAvailabilityReplica с параметром -AsTemplate для создания объекта реплики доступности в памяти для каждой из двух реплик доступности, которые планируется включить в группу доступности.

Затем создайте группу доступности с помощью командлета New-SqlAvailabilityGroup, ссылаясь на объекты реплики доступности.

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

Присоединить вторичную реплику к группе доступности

Join-SqlAvailabilityGroup

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

Подготовьте базу данных-получатель

Backup-SqlDatabase и Restore-SqlDatabase

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

Восстановите резервные копии на каждом из тех экземпляров сервера, на которых размещена вторичная реплика, при помощи параметра восстановления NoRecovery. Если пути к файлам различны на компьютерах, на которых размещена основная реплика и целевая вторичная реплика, также следует использовать параметр восстановления RelocateFile.

Запуск синхронизации данных с помощью присоединения каждой базы данных-получателя к группе доступности

Add-SqlAvailabilityDatabase

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

* Для выполнения данной задачи измените каталог (cd) на соответствующий экземпляр или экземпляры сервера.

Значок стрелки, используемый со ссылкой «В начало»[Top]

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

Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование PowerShell для создания и настройки групп доступности

ПримечаниеПримечание

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

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

  2. Создайте объект реплики доступности в памяти для первичной реплики.

  3. Создайте объект реплики доступности в памяти для каждой вторичной реплики.

  4. Создайте группу доступности.

    ПримечаниеПримечание

    Максимальная длина имени группы доступности составляет 128 символов.

  5. Присоедините новую вторичную реплику к группе доступности. Дополнительные сведения см. в разделе Присоединение вторичной реплики к группе доступности (SQL Server).

  6. Для каждой базы данных в группе доступности создайте базу данных-получатель путем восстановления последней резервной копии базы данных-источника с помощью инструкции RESTORE WITH NORECOVERY.

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

  8. При необходимости с помощью команды Windows dir проверьте содержимое новой группы доступности.

ПримечаниеПримечание

Если учетные записи служб SQL Server на экземплярах серверов работают под разными учетными записями пользователей домена, создайте на каждом экземпляре сервера имя входа для другого экземпляра сервера и предоставьте этому имени входа разрешение на CONNECT к конечной точке зеркального отображения локальной базы данных.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Пример Использование PowerShell для создания группы доступности

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

  1. Выполняется резервное копирование базы данных MyDatabase и ее журнала транзакций.

  2. Выполняется восстановление базы данных MyDatabase и ее журнала транзакций с использованием параметра -NoRecovery.

  3. Создается хранимое в памяти представление первичной реплики, которое будет размещено на локальном экземпляре SQL Server (с именем PrimaryComputer\Instance).

  4. Создается хранимое в памяти представление вторичной реплики, которое будет размещено на экземпляре SQL Server (с именем SecondaryComputer\Instance).

  5. Создается группа доступности с именем MyAG.

  6. Вторичная реплика присоединяется к группе доступности.

  7. База данных-получатель присоединяется к группе доступности.

# Backup my database and its log on the primary
Backup-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.bak" `
    -ServerInstance "PrimaryComputer\Instance"

Backup-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.log" `
    -ServerInstance "PrimaryComputer\Instance" `
    -BackupAction Log 

# Restore the database and log on the secondary (using NO RECOVERY)
Restore-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.bak" `
    -ServerInstance "SecondaryComputer\Instance" `
    -NoRecovery

Restore-SqlDatabase `
    -Database "MyDatabase" `
    -BackupFile "\\share\backups\MyDatabase.log" `
    -ServerInstance "SecondaryComputer\Instance" `
    -RestoreAction Log `
    -NoRecovery

# Create an in-memory representation of the primary replica.
$primaryReplica = New-SqlAvailabilityReplica `
    -Name "PrimaryComputer\Instance" `
    -EndpointURL "TCP://PrimaryComputer.domain.com:5022" `
    -AvailabilityMode "SynchronousCommit" `
    -FailoverMode "Automatic" `
    -Version 11 `
    -AsTemplate

# Create an in-memory representation of the secondary replica.
$secondaryReplica = New-SqlAvailabilityReplica `
    -Name "SecondaryComputer\Instance" `
    -EndpointURL "TCP://SecondaryComputer.domain.com:5022" `
    -AvailabilityMode "SynchronousCommit" `
    -FailoverMode "Automatic" `
    -Version 11 `
    -AsTemplate

# Create the availability group
New-SqlAvailabilityGroup `
    -Name "MyAG" `
    -Path "SQLSERVER:\SQL\PrimaryComputer\Instance" `
    -AvailabilityReplica @($primaryReplica,$secondaryReplica) `
    -Database "MyDatabase"

# Join the secondary replica to the availability group.
Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\SecondaryComputer\Instance" -Name "MyAG"

# Join the secondary database to the availability group.
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\MyAG" -Database "MyDatabase"

Связанные задачи

Настройка экземпляра сервера для групп доступности AlwaysOn

Настройка свойств группы доступности и реплики

Завершение настройки группы доступности

Другие способы создания группы доступности

Устранение неполадок с конфигурацией групп доступности AlwaysOn

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Основные понятия

Конечная точка зеркального отображения базы данных (SQL Server)

Обзор групп доступности AlwaysOn (SQL Server)