New-SqlAvailabilityGroup
Создает группу доступности.
Синтаксис
ByPath (по умолчанию)
New-SqlAvailabilityGroup
[-Name] <String>
[[-Path] <String>]
-AvailabilityReplica <AvailabilityReplica[]>
[-Database <String[]>]
[-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
[-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
[-HealthCheckTimeout <Int32>]
[-BasicAvailabilityGroup]
[-ContainedAvailabilityGroup]
[-ReuseSystemDatabases]
[-DatabaseHealthTrigger]
[-DtcSupportEnabled]
[-ClusterType <AvailabilityGroupClusterType>]
[-RequiredSynchronizedSecondariesToCommit <Int32>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByObject
New-SqlAvailabilityGroup
[-Name] <String>
[-InputObject] <Server>
-AvailabilityReplica <AvailabilityReplica[]>
[-Database <String[]>]
[-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
[-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
[-HealthCheckTimeout <Int32>]
[-BasicAvailabilityGroup]
[-ContainedAvailabilityGroup]
[-ReuseSystemDatabases]
[-DatabaseHealthTrigger]
[-DtcSupportEnabled]
[-ClusterType <AvailabilityGroupClusterType>]
[-RequiredSynchronizedSecondariesToCommit <Int32>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет New-SqlAvailabilityGroup создает группу доступности в группах доступности AlwaysOn.
Параметр InputObject или Path указывает сервер, на котором размещена начальная первичная реплика.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Примеры
Пример 1. Создание группы доступности
PS C:\> $PrimaryServer = Get-Item "SQLSERVER:\SQL\PrimaryServer\Instance22"
PS C:\> $SecondaryServer = Get-Item "SQLSERVER:\SQL\SecondaryServer\Instance22"
PS C:\> $PrimaryReplica = New-SqlAvailabilityReplica -Name "PrimaryServer\Instance22" -EndpointUrl "TCP://PrimaryServer.domain:5022" -FailoverMode "Automatic" -AvailabilityMode "SynchronousCommit" -AsTemplate -Version ($PrimaryServer.Version)
PS C:\> $SecondaryReplica = New-SqlAvailabilityReplica -Name "SecondaryServer\Instance22" -EndpointUrl "TCP://SecondaryServer.domain:5022" -FailoverMode "Automatic" -AvailabilityMode "SynchronousCommit" -AsTemplate -Version ($SecondaryServer.Version)
PS C:\> New-SqlAvailabilityGroup -InputObject $PrimaryServer -Name "MainAG" -AvailabilityReplica ($PrimaryReplica, $SecondaryReplica) -Database @("Database01","Database02")
Первая команда получает экземпляр SQL Server на основном сервере, а затем сохраняет его в переменной $PrimaryServer.
Четвертая команда создает реплику, которая включает экземпляр вторичного сервера с помощью New-SqlAvailabilityReplica, а затем сохраняет ее в переменной $SecondaryReplica.
Команда указывает версию экземпляра сервера с помощью свойства Version $SecondaryServer.
Пример 2. Создание группы доступности, поддерживаемой WSFC
# Get server
PS C:\> cd 'SQLSERVER:\SQL\some-hostname\Default'
PS SQLSERVER:\SQL\some-hostname\Default> $server = Get-Item $PWD
# Create primary replica
PS SQLSERVER:\SQL\some-hostname\Default> $primaryReplica = New-SqlAvailabilityReplica -Name 'some-hostname' -EndpointUrl 'tcp://some-hostname:5022' -FailoverMode Automatic -AvailabilityMode SynchronousCommit -AsTemplate
# Create AG with explicit cluster type WSFC (same as not passing -ClusterType, since it is the default value)
PS SQLSERVER:\SQL\some-hostname\Default> $server | New-SqlAvailabilityGroup -Name 'ag1' -AvailabilityReplica $PrimaryReplica -Script -ClusterType Wsfc
Пример 3. Создание кластера групп доступности независимо
# Get server
PS C:\> CD 'SQLSERVER:\SQL\some-hostname\Default'
PS SQLSERVER:\SQL\some-hostname\Default> $server = Get-Item $PWD
# Create primary replica
PS SQLSERVER:\SQL\some-hostname\Default> $primaryReplica = New-SqlAvailabilityReplica -Name 'some-hostname' -EndpointUrl 'tcp://some-hostname:5022' -FailoverMode Automatic -AvailabilityMode SynchronousCommit -AsTemplate
# Create AG cluster group independent
PS SQLSERVER:\SQL\some-hostname\Default> $server | New-SqlAvailabilityGroup -Name 'ag1' -AvailabilityReplica $PrimaryReplica -Script -ClusterType None
Пример 4. Создание групп доступности с указанием количества секундных SYNCHRONOUS_COMMIT, которые должны быть доступны для транзакций для фиксации на первичном сервере
# Get server
PS C:\> Get-Item 'SQLSERVER:\SQL\some-hostname\Default'
# Create primary replica
PS C:\> $primaryReplica = New-SqlAvailabilityReplica -Name 'some-hostname' -EndpointUrl 'tcp://some-hostname:5022' -FailoverMode Automatic -AvailabilityMode SynchronousCommit -AsTemplate
# Create AG with RequiredSynchronizedSecondariesToCommit = 3
PS C:\> $server | New-SqlAvailabilityGroup -Name 'ag1' -AvailabilityReplica $PrimaryReplica -RequiredSynchronizedSecondariesToCommit 3
Примечание. Исключение возникает, если параметр -RequiredSynchronizedSecondariesToCommit используется, если версия целевого сервера — SQL Server 2016 или ниже.
Параметры
-AccessToken
Маркер доступа, используемый для проверки подлинности в SQL Server, в качестве альтернативы пользователю или паролю или проверке подлинности Windows.
Это можно использовать, например, для подключения SQL Azure DB и использования объекта SQL Azure Managed Instance или aService PrincipalManaged Identity.
Используемый параметр может быть строкой, представляющей маркер или PSAccessToken объект, возвращаемый выполнением Get-AzAccessToken -ResourceUrl https://database.windows.net.
Этот параметр является новым в версии 22 модуля.
Свойства параметра
| Тип: | PSObject |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-AutomatedBackupPreference
Задает параметр автоматического резервного копирования для группы доступности.
Допустимые значения для этого параметра:
- Первичный. Указывает, что резервные копии всегда выполняются на первичной реплике. Этот параметр поддерживает использование функций, недоступных при выполнении резервного копирования на вторичной реплике, например разностных резервных копий.
- SecondaryOnly. Указывает, что резервные копии никогда не выполняются на первичных репликах. Если основная реплика является единственной репликой в сети, резервное копирование не происходит.
- Вторичный. Указывает, что резервные копии выполняются во вторичных репликах, если основная реплика не является единственной репликой в сети. Затем резервное копирование происходит на первичной реплике.
- Нет. Указывает, что основное или дополнительное состояние не учитывается при принятии решения о том, какая реплика выполняет резервное копирование. Вместо этого приоритет резервного копирования и состояние в сети определяют, какая реплика выполняет резервные копии.
Свойства параметра
| Тип: | AvailabilityGroupAutomatedBackupPreference |
| Default value: | None |
| Допустимые значения: | Primary, SecondaryOnly, Secondary, None, Unknown |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-AvailabilityReplica
Указывает массив реплик доступности, которые этот командлет включает в группу доступности. Чтобы получить availabilityReplica, используйте командлет New-SqlAvailabilityReplica . Укажите параметр AsTemplate .
Свойства параметра
| Тип: | AvailabilityReplica[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-BasicAvailabilityGroup
Указывает, следует ли создавать advanced (по умолчанию) или basic группу доступности.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-ClusterType
Тип кластера, который поддерживает группу доступности. Возможны следующие значения:
- Wsfc. Группа доступности будет интегрирована в отказоустойчивый кластер Windows Server. Вот как создаются группы доступности в SQL Server 2016 и ниже. Это значение по умолчанию.
- Нет. Группа доступности будет независимой от кластера.
- Внешний. Группа доступности будет управляться диспетчером кластеров, который не является отказоустойчивой кластером Windows Server, например Pacemaker в Linux. Это поддерживается в SQL Server 2017 и более поздних версиях. При целевом использовании SQL Server в Linux необходимо указать это значение или ошибка будет оккур.
Примечание. Исключение будет возникать, если параметр -ClusterType используется, если целевой сервер — SQL Server 2016 и ниже.
Свойства параметра
| Тип: | AvailabilityGroupClusterType |
| Default value: | Wsfc |
| Допустимые значения: | Wsfc, None, External |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Confirm
Запрашивает подтверждение перед запуском cmdlet.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | cf |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-ContainedAvailabilityGroup
Используется для создания автономной группы доступности. Этот параметр используется для создания группы доступности с собственными базами данных master и msdb, которые синхронизируются между набором реплик в группе доступности. Этот параметр можно использовать со своим компаньоном -ReuseSystemDatabases.
Этот параметр разрешен только в том случае, если целевой СЕРВЕР SQL Server поддерживает группы доступности, содержащиеся (SQL 2022 и выше). Попытка использовать используется в версиях SQL, которые не поддерживают содержащиеся группы доступности, приведет к возникновению ошибки командлета.
Этот параметр доступен только в версии 22+ модуля.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Database
Задает массив локальных и записываемых пользовательских баз данных. Эти базы данных должны использовать модель полного восстановления и не должны использовать AUTO_CLOSE. Эти базы данных не могут принадлежать другой группе доступности и не могут быть настроены для зеркального отображения базы данных. Необходимо указать значение для этого параметра.
Свойства параметра
| Тип: | String[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-DatabaseHealthTrigger
Указывает, следует ли активировать автоматическую отработку отказа группы доступности, если любая реплика пользовательской базы данных в группе доступности обнаруживает условие сбоя базы данных.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-DtcSupportEnabled
Указывает, регистрируются ли базы данных в группе доступности в MSDTC на уровне экземпляра (по умолчанию) или на уровне базы данных.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Encrypt
Тип шифрования, используемый при подключении к SQL Server.
Это значение сопоставляется со Encrypt свойством SqlConnectionEncryptOption объекта SqlConnection драйвера Microsoft.Data.SqlClient.
В версии 22 модуля используется Optional значение по умолчанию (для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет "Обязательный", которое может создать критическое изменение для существующих скриптов.
Этот параметр является новым в версии 22 модуля.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Допустимые значения: | Mandatory, Optional, Strict |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-FailureConditionLevel
Указывает поведение автоматической отработки отказа группы доступности. Допустимые значения для этого параметра:
- OnServerDown. Отработка отказа или перезапуск, если служба SQL Server останавливается.
- OnServerUnresponsive. Отработка отказа или перезапуск, если любое условие меньшего значения удовлетворено, а также при подключении службы SQL Server к кластеру и превышению порогового значения HealthCheckTimeout или если реплика доступности в настоящее время в первичной роли находится в состоянии сбоя.
- OnCriticalServerError. Отработка отказа или перезапуск, если любое условие меньшего значения удовлетворено, а также при возникновении внутренней критической ошибки сервера, которая включает в себя состояние памяти, серьезное нарушение доступа к записи или слишком много дампа.
- OnModerateServerError. Отработка отказа или перезапуск при выполнении любого условия меньшего значения, а также при возникновении умеренной ошибки сервера, которая включает постоянное отсутствие состояния памяти.
- OnAnyQualifiedFailureConditions. Отработка отказа или перезапуск, если любое условие меньшего значения удовлетворено, а также, если возникает соответствующее условие сбоя, включающее исчерпание рабочего потока подсистемы и обнаружена неизменяемая взаимоблокировка.
Свойства параметра
| Тип: | AvailabilityGroupFailureConditionLevel |
| Default value: | None |
| Допустимые значения: | OnServerDown, OnServerUnresponsive, OnCriticalServerErrors, OnModerateServerErrors, OnAnyQualifiedFailureCondition, Unknown |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-HealthCheckTimeout
Указывает продолжительность времени в миллисекундах, после чего группы доступности AlwaysOn объявляют неответственный сервер, который будет неработоспособным.
Свойства параметра
| Тип: | Int32 |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-HostNameInCertificate
Имя узла используется для проверки TLS/SSL-сертификата SQL Server. Этот параметр необходимо передать, если экземпляр SQL Server включен для принудительного шифрования и требуется подключиться к экземпляру с помощью имени узла или короткого имени. Если этот параметр опущен, передача полного доменного имени (FQDN) в -ServerInstance необходима для подключения к экземпляру SQL Server, включенного для принудительного шифрования.
Этот параметр является новым в версии 22 модуля.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-InputObject
Указывает экземпляр SQL Server, на котором размещена первичная реплика группы доступности, которую создает этот командлет.
Свойства параметра
| Тип: | Server |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByObject
| Position: | 2 |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Name
Указывает имя группы доступности, которую создает этот командлет.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 1 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Path
Указывает путь экземпляра SQL Server, на котором размещается начальная первичная реплика группы доступности, которую создает этот командлет. Если этот параметр не указан, этот командлет использует текущее рабочее расположение. Если указать значение, путь должен существовать в данный момент.
Свойства параметра
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByPath
| Position: | 2 |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-RequiredSynchronizedSecondariesToCommit
Количество синхронных вторичных файлов фиксации, которые должны быть доступны для фиксации на первичном сервере.
Если вторичный SYNCHRONOUS_COMMIT отключается от основного в течение некоторого времени, основной разнизит его, чтобы ASYNCHRONOUS_COMMIT избежать блокировки фиксаций. Если основной элемент становится недоступным, и пользователь хочет выполнить отработку отказа в один из этих вторичных файлов, он может привести к потере данных. Задав параметр RequiredSynchronizedSecondariesToCommit на некоторое число, пользователь может предотвратить потерю данных, так как основной сервер начнет блокировать фиксации, если слишком много вторичных файлов понижено до ASYNCHRONOUS_COMMIT.
Значение по умолчанию этого параметра равно 0, что означает, что основной объект никогда не блокирует фиксации. Это идентично поведению перед SQL Server 2017.
Свойства параметра
| Тип: | Int32 |
| Default value: | 0 |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-ReuseSystemDatabases
Этот параметр приводит к тому, что содержащиеся master и msdb базы данных из предыдущей версии группы доступности будут использоваться при создании этой новой группы доступности.
Попытка использовать этот параметр без указания -ContainedAvailabilityGroup не допускается, что командлет выдает ошибку.
Этот параметр доступен только в версии 22+ модуля.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Script
Указывает, что этот командлет возвращает скрипт Transact-SQL, выполняющий задачу, выполняемую этим командлетом.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-TrustServerCertificate
Указывает, будет ли канал зашифрован при обходе цепочки сертификатов для проверки доверия.
В версии 22 модуля используется $true значение по умолчанию (для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет иметь значение "$false", которое может создать критическое изменение для существующих скриптов.
Этот параметр является новым в версии 22 модуля.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-WhatIf
Показывает, что произойдет, если командлет будет запущен. Командлет не запускается.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | wi |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
Microsoft.SqlServer.Management.Smo.Server
Экземпляр сервера можно передать этому командлету.
Выходные данные
Microsoft.SqlServer.Management.Smo.AvailabilityGroup
Этот командлет возвращает группу доступности.