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>]
   [-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>]
   [-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 модуля.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AvailabilityMode

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

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

Type:AvailabilityReplicaAvailabilityMode
Accepted values:AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BackupPriority

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

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

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

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionModeInPrimaryRole

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

  • AllowReadWriteConnections. Разрешает подключения для чтения и записи.
  • AllowAllConnections. Разрешает все подключения.
Type:AvailabilityReplicaConnectionModeInPrimaryRole
Accepted values:AllowAllConnections, AllowReadWriteConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionModeInSecondaryRole

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

  • AllowNoConnections. Запрещает подключения.
  • AllowReadIntentConnectionsOnly. Разрешает только подключения с намерением чтения.
  • AllowAllConnections. Разрешает все подключения.
Type:AvailabilityReplicaConnectionModeInSecondaryRole
Accepted values:AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

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

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

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

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

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EndpointUrl

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FailoverMode

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

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

Type:AvailabilityReplicaFailoverMode
Accepted values:Automatic, Manual, External, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

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

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

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

Type:AvailabilityReplica
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LoadBalancedReadOnlyRoutingList

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

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

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

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

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

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

Таким образом, в приведенном выше примере, если серверы Server1 и Server2 недоступны, а server3 — , SQL Server выберет Server3.

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

Type:String[][]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

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

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReadonlyRoutingConnectionUrl

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReadOnlyRoutingList

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SeedingMode

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

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

  • Автоматический. Включает прямое первоначальное заполнение. Этот метод будет заполнять вторичную реплику начальными значениями по сети. Этот метод не требует резервного копирования и восстановления копии базы данных-источника в реплике.
  • Вручную. Задает присвоение начальных значений вручную. В этом методе вы создаете резервную копию базы данных на первичной реплике и вручную восстанавливаете эту резервную копию на вторичной реплике.
Type:AvailabilityReplicaSeedingMode
Accepted values:Automatic, Manual
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionTimeout

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

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

Microsoft.SqlServer.Management.Smo.AvailabilityReplica