Compartilhar via


Switch-SqlAvailabilityGroup

Inicia um failover de um grupo de disponibilidade para uma réplica secundária.

Sintaxe

Switch-SqlAvailabilityGroup
      [-AllowDataLoss]
      [-Force]
      [[-Path] <String[]>]
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [-ProgressAction <ActionPreference>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Switch-SqlAvailabilityGroup
      [-AllowDataLoss]
      [-Force]
      [-InputObject] <AvailabilityGroup[]>
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [-ProgressAction <ActionPreference>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

O cmdlet Switch-SqlAvailabilityGroup inicia um failover de um grupo de disponibilidade para uma réplica secundária especificada. Execute este cmdlet na réplica secundária de destino. Após o failover, a réplica secundária se torna a réplica primária.

Exemplos

Exemplo 1: fazer failover de um grupo de disponibilidade

PS C:\> Switch-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MainAG"

Esse comando executa um failover manual do grupo de disponibilidade MainAG para a instância do servidor chamada SecondaryServer\InstanceName. Esse comando não permite a perda de dados. Execute este comando na instância do servidor que hospeda a réplica secundária para a qual fazer failover.

Exemplo 2: Forçar o failover de um grupo de disponibilidade

PS C:\> Switch-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -AllowDataLoss

Esse comando executa um failover manual do grupo de disponibilidade MainAG para a instância do servidor chamada SecondaryServer\InstanceName. O comando especifica o parâmetro AllowDataLoss. Portanto, o failover tem o potencial de perda de dados e o comando solicita confirmação. Especifique o parâmetro Force para ignorar a confirmação.

Exemplo 3: Criar um script para fazer failover de um grupo de disponibilidade

PS C:\> Switch-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -Script

Esse comando cria um script Transact-SQL que executa um failover manual do grupo de disponibilidade MainAG para a instância do servidor chamada SecondaryServer\InstanceName. O script não permite a perda de dados. O comando não causa failover.

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 a SQL Azure DB e SQL Azure Managed Instance usando 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 objeto PSAccessToken conforme retornado executando Get-AzAccessToken -ResourceUrl https://database.windows.net.

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

Tipo:PSObject
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-AllowDataLoss

Indica que esse cmdlet inicia um failover forçado para a réplica secundária de destino. A perda de dados é possível. A menos que você especifique o parâmetro de Script do Force ou , o cmdlet solicitará a confirmação.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Confirm

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

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Encrypt

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

Esse valor é mapeado para a propriedade EncryptSqlConnectionEncryptOption 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.

Tipo:String
Valores aceitos:Mandatory, Optional, Strict
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Force

Força o comando a ser executado sem solicitar a confirmação do usuário. Esse cmdlet solicitará confirmação somente se você especificar o parâmetro AllowDataLoss .

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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.

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

Especifica o grupo de disponibilidade que esse cmdlet faz failover.

Tipo:AvailabilityGroup[]
Cargo:1
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Path

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

Tipo:String[]
Cargo:1
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ProgressAction

Determina como o PowerShell responde às atualizações de progresso geradas por um script, cmdlet ou provedor, como as barras de progresso geradas pelo cmdlet Write-Progress. O cmdlet Write-Progress cria barras de progresso que mostram o status de um comando.

Tipo:ActionPreference
Aliases:proga
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Script

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

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga: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.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-WhatIf

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

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:False
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]

Você pode passar um grupo de disponibilidade para este cmdlet.