Compartilhar via


Set-SqlAvailabilityGroup

Define as configurações em um grupo de disponibilidade.

Sintaxe

ByPath (Padrão)

Set-SqlAvailabilityGroup
    [[-Path] <String>]
    [-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
    [-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
    [-HealthCheckTimeout <Int32>]
    [-DatabaseHealthTrigger <Boolean>]
    [-RequiredSynchronizedSecondariesToCommit <Int32>]
    [-Script]
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-HostNameInCertificate <String>]
    [-Encrypt <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByObject

Set-SqlAvailabilityGroup
    [-InputObject] <AvailabilityGroup>
    [-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
    [-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
    [-HealthCheckTimeout <Int32>]
    [-DatabaseHealthTrigger <Boolean>]
    [-RequiredSynchronizedSecondariesToCommit <Int32>]
    [-Script]
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-HostNameInCertificate <String>]
    [-Encrypt <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

O cmdlet Set-SqlAvailabilityGroup modifica as configurações em um grupo de disponibilidade existente em Grupos de Disponibilidade AlwaysOn. Você pode modificar a preferência de backup automatizado, o nível de condição de falha e o tempo limite de verificação de integridade. Você deve executar esse cmdlet na instância do servidor que hospeda a réplica primária.

Exemplos

Exemplo 1: alterar o período de tempo limite de verificação de integridade

PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MAinAG" -HealthCheckTimeout 120000

Esse comando altera a propriedade de tempo limite de verificação de integridade no grupo de disponibilidade nomeado MainAG para 120 segundos ou dois minutos. Se o failover automático estiver habilitado, após esse período de tempo, os Grupos de Disponibilidade AlwaysOn iniciarão um failover automático.

Exemplo 2: alterar a preferência de backup automatizado

PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -AutomatedBackupPreference SecondaryOnly

Esse comando altera a preferência de backup automatizado no grupo de disponibilidade nomeado MainAG para ser SecondaryOnly. Backups automatizados de bancos de dados neste grupo de disponibilidade não ocorrem na réplica primária. Em vez disso, os backups automatizados ocorrem na réplica secundária que tem a prioridade de backup mais alta.

Exemplo 3: alterar o nível de condição de falha

PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -FailureConditionLevel OnServerDown

Esse comando altera o nível de condição de falha no grupo de disponibilidade nomeado MainAG para ser OnServerDown. Se a instância do servidor que hospeda a réplica primária ficar offline e se o failover automático estiver habilitado, os Grupos de Disponibilidade AlwaysOn iniciarão um failover automático.

Exemplo 4: alterar o número de secundários 'SYNCHRONOUS_COMMIT' que devem estar disponíveis para que as transações sejam confirmadas no primário

# Get server and AG
PS C:\> CD 'SQLSERVER:\SQL\some-hostname\Default'
PS SQLSERVER:\SQL\some-hostname\Default> $server = Get-Item $PWD
PS SQLSERVER:\SQL\some-hostname\Default> $ag = $server.AvailabilityGroups[0]
# Alter AG with RequiredCopiesToCommit = 4
PS SQLSERVER:\SQL\some-hostname\Default> $ag | Set-SqlAvailabilityGroup -RequiredSynchronizedSecondariesToCommit 4

Note: an exception will be thrown if the -RequiredSynchronizedSecondariesToCommit parameter is used when
the target server version is SQL Server 2016 or lower.

Parâmetros

-AccessToken

O token de acesso usado para autenticar no 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.

Propriedades do parâmetro

Tipo:PSObject
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-AutomatedBackupPreference

Especifica a preferência de backup automatizado para o grupo de disponibilidade. Os valores aceitáveis para este parâmetro são:

  • Primário. Especifica que os backups sempre ocorrem na réplica primária. Essa opção dá suporte ao uso de recursos não disponíveis quando o backup é executado em uma réplica secundária, como backups diferenciais.
  • SecondaryOnly. Especifica que os backups nunca são executados em réplicas primárias. Se a réplica primária for a única réplica online, o backup não ocorrerá.
  • Secundário. Especifica que os backups ocorrem em réplicas secundárias, a menos que a réplica primária seja a única réplica online. Em seguida, o backup ocorre na réplica primária.
  • Nenhum. Especifica que o status primário ou secundário não é levado em conta ao decidir qual réplica executa backups. Em vez disso, a prioridade de backup e o status online determinam qual réplica executa backups.

Propriedades do parâmetro

Tipo:AvailabilityGroupAutomatedBackupPreference
Valor padrão:None
Valores aceitos:Primary, SecondaryOnly, Secondary, None, Unknown
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Confirm

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:cf

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-DatabaseHealthTrigger

Especifica se um failover automático do grupo de disponibilidade deve ser disparado se qualquer réplica de banco de dados de usuário em um grupo de disponibilidade encontrar uma condição de falha de banco de dados.

Propriedades do parâmetro

Tipo:Boolean
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Encrypt

O tipo de criptografia a ser usado ao se conectar ao 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 significativa para scripts existentes.

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

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Valores aceitos:Mandatory, Optional, Strict
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-FailureConditionLevel

Especifica o comportamento de failover automático do grupo de disponibilidade. Os valores aceitáveis para este parâmetro são:

  • OnServerDown. Failover ou reinicialização se o serviço do SQL Server for interrompido.
  • OnServerUnresponsive. Failover ou reinicialização se qualquer condição de valor inferior for atendida, além de quando o serviço do SQL Server estiver conectado ao cluster e o limite HealthCheckTimeout for excedido ou se a réplica de disponibilidade atualmente na função primária estiver em um estado de falha.
  • OnCriticalServerError. Failover ou reinicialização se qualquer condição de valor inferior for atendida, além de quando ocorrer um erro de servidor crítico interno, que incluem condição de memória insuficiente, violação grave de acesso de gravação ou muito despejo.
  • OnModerateServerError. Failover ou reinicialização se qualquer condição de valor inferior for atendida, além disso, se ocorrer um erro moderado do servidor, isso inclui a condição persistente fora da memória.
  • OnAnyQualifiedFailureConditions. Failover ou reinicialização se qualquer condição de valor inferior for atendida, além disso, se ocorrer uma condição de falha qualificada, que inclui esgotamento de thread de trabalho do mecanismo e deadlock insolúvel detectado.

Propriedades do parâmetro

Tipo:AvailabilityGroupFailureConditionLevel
Valor padrão:None
Valores aceitos:OnServerDown, OnServerUnresponsive, OnCriticalServerErrors, OnModerateServerErrors, OnAnyQualifiedFailureCondition, Unknown
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-HealthCheckTimeout

Especifica o período de tempo, em milissegundos, após o qual os Grupos de Disponibilidade AlwaysOn declaram que um servidor sem resposta não está íntegro.

Propriedades do parâmetro

Tipo:Int32
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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 a instância do 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 do SQL Server habilitada para o Force Encryption.

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

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-InputObject

Especifica o grupo de disponibilidade, como um objeto AvailabilityGroup, que esse cmdlet modifica.

Propriedades do parâmetro

Tipo:AvailabilityGroup
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

ByObject
Cargo:1
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Path

Especifica o caminho do banco de dados de disponibilidade que o cmdlet modifica. Se você não especificar esse parâmetro, esse cmdlet usará o local de trabalho atual.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

ByPath
Cargo:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-RequiredSynchronizedSecondariesToCommit

O número de secundários de confirmação síncrona que devem estar disponíveis para serem confirmados no primário.

Se um SYNCHRONOUS_COMMIT secundário for desconectado do primário por algum tempo, o primário o rebaixará para ASYNCHRONOUS_COMMIT evitar o bloqueio de confirmações. Se o primário ficar indisponível e o usuário desejar fazer failover para um desses secundários, ele poderá incorrer em perda de dados. Ao definir RequiredSynchronizedSecondariesToCommit como algum número, o usuário poderá evitar a perda de dados, pois o primário começará a bloquear confirmações se muitos secundários forem rebaixados para ASYNCHRONOUS_COMMIT.

O valor padrão dessa configuração é 0, o que significa que o primário nunca bloqueará confirmações. Isso é idêntico ao comportamento anterior ao SQL Server 2017.

Propriedades do parâmetro

Tipo:Int32
Valor padrão:0
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Script

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes: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 significativa para scripts existentes.

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-WhatIf

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

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:wi

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

Microsoft.SqlServer.Management.Smo.AvailabilityGroup