Set-SqlAvailabilityReplica

Задает параметры реплики доступности.

Синтаксис

Set-SqlAvailabilityReplica
   [-AvailabilityMode <AvailabilityReplicaAvailabilityMode>]
   [-FailoverMode <AvailabilityReplicaFailoverMode>]
   [-EndpointUrl <String>]
   [-SessionTimeout <Int32>]
   [-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
   [-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
   [-SeedingMode <AvailabilityReplicaSeedingMode>]
   [-BackupPriority <Int32>]
   [-ReadOnlyRoutingList <String[]>]
   [-ReadonlyRoutingConnectionUrl <String>]
   [-LoadBalancedReadOnlyRoutingList <String[][]>]
   [[-Path] <String>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-SqlAvailabilityReplica
   [-AvailabilityMode <AvailabilityReplicaAvailabilityMode>]
   [-FailoverMode <AvailabilityReplicaFailoverMode>]
   [-EndpointUrl <String>]
   [-SessionTimeout <Int32>]
   [-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
   [-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
   [-SeedingMode <AvailabilityReplicaSeedingMode>]
   [-BackupPriority <Int32>]
   [-ReadOnlyRoutingList <String[]>]
   [-ReadonlyRoutingConnectionUrl <String>]
   [-LoadBalancedReadOnlyRoutingList <String[][]>]
   [-InputObject] <AvailabilityReplica>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-ProgressAction <ActionPreference>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Описание

Командлет Set-SqlAvailabilityReplica наборы или изменяет различные свойства для реплики доступности. Запустите этот командлет на экземпляре сервера, на котором размещена первичная реплика.

Примеры

Пример 1. Изменение режима доступности реплики и автоматической отработки отказа

PS C:\> Set-SqlAvailabilityReplica -AvailabilityMode "SynchronousCommit" -FailoverMode Automatic -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG\AvailabilityReplicas\Replica02"

Эта команда изменяет реплику с именем Replica02 в группе доступности с именем MainAG для использования режима доступности synchronous-commit и поддержки automatic failover.

Пример 2. Изменение реплики для поддержки принудительной отработки отказа вручную

PS C:\> Set-SqlAvailabilityReplica -AvailabilityMode AsynchronousCommit -FailoverMode Manual -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG\AvailabilityReplicas\Replica02"

Эта команда изменяет реплику с именем Replica02 в группе доступности с именем MainAG использовать режим доступности asynchronous-commit и поддерживать только forced manual failover, что может привести к потере данных.

Пример 3. Разрешить все подключения в вторичной роли

PS C:\> Set-SqlAvailabilityReplica -ConnectionModeInSecondaryRole AllowAllConnections -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG\AvailabilityReplicas\Replica02"

Эта команда изменяет реплику Replica02 в группе доступности MainAG, чтобы разрешить все подключения в вторичной роли. Это позволяет выгрузить рабочие нагрузки обработки данных только для чтения на вторичные реплики.

Пример 4. Настройка первичной реплики и вторичной реплики для маршрутизации на чтение

PS C:\> Set-Location "SQLSERVER:\SQL\PrimaryServer\default\AvailabilityGroups\MainAG"
PS C:\> $PrimaryReplica = Get-Item "AvailabilityReplicas\PrimaryServer"
PS C:\> $SecondaryReplica = Get-Item "AvailabilityReplicas\SecondaryServer"
PS C:\> Set-SqlAvailabilityReplica -ReadOnlyRoutingConnectionUrl "TCP://PrimaryServer.domain.com:5022" -InputObject $PrimaryReplica
PS C:\> Set-SqlAvailabilityReplica -ReadOnlyRoutingConnectionUrl "TCP://SecondaryServer.domain.com:5022" -InputObject $SecondaryReplica
PS C:\> Set-SqlAvailabilityReplica -ReadOnlyRoutingList "SecondaryServer","PrimaryServer" -InputObject $PrimaryReplica

Первая команда изменяет расположение в расположении в SQLSERVER: поставщик.

Четвертая команда назначает URL-адрес маршрутизации только для чтения первичной реплике. Затем он задает список маршрутизации только для чтения на первичной реплике.

Пример 5. Изменение приоритета резервного копирования

PS C:\> Set-SqlAvailabilityReplica -BackupPriority 60 -Path "SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MainAG\AvailabilityReplicas\Replica02"

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

Параметры

-AccessToken

Маркер доступа, используемый для проверки подлинности в SQL Server, в качестве альтернативы пользователю или паролю или проверке подлинности Windows.

Это можно использовать, например, для подключения к SQL Azure DB и SQL Azure Managed Instance с помощью Service Principal или Managed Identity.

Используемый параметр может быть строкой, представляющей маркер или объект PSAccessToken, как возвращается при выполнении Get-AzAccessToken -ResourceUrl https://database.windows.net.

Этот параметр является новым в версии 22 модуля.

Тип:PSObject
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-AvailabilityMode

Указывает режим доступности реплики.

Можно указать значение $Null.

Тип:AvailabilityReplicaAvailabilityMode
Допустимые значения:AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-BackupPriority

Указывает требуемый приоритет реплик при выполнении резервных копий. Допустимые значения для этого параметра являются целыми числами от 0 до 100. Из набора реплик, которые находятся в сети и доступны, реплика, которая имеет наивысший приоритет, выполняет резервное копирование.

Значение нуля (0) указывает, что реплика не является кандидатом.

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Confirm

Запрашивает подтверждение перед запуском командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ConnectionModeInPrimaryRole

Указывает, как реплика доступности обрабатывает подключения при первичной роли. Допустимые значения для этого параметра:

  • AllowReadWriteConnections. Разрешает подключения для чтения и записи.
  • AllowAllConnections. Разрешает все подключения.
Тип:AvailabilityReplicaConnectionModeInPrimaryRole
Допустимые значения:AllowAllConnections, AllowReadWriteConnections, Unknown
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ConnectionModeInSecondaryRole

Указывает, как реплика доступности обрабатывает подключения при выполнении вторичной роли. Допустимые значения для этого параметра:

  • AllowNoConnections. Запрещает подключения.
  • AllowReadIntentConnectionsOnly. Разрешает только подключения с намерением чтения.
  • AllowAllConnections. Разрешает все подключения.
Тип:AvailabilityReplicaConnectionModeInSecondaryRole
Допустимые значения:AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Encrypt

Тип шифрования, используемый при подключении к SQL Server.

Это значение сопоставляется со свойством EncryptSqlConnectionEncryptOption в объекте SqlConnection драйвера Microsoft.Data.SqlClient.

В версии 22 модуля по умолчанию используется Optional (для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет "Обязательный", которое может создать критическое изменение для существующих скриптов.

Этот параметр является новым в версии 22 модуля.

Тип:String
Допустимые значения:Mandatory, Optional, Strict
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-EndpointUrl

Указывает URL-адрес конечной точки зеркального отображения базы данных. Этот URL-адрес представляет собой TCP-адрес в следующей форме: TCP://system-address:port

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-FailoverMode

Указывает режим отработки отказа.

Можно указать значение $Null.

Тип:AvailabilityReplicaFailoverMode
Допустимые значения:Automatic, Manual, External, Unknown
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-HostNameInCertificate

Имя узла, используемое при проверке TLS/SSL-сертификата SQL Server. Этот параметр необходимо передать, если экземпляр SQL Server включен для принудительного шифрования и требуется подключиться к экземпляру с помощью имени узла или короткого имени. Если этот параметр опущен, передача полного доменного имени (FQDN) в -ServerInstance необходима для подключения к экземпляру SQL Server, включенного для принудительного шифрования.

Этот параметр является новым в версии 22 модуля.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InputObject

Указывает группу доступности в качестве объекта AvailabilityGroup, к которому принадлежит реплика.

Тип:AvailabilityReplica
Position:1
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-LoadBalancedReadOnlyRoutingList

Задает список маршрутизации только для чтения с балансировкой нагрузки.

Список маршрутизации — это список наборов балансировки нагрузки, которые, в свою очередь, являются списками реплик.

Например, передача значения, например

@('Server1','Server2'),@('Server3'),@('Server4')

означает, что мы передаваем 3 наборов балансировки нагрузки: 1 с 2 репликами (Server1 и Server2) и 2 с только одним (Server3 и Server4 соответственно).

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

Таким образом, в приведенном выше примере, если сервер1 и Server2 недоступны, но сервер 3 — sql Server будет выбирать Server3.

Этот командлет задает только список маршрутизации только для чтения и не проверяет доступность указанных реплик.

Тип:String[][]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Path

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

Тип:String
Position:1
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ProgressAction

Определяет, как PowerShell реагирует на обновления хода выполнения, созданные скриптом, командлетом или поставщиком, например индикаторами хода выполнения, созданными командлетом Write-Progress. Командлет Write-Progress создает индикаторы хода выполнения, показывающие состояние команды.

Тип:ActionPreference
Aliases:proga
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ReadonlyRoutingConnectionUrl

Указывает полное доменное имя (FQDN) и порт, используемый при маршрутизации в реплику для подключений только для чтения, как показано в следующем примере: TCP://DBSERVER8.manufacturing.Contoso.com:7024

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ReadOnlyRoutingList

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

Тип:String[]
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Script

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

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SeedingMode

Указывает, как начальная реплика вторичной реплики будет заполняться.

Допустимые значения:

  • Автоматически. Включает прямое сеяние. Этот метод будет заполнять вторичную реплику по сети. Этот метод не требует резервного копирования и восстановления копии базы данных-источника на реплике.
  • Вручную. Указывает начальное значение вручную. Для этого метода необходимо создать резервную копию базы данных на первичной реплике и вручную восстановить резервную копию на вторичной реплике.
Тип:AvailabilityReplicaSeedingMode
Допустимые значения:Automatic, Manual
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-SessionTimeout

Указывает время ожидания ответа между первичной репликой и этой репликой до сбоя подключения.

Тип:Int32
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-TrustServerCertificate

Указывает, будет ли канал зашифрован при обходе цепочки сертификатов для проверки доверия.

В версии 22 модуля по умолчанию используется $true (для совместимости с версией 21). В версии 23+ модуля значение по умолчанию будет иметь значение "$false", которое может создать критическое изменение для существующих скриптов.

Этот параметр является новым в версии 22 модуля.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет, если командлет выполняется. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

Microsoft.SqlServer.Management.Smo.AvailabilityReplica