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

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 la 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 l'uso asynchronous-commit della modalità di disponibilità e per supportare solo forced manual failover, che potrebbe comportare 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 la replica Replica02 nel gruppo MainAG di disponibilità 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 modifica la posizione in un percorso nel provider SQLSERVER: .

Il quarto comando assegna un URL di routing di sola lettura alla replica primaria. L'elenco di routing di sola lettura viene quindi impostato sulla 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 Replica02 di disponibilità 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 per SQL Server, in 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 oggetto o .Managed Identity

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

Questo parametro è nuovo nella versione 22 del modulo.

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

-AvailabilityMode

Specifica la modalità di disponibilità della replica.

È possibile specificare il valore $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

Specifica la priorità desiderata delle repliche durante l'esecuzione di 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.

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

-Confirm

Richiede la conferma dell'utente prima di eseguire il cmdlet.

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

-ConnectionModeInPrimaryRole

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

  • AllowReadWriteConnections. Consente connessioni di lettura/scrittura.
  • AllowAllConnections. Consente tutte le connessioni.
Type:AvailabilityReplicaConnectionModeInPrimaryRole
Accepted values:AllowAllConnections, AllowReadWriteConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionModeInSecondaryRole

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

  • AllowNoConnections. Impedisce le connessioni.
  • AllowReadIntentConnectionsOnly. Consente solo connessioni con finalità di lettura.
  • AllowAllConnections. Consente tutte le connessioni.
Type:AvailabilityReplicaConnectionModeInSecondaryRole
Accepted values:AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

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

Questo valore esegue il Encrypt mapping alla proprietà SqlConnectionEncryptOption nell'oggetto SqlConnection del driver Microsoft.Data.SqlClient.

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

Questo parametro è nuovo nella versione 22 del modulo.

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

-EndpointUrl

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

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

-FailoverMode

Specifica la modalità di failover.

È possibile specificare il valore $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

Nome host da usare per la convalida del 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.

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

-InputObject

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

Type:AvailabilityReplica
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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')

significa il passaggio di 3 set con carico bilanciato: 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 carico bilanciato fino a quando non ne trova uno in modo che almeno nella replica sia disponibile e lo usi per il bilanciamento del carico.

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.

Type:String[][]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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à.

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

-Script

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

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

-SeedingMode

Specifica in che modo viene eseguito il seeding iniziale della replica secondaria.

Valori consentiti:

  • Automatico. Abilita il seeding diretto. Questo metodo esegue il seeding della replica secondaria in rete. Non richiede l'esecuzione del 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.
Type:AvailabilityReplicaSeedingMode
Accepted values:Automatic, Manual
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionTimeout

Specifica il periodo di tempo, espresso in secondi, per attendere una risposta tra la replica primaria e la replica prima che la connessione non riesca.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 la versione 21). Nella versione 23+ del modulo il valore predefinito sarà "$false", che può creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

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

-WhatIf

Mostra l'esito in caso di esecuzione del cmdlet. Il cmdlet non viene eseguito.

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

Input

Microsoft.SqlServer.Management.Smo.AvailabilityReplica