Condividi tramite


Set-SqlAvailabilityReplica

Imposta le impostazioni in una replica di disponibilità.

Sintassi

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

Descrizione

Il cmdlet Set-SqlAvailabilityReplica imposta o modifica un'ampia gamma di proprietà per una replica di disponibilità. Eseguire questo cmdlet nell'istanza del server che ospita la replica primaria.

Esempio

Esempio 1: Modificare una modalità di disponibilità della replica e il failover automatico

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

Questo comando modifica la replica denominata Replica02 nel gruppo di disponibilità denominato MainAG per usare synchronous-commit modalità di disponibilità e per supportare automatic failover.

Esempio 2: Modificare una replica per supportare il failover manuale forzato

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

Questo comando modifica la replica denominata Replica02 nel gruppo di disponibilità denominato MainAG per usare asynchronous-commit modalità di disponibilità e per supportare solo forced manual failover, che potrebbe causare la perdita di dati.

Esempio 3: Consentire tutte le connessioni nel ruolo secondario

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

Questo comando modifica il Replica02 di replica nel gruppo di disponibilità MainAG per consentire tutte le connessioni nel ruolo secondario. In questo modo è possibile eseguire l'offload dei carichi di lavoro di elaborazione dei dati di sola lettura nelle repliche secondarie.

Esempio 4: Configurare una replica primaria e una replica secondaria per il routing readonly

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

Il primo comando cambia posizione in un percorso nel provider SQLSERVER: .

Il quarto comando assegna un URL di routing di sola lettura alla replica primaria. Imposta quindi l'elenco di routing di sola lettura nella replica primaria.

Esempio 5: Modificare la priorità di backup

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

Questo comando imposta la priorità di backup della replica di disponibilità Replica02 su 60. Questa priorità viene usata dall'istanza del server che ospita la replica primaria per decidere quale replica deve gestire una richiesta di backup automatizzata in un database nel gruppo di disponibilità. Viene scelta la replica con la priorità più alta.

Parametri

-AccessToken

Token di accesso usato per eseguire l'autenticazione a SQL Server, come alternativa all'autenticazione utente/password o windows.

Può essere usato, ad esempio, per connettersi a SQL Azure DB e SQL Azure Managed Instance usando un Service Principal o un Managed Identity.

Il parametro da usare può essere una stringa che rappresenta il token o un oggetto PSAccessToken restituito eseguendo Get-AzAccessToken -ResourceUrl https://database.windows.net.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:PSObject
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-AvailabilityMode

Specifica la modalità di disponibilità della replica.

È possibile specificare un valore di $Null.

Tipo:AvailabilityReplicaAvailabilityMode
Valori accettati:AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-BackupPriority

Specifica la priorità desiderata delle repliche nell'esecuzione dei backup. I valori accettabili per questo parametro sono numeri interi compresi tra 0 e 100. Del set di repliche online e disponibili, la replica con la priorità più alta esegue il backup.

Un valore pari a zero (0) indica che la replica non è un candidato.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ConnectionModeInPrimaryRole

Specifica il modo in cui la replica di disponibilità gestisce le connessioni quando si trova nel ruolo primario. I valori accettabili per questo parametro sono:

  • AllowReadWriteConnections. Consente connessioni di lettura/scrittura.
  • AllowAllConnections. Consente tutte le connessioni.
Tipo:AvailabilityReplicaConnectionModeInPrimaryRole
Valori accettati:AllowAllConnections, AllowReadWriteConnections, Unknown
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ConnectionModeInSecondaryRole

Specifica il modo in cui la replica di disponibilità gestisce le connessioni quando nel ruolo secondario. I valori accettabili per questo parametro sono:

  • AllowNoConnections. Impedisce le connessioni.
  • AllowReadIntentConnectionsOnly. Consente solo connessioni con finalità di lettura.
  • AllowAllConnections. Consente tutte le connessioni.
Tipo:AvailabilityReplicaConnectionModeInSecondaryRole
Valori accettati:AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Encrypt

Tipo di crittografia da usare per la connessione a SQL Server.

Questo valore esegue il mapping alla proprietà EncryptSqlConnectionEncryptOption sull'oggetto SqlConnection del driver Microsoft.Data.SqlClient.

Nella versione 22 del modulo, il valore predefinito è Optional (per compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "Obbligatorio", che potrebbe creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:String
Valori accettati:Mandatory, Optional, Strict
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-EndpointUrl

Specifica l'URL dell'endpoint del mirroring del database. Questo URL è un indirizzo TCP nel formato seguente: TCP://system-address:port

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-FailoverMode

Specifica la modalità di failover.

È possibile specificare un valore di $Null.

Tipo:AvailabilityReplicaFailoverMode
Valori accettati:Automatic, Manual, External, Unknown
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-HostNameInCertificate

Nome host da usare per convalidare il certificato TLS/SSL di SQL Server. È necessario passare questo parametro se l'istanza di SQL Server è abilitata per Forza crittografia e si vuole connettersi a un'istanza usando nome host/nome breve. Se questo parametro viene omesso, è necessario passare il nome di dominio completo (FQDN) a -ServerInstance per connettersi a un'istanza di SQL Server abilitata per Forza crittografia.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-InputObject

Specifica il gruppo di disponibilità, come oggetto AvailabilityGroup, a cui appartiene la replica.

Tipo:AvailabilityReplica
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-LoadBalancedReadOnlyRoutingList

Specifica l'elenco di routing di sola lettura con carico bilanciato.

L'elenco di routing è un elenco di set con carico bilanciato, che a sua volta sono elenchi di repliche.

Ad esempio, passando un valore come

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

indica il passaggio di 3 set con bilanciamento del carico: 1 con 2 repliche (Server1 e Server2) e 2 con un solo set (Server3 e Server4, rispettivamente).

In fase di esecuzione, SQL Server esaminerà in sequenza tutti i set con bilanciamento del carico finché non ne trova uno in modo che almeno nella replica sia disponibile e lo userà per il bilanciamento del carico.

Quindi, nell'esempio precedente, se server1 e Server2 non sono disponibili, ma Server3 è, SQL Server selezionerà Server3.

Questo cmdlet imposta solo l'elenco di routing di sola lettura e non verifica la disponibilità delle repliche specificate.

Tipo:String[][]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Path

Specifica il percorso del gruppo di disponibilità a cui appartiene la replica. Se non si specifica questo parametro, questo cmdlet usa la posizione di lavoro corrente.

Tipo:String
Posizione:1
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ProgressAction

Determina in che modo PowerShell risponde agli aggiornamenti dello stato generati da uno script, un cmdlet o un provider, ad esempio le barre di stato generate dal cmdlet Write-Progress. Il cmdlet Write-Progress crea barre di stato che mostrano lo stato di un comando.

Tipo:ActionPreference
Alias:proga
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ReadonlyRoutingConnectionUrl

Specifica il nome di dominio completo (FQDN) e la porta da usare durante il routing alla replica per le connessioni di sola lettura, come nell'esempio seguente: TCP://DBSERVER8.manufacturing.Contoso.com:7024

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ReadOnlyRoutingList

Specifica un elenco ordinato di nomi di server di replica che rappresentano la sequenza di probe da usare per la directory di connessione durante il reindirizzamento delle connessioni di sola lettura tramite questa replica di disponibilità. Questo parametro si applica se la replica di disponibilità è la replica primaria corrente del gruppo di disponibilità.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Script

Indica che questo cmdlet restituisce un Transact-SQL script che esegue l'attività eseguita da questo cmdlet.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SeedingMode

Specifica come verrà inizialmente eseguito il seeding della replica secondaria.

Valori consentiti:

  • Automatico. Abilita il seeding diretto. Questo metodo eseguirà il seeding della replica secondaria in rete. Questo metodo non richiede il backup e il ripristino di una copia del database primario nella replica.
  • Manuale. Specifica il seeding manuale. Questo metodo richiede la creazione di un backup del database nella replica primaria e il ripristino manuale del backup nella replica secondaria.
Tipo:AvailabilityReplicaSeedingMode
Valori accettati:Automatic, Manual
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SessionTimeout

Specifica la quantità di tempo, espressa in secondi, per attendere una risposta tra la replica primaria e la replica prima che la connessione non riesca.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-TrustServerCertificate

Indica se il canale verrà crittografato durante il bypass della catena di certificati per convalidare l'attendibilità.

Nella versione 22 del modulo, il valore predefinito è $true (per compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "$false", che potrebbe creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-WhatIf

Mostra cosa accadrebbe se il cmdlet viene eseguito. Il cmdlet non viene eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

Microsoft.SqlServer.Management.Smo.AvailabilityReplica