Set-SqlAvailabilityGroup
Imposta le impostazioni in un gruppo di disponibilità.
Sintassi
Set-SqlAvailabilityGroup
[-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
[-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
[-HealthCheckTimeout <Int32>]
[-DatabaseHealthTrigger <Boolean>]
[-RequiredSynchronizedSecondariesToCommit <Int32>]
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-SqlAvailabilityGroup
[-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
[-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
[-HealthCheckTimeout <Int32>]
[-DatabaseHealthTrigger <Boolean>]
[-RequiredSynchronizedSecondariesToCommit <Int32>]
[-InputObject] <AvailabilityGroup>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il cmdlet Set-SqlAvailabilityGroup modifica le impostazioni in un gruppo di disponibilità esistente in Gruppi di disponibilità AlwaysOn. È possibile modificare le preferenze di backup automatizzate, il livello di condizione di errore e il timeout del controllo integrità. È necessario eseguire questo cmdlet nell'istanza del server che ospita la replica primaria.
Esempio
Esempio 1: Modificare il periodo di timeout del controllo integrità
PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MAinAG" -HealthCheckTimeout 120000
Questo comando modifica la proprietà timeout del controllo integrità nel gruppo di disponibilità denominato MainAG
in 120
secondi o due minuti.
Se il failover automatico è abilitato, dopo questo periodo di tempo, i gruppi di disponibilità AlwaysOn avviano un failover automatico.
Esempio 2: Modificare le preferenze di backup automatizzate
PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -AutomatedBackupPreference SecondaryOnly
Questo comando modifica la preferenza di backup automatizzata nel gruppo di disponibilità denominato MainAG
in modo che sia SecondaryOnly
.
I backup automatici dei database in questo gruppo di disponibilità non vengono eseguiti nella replica primaria.
I backup automatizzati vengono invece eseguiti nella replica secondaria con la priorità di backup più alta.
Esempio 3: Modificare il livello di condizione di errore
PS C:\> Set-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -FailureConditionLevel OnServerDown
Questo comando modifica il livello di condizione di errore nel gruppo di disponibilità denominato MainAG
in modo che sia OnServerDown
.
Se l'istanza del server che ospita la replica primaria diventa offline e, se il failover automatico è abilitato, i gruppi di disponibilità AlwaysOn avviano un failover automatico.
Esempio 4: Modificare il numero di database secondari 'SYNCHRONOUS_COMMIT' che devono essere disponibili per il commit delle transazioni nel database primario
# 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.
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 |
-AutomatedBackupPreference
Specifica la preferenza di backup automatizzata per il gruppo di disponibilità. I valori accettabili per questo parametro sono:
- Primario. Specifica che i backup vengono sempre eseguiti nella replica primaria. Questa opzione supporta l'uso di funzionalità non disponibili durante l'esecuzione del backup in una replica secondaria, ad esempio backup differenziali.
- SecondaryOnly. Specifica che i backup non vengono mai eseguiti nelle repliche primarie. Se la replica primaria è l'unica replica online, il backup non viene eseguito.
- Secondario. Specifica che i backup vengono eseguiti nelle repliche secondarie, a meno che la replica primaria non sia l'unica replica online. Il backup viene quindi eseguito nella replica primaria.
- Nessuno. Specifica che lo stato primario o secondario non viene preso in considerazione quando si decide quale replica esegue i backup. Al contrario, la priorità di backup e lo stato online determinano quali repliche eseguono backup.
Tipo: | AvailabilityGroupAutomatedBackupPreference |
Valori accettati: | Primary, SecondaryOnly, Secondary, None, Unknown |
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 |
-DatabaseHealthTrigger
Specifica se attivare un failover automatico del gruppo di disponibilità se una replica di database utente all'interno di un gruppo di disponibilità rileva una condizione di errore del database.
Tipo: | Boolean |
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à Encrypt
SqlConnectionEncryptOption
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 |
-FailureConditionLevel
Specifica il comportamento di failover automatico del gruppo di disponibilità. I valori accettabili per questo parametro sono:
- OnServerDown. Failover o riavvio se il servizio SQL Server si arresta.
- OnServerUnresponsive. Failover o riavvio se viene soddisfatta una condizione di valore inferiore, oltre a quando il servizio SQL Server è connesso al cluster e il HealthCheckTimeout soglia viene superata o se la replica di disponibilità attualmente nel ruolo primario è in uno stato di errore.
- OnCriticalServerError. Failover o riavvio se viene soddisfatta una condizione di valore inferiore, oltre a quando si verifica un errore interno critico del server, che includono una condizione di memoria insufficiente, una grave violazione dell'accesso in scrittura o un dump eccessivo.
- OnModerateServerError. Failover o riavvio se viene soddisfatta una condizione di valore inferiore, più se si verifica un errore moderato del server, che include una condizione persistente di memoria insufficiente.
- OnAnyQualifiedFailureConditions. Failover o riavvio se viene soddisfatta una condizione di valore inferiore, oltre a se si verifica una condizione di errore idonea, che include l'esaurimento del thread di lavoro del motore e il deadlock non risolvibile rilevato.
Tipo: | AvailabilityGroupFailureConditionLevel |
Valori accettati: | OnServerDown, OnServerUnresponsive, OnCriticalServerErrors, OnModerateServerErrors, OnAnyQualifiedFailureCondition, Unknown |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-HealthCheckTimeout
Specifica l'intervallo di tempo, espresso in millisecondi, dopo il quale i gruppi di disponibilità AlwaysOn dichiarano che un server non risponde non integro.
Tipo: | Int32 |
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, che questo cmdlet modifica.
Tipo: | AvailabilityGroup |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Path
Specifica il percorso del database di disponibilità modificato dal cmdlet. 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 |
-RequiredSynchronizedSecondariesToCommit
Numero di repliche secondarie con commit sincrono che devono essere disponibili per poter eseguire il commit nel database primario.
Se un SYNCHRONOUS_COMMIT
secondario viene disconnesso dal database primario per un certo periodo di tempo, la replica primaria viene abbassata di livello a ASYNCHRONOUS_COMMIT
per evitare il blocco dei commit. Se il database primario diventa quindi non disponibile e l'utente vuole eseguire il failover in uno di questi database secondari, potrebbe comportare una perdita di dati. Impostando RequiredSynchronizedSecondariesToCommit su un numero, l'utente può impedire la perdita di dati perché il database primario inizierà a bloccare i commit se troppi database secondari vengono abbassati di livello a ASYNCHRONOUS_COMMIT
.
Il valore predefinito di questa impostazione è 0, il che significa che il database primario non bloccherà mai i commit. Questo comportamento è identico a quello precedente a SQL Server 2017.
Tipo: | Int32 |
Posizione: | Named |
Valore predefinito: | 0 |
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 |
-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.AvailabilityGroup