Set-SqlAvailabilityReplica

Define as configurações em um réplica de disponibilidade.

Syntax

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>]

Description

O cmdlet Set-SqlAvailabilityReplica define ou modifica uma variedade de propriedades para uma réplica de disponibilidade. Execute esse cmdlet na instância do servidor que hospeda o réplica primário.

Exemplos

Exemplo 1: Modificar um modo de disponibilidade réplica e failover automático

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

Esse comando modifica o réplica nomeado Replica02 no grupo de disponibilidade chamado MainAG para usar synchronous-commit o modo de disponibilidade e para dar suporte automatic failovera .

Exemplo 2: Modificar um réplica para dar suporte ao failover manual forçado

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

Esse comando modifica o réplica nomeado Replica02 no grupo de disponibilidade chamado MainAG para usar asynchronous-commit o modo de disponibilidade e para dar suporte apenas forced manual failovera , o que poderia incorrer em perda de dados.

Exemplo 3: Permitir todas as conexões na função secundária

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

Esse comando modifica o réplica Replica02 no grupo MainAG de disponibilidade para permitir todas as conexões na função secundária. Isso permite descarregar cargas de trabalho de processamento de dados somente leitura para réplicas secundárias.

Exemplo 4: Configurar um réplica primário e um réplica secundário para roteamento somente leitura

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

O primeiro comando altera o local para um local no provedor SQLSERVER: .

O quarto comando atribui uma URL de roteamento somente leitura à réplica primária. Em seguida, ele define a lista de roteamento somente leitura na réplica primária.

Exemplo 5: Modificar prioridade de backup

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

Esse comando define a prioridade de backup do réplica Replica02 de disponibilidade como 60. Essa prioridade é usada pela instância de servidor que hospeda a réplica primária para decidir qual réplica deve atender a uma solicitação de backup automatizado em um banco de dados no grupo de disponibilidade. O réplica que tem a prioridade mais alta é escolhido.

Parâmetros

-AccessToken

O token de acesso usado para autenticar para SQL Server, como uma alternativa ao usuário/senha ou à Autenticação do Windows.

Isso pode ser usado, por exemplo, para se conectar SQL Azure DB e SQL Azure Managed Instance usar um Service Principal ou um Managed Identity.

O parâmetro a ser usado pode ser uma cadeia de caracteres que representa o token ou um PSAccessToken objeto conforme retornado executando Get-AzAccessToken -ResourceUrl https://database.windows.net.

Esse parâmetro é novo na v22 do módulo.

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

-AvailabilityMode

Especifica o modo de disponibilidade réplica.

Você pode especificar um valor de $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

Especifica a prioridade desejada das réplicas na execução de backups. Os valores aceitáveis para esse parâmetro são inteiros de 0 a 100. Do conjunto de réplicas que estão online e disponíveis, o réplica que tem a prioridade mais alta executa o backup.

Um valor zero (0) indica que o réplica não é um candidato.

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

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

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

-ConnectionModeInPrimaryRole

Especifica como o réplica de disponibilidade lida com conexões quando na função primária. Os valores aceitáveis para esse parâmetro são:

  • AllowReadWriteConnections. Permite conexões de leitura/gravação.
  • AllowAllConnections. Permite todas as conexões.
Type:AvailabilityReplicaConnectionModeInPrimaryRole
Accepted values:AllowAllConnections, AllowReadWriteConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionModeInSecondaryRole

Especifica como o réplica de disponibilidade lida com conexões quando na função secundária. Os valores aceitáveis para esse parâmetro são:

  • AllowNoConnections. Não permite conexões.
  • AllowReadIntentConnectionsOnly. Permite apenas conexões de intenção de leitura.
  • AllowAllConnections. Permite todas as conexões.
Type:AvailabilityReplicaConnectionModeInSecondaryRole
Accepted values:AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

O tipo de criptografia a ser usado ao se conectar a SQL Server.

Esse valor é mapeado para a Encrypt propriedade SqlConnectionEncryptOption no objeto SqlConnection do driver Microsoft.Data.SqlClient.

Na v22 do módulo, o padrão é Optional (para compatibilidade com v21). Na v23+ do módulo, o valor padrão será 'Obrigatório', o que pode criar uma alteração interruptiva para scripts existentes.

Esse parâmetro é novo na v22 do módulo.

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

-EndpointUrl

Especifica a URL do ponto de extremidade de espelhamento de banco de dados. Essa URL é um endereço TCP no seguinte formulário: TCP://system-address:port

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

-FailoverMode

Especifica o modo de failover.

Você pode especificar um valor de $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

O nome do host a ser usado na validação do certificado TLS/SSL do SQL Server. Você deve passar esse parâmetro se sua instância de SQL Server estiver habilitada para o Force Encryption e quiser se conectar a uma instância usando nome de host/nome curto. Se esse parâmetro for omitido, passar o FQDN (Nome de Domínio Totalmente Qualificado) para -ServerInstance será necessário para se conectar a uma instância de SQL Server habilitada para o Force Encryption.

Esse parâmetro é novo na v22 do módulo.

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

-InputObject

Especifica o grupo de disponibilidade, como um objeto AvailabilityGroup, ao qual o réplica pertence.

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

-LoadBalancedReadOnlyRoutingList

Especifica a lista de roteamento somente leitura com balanceamento de carga.

A lista de roteamento é uma lista de conjuntos com balanceamento de carga, que, por sua vez, são listas de réplicas.

Por exemplo, passar um valor como

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

significa o que estamos passando em três conjuntos com balanceamento de carga: 1 com 2 réplicas (Server1 e Server2) e 2 com apenas um (Server3 e Server4, respectivamente).

Em runtime, SQL Server olhará sequencialmente em todos os conjuntos com balanceamento de carga até encontrar um de modo que pelo menos em réplica nele esteja disponível e use-o para balanceamento de carga.

Portanto, no exemplo acima, se Server1 e Server2 não estiverem disponíveis, mas Server3 estiver, SQL Server escolherá Server3.

Esse cmdlet define apenas a lista de roteamento somente leitura e não marcar na disponibilidade das réplicas especificadas.

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

-Path

Especifica o caminho do grupo de disponibilidade ao qual o réplica pertence. Se você não especificar esse parâmetro, esse cmdlet usará o local de trabalho atual.

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

-ReadonlyRoutingConnectionUrl

Especifica o FQDN (nome de domínio totalmente qualificado) e a porta a serem usadas ao rotear para o réplica para conexões somente leitura, como no exemplo a seguir:TCP://DBSERVER8.manufacturing.Contoso.com:7024

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

-ReadOnlyRoutingList

Especifica uma lista ordenada de nomes de servidor réplica que representam a sequência de investigação para o diretor de conexão usar ao redirecionar conexões somente leitura por meio desse réplica de disponibilidade. Esse parâmetro se aplicará se o réplica de disponibilidade for o réplica primário atual do grupo de disponibilidade.

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

-Script

Indica que esse cmdlet retorna um script Transact-SQL que executa a tarefa que esse cmdlet executa.

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

-SeedingMode

Especifica como a réplica secundária será propagada inicialmente.

Valores permitidos:

  • Automático. Habilita a propagação direta. Esse método propagará a réplica secundária na rede. Esse método não exige que você faça backup e restauração de uma cópia do banco de dados primário na réplica.
  • Manual. Especifica a propagação manual. Esse método requer que você crie um backup do banco de dados na réplica primária e restaure manualmente esse backup na réplica secundária.
Type:AvailabilityReplicaSeedingMode
Accepted values:Automatic, Manual
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionTimeout

Especifica a quantidade de tempo, em segundos, para aguardar uma resposta entre o réplica primário e esse réplica antes que a conexão falhe.

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

-TrustServerCertificate

Indica se o canal será criptografado ao ignorar a cadeia de certificados para validar a confiança.

Na v22 do módulo, o padrão é $true (para compatibilidade com v21). Na v23+ do módulo, o valor padrão será '$false', o que pode criar uma alteração interruptiva para scripts existentes.

Esse parâmetro é novo na v22 do módulo.

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

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

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

Entradas

Microsoft.SqlServer.Management.Smo.AvailabilityReplica