Поделиться через


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

Этот командлет возвращает группу доступности.