Использование PowerShell для создания группы доступности Always On
Применимо к:SQL Server
В этом разделе описывается, как использовать командлеты PowerShell для создания и настройки группы доступности AlwaysOn с помощью PowerShell в SQL Server. Группа доступности определяет набор пользовательских баз данных, которые будут действовать при сбое как единое целое, а также набор партнеров по обеспечению отработки отказа, называемых репликами доступностии поддерживающих отработку отказа.
Примечание.
Базовые сведения о группах доступности см. в статье Что такое группа доступности Always On?.
Примечание.
Вместо командлетов PowerShell вы можете использовать мастер создания группы доступности или Transact-SQL. Дополнительные сведения см. в статьях Использование диалогового окна "Создание группы доступности" (среда SQL Server Management Studio) и Создание группы доступности (Transact-SQL).
Перед началом
Предварительные условия, ограничения и рекомендации
- Перед созданием группы доступности убедитесь, что экземпляры узлов SQL Server находятся на другом узле отказоустойчивой кластеризации Windows Server (WSFC) одного отказоустойчивого кластера WSFC. Кроме того, убедитесь, что экземпляры сервера соответствуют требованиям других экземпляров сервера и соответствуют ли все остальные требования к группам доступности AlwaysOn и что вы знаете о рекомендациях. Для получения дополнительных сведений настоятельно рекомендуется изучить статью Предварительные требования, ограничения и рекомендации для групп доступности Always On (SQL Server).
Разрешения
Требуется членство в фиксированной роли сервера sysadmin и одно из разрешений: CREATE AVAILABILITY GROUP, ALTER ANY AVAILABILITY GROUP или CONTROL SERVER.
Использование 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) на соответствующий экземпляр или экземпляры сервера.
Использование PowerShell
Настройка и использование поставщика SQL Server PowerShell.
Примечание.
Чтобы просмотреть синтаксис и пример заданного командлета, используйте командлет Get-Help в среде SQL Server PowerShell. Дополнительные сведения см. в разделе Get Help SQL Server PowerShell.
Перейдите в каталог (cd) экземпляра сервера, на котором размещается первичная реплика.
Создайте объект реплики доступности в памяти для первичной реплики.
Создайте объект реплики доступности в памяти для каждой вторичной реплики.
Создайте группу доступности.
Примечание.
Максимальная длина имени группы доступности составляет 128 символов.
Сведения о присоединении новой вторичной реплики к группе доступности см. в статье Присоединение вторичной реплики к группе доступности (SQL Server).
Для каждой базы данных в группе доступности создайте базу данных-получатель путем восстановления последней резервной копии базы данных-источника с помощью инструкции RESTORE WITH NORECOVERY.
Сведения о присоединении новой базы данных-получателя к группе доступности см. в статье Присоединение вторичной реплики к группе доступности (SQL Server).
(Необязательно) С помощью команды Windows dir проверьте содержимое новой группы доступности.
Примечание.
Если учетные записи службы SQL Server экземпляров сервера выполняются под разными учетными записями пользователя домена, на каждом экземпляре сервера создайте имя входа для другого экземпляра сервера и предоставьте этому имени входа разрешение CONNECT локальной базе данных зеркало конечной точке.
Пример
В следующем примере использования PowerShell создается и настраивается простая группа доступности с именем <myAvailabilityGroup>
с двумя репликами доступности и с одной базой данных доступности. Пример.
Выполняется резервное копирование базы данных
<myDatabase>
и ее журнала транзакций.Выполняется восстановление базы данных
<myDatabase>
и ее журнала транзакций с использованием параметра -NoRecovery .Создает в памяти представление основного реплика, которое будет размещаться локальным экземпляром SQL Server (с именем
PrimaryComputer\Instance
).Создает в памяти представление вторичного реплика, которое будет размещаться экземпляром SQL Server (с именем
SecondaryComputer\Instance
).Создается группа доступности с именем
<myAvailabilityGroup>
.Вторичная реплика присоединяется к группе доступности.
База данных-получатель присоединяется к группе доступности.
# 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 12 `
-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 12 `
-AsTemplate
# Create the availability group
New-SqlAvailabilityGroup `
-Name "<myAvailabilityGroup>" `
-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 "<myAvailabilityGroup>"
# Join the secondary database to the availability group.
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\<myAvailabilityGroup>" -Database "<myDatabase>"
Связанные задачи
Настройка экземпляра сервера для групп доступности AlwaysOn
Настройка свойств группы доступности и реплики
Изменение режима доступности реплики доступности (SQL Server)
Изменение режима отработки отказа реплики доступности (SQL Server)
Создание или настройка прослушивателя группы доступности (SQL Server)
Укажите URL-адрес конечной точки при добавлении или изменении реплики доступности (SQL Server)
Настройка резервного копирования в репликах доступности (SQL Server)
Настройка доступа только для чтения в реплике доступности (SQL Server)
Настройка маршрутизации только для чтения в группе доступности (SQL Server)
Изменение периода ожидания сеанса для реплики доступности (SQL Server)
Завершение настройки группы доступности
Присоединение вторичной реплики к группе доступности (SQL Server)
Подготовка базы данных-получателя для группы доступности вручную (SQL Server)
Присоединение базы данных-получателя к группе доступности (SQL Server)
Создание или настройка прослушивателя группы доступности (SQL Server)
Другие способы создания группы доступности
Устранение неполадок с конфигурацией групп доступности AlwaysOn
Поиск и устранение неисправностей конфигурации групп доступности AlwaysOn (SQL Server)
Устранение неполадок с ошибкой операции надстройки (группы доступности AlwaysOn)
См. также
Блоги
Обучающая серия AlwaysOn — HADRON: использование рабочего пула для баз данных с поддержкой HADRON
Технические документы
См. также
Конечная точка зеркального отображения базы данных (SQL Server)
Обзор групп доступности Always On (SQL Server)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по