Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Limitazioni, note e consigli sulla Multi-AZ distribuzione di Microsoft SQL Server
Di seguito sono riportate alcune limitazioni relative all'utilizzo di Multi-AZ distribuzioni su istanze DB di RDS per SQL Server:
-
Cross-Region Multi-AZ non è supportato.
L'arresto di un'istanza database RDS per SQL Server in un'implementazione multi-AZ non è supportato.
-
Non è possibile configurare l'istanza database secondaria per accettare attività di lettura del database.
-
Multi-AZ con Always On Availability Groups (AG) supporta l'ottimizzazione in memoria.
-
Multi-AZ con Always On Availability Groups (AGs) non supporta l'autenticazione Kerberos per il listener del gruppo di disponibilità. Questo perché il listener non dispone di un Service Principal Name (SPN).
-
Multi-AZ con replica a livello di blocco è attualmente supportata solo per le istanze di SQL Server Web Edition.
-
Non è possibile rinominare un database su un'istanza DB di SQL Server che si trova in una distribuzione di SQL Server. Multi-AZ Se è necessario rinominare un database su tale istanza, disattivalo prima Multi-AZ per l'istanza DB, quindi rinomina il database. Infine, Multi-AZ riattiva l'istanza DB.
-
È possibile ripristinare solo le istanze Multi-AZ DB di cui è stato eseguito il backup utilizzando il modello di ripristino completo.
-
Multi-AZ le distribuzioni hanno un limite di 10.000 lavori di SQL Server Agent.
Se hai bisogno di un limite più alto, richiedi un aumento contattando. Supporto Aprire la pagina del Centro di supporto Supporto AWS
effettuando l'accesso se necessario, quindi selezionare Crea caso. Selezionare Service limit increase (Aumento limiti del servizio). Compilare e inviare il modulo. -
Non è possibile avere un database offline su un'istanza DB di SQL Server che si trova in una Multi-AZ distribuzione di SQL Server.
-
Le metriche del volume non sono disponibili per l'host secondario dell'istanza che utilizza la replica a livello di blocco.
Di seguito sono riportate alcune note sull'utilizzo delle Multi-AZ distribuzioni su istanze DB di RDS per SQL Server:
-
Amazon RDS mostra l'endpoint listener del gruppo di disponibilità
Always On AGs. L'endpoint è visibile nella console e viene restituito dall'operazione API DescribeDBInstancescome una voce nel campo endpoint. -
Amazon RDS supporta i failover di sottoreti multiple del gruppo di disponibilità
. -
Per utilizzare SQL Server Multi-AZ con un'istanza DB di SQL Server in un cloud privato virtuale (VPC), crea innanzitutto un gruppo di sottoreti DB con sottoreti in almeno due zone di disponibilità distinte. Quindi assegnare il gruppo di sottoreti DB alla replica primaria dell'istanza database di SQL Server.
-
Quando un'istanza DB viene modificata per essere una Multi-AZ distribuzione, durante la modifica ha lo stato di modifica. Amazon RDS crea l’istanza standby ed esegue un backup dell'istanza database principale. Dopo aver completato il processo, lo stato dell'istanza database primaria diventa available (disponibile).
-
Multi-AZ le distribuzioni mantengono tutti i database sullo stesso nodo. Se un database nell'host primario esegue il failover, tutti i database di SQL Server eseguono il failover come un'unica unità atomica nell'host di standby. Amazon RDS effettua il provisioning di un nuovo host integro e sostituisce l'host non integro.
-
Multi-AZ con DBM, AGs o la replica a livello di blocco supporta una singola replica in standby.
-
Nelle Multi-AZ distribuzioni, RDS per SQL Server crea accessi a SQL Server per consentire Always On AGs o Database Mirroring. RDS crea gli accessi con lo schema seguente,
db_<dbiResourceId>_node1_login,db_<dbiResourceId>_node2_loginedb_<dbiResourceId>_witness_login. -
RDS per SQL Server crea un accesso SQL Server per consentire l’accesso alle repliche di lettura. RDS crea un accesso con lo schema seguente,
db_<readreplica_dbiResourceId>_node_login. -
In un'implementazione standard dell'istanza database in una zona di disponibilità singola, è possibile osservare un aumento della latenza a causa dalle replica sincrona dei dati.
-
I tempi di failover sono influenzati dal tempo necessario per completare il processo di recupero. Le transazioni di grandi dimensioni aumentano il tempo di failover.
-
Nelle Multi-AZ distribuzioni di SQL Server, il riavvio con failover riavvia solo l'istanza database principale. Dopo aver eseguito il failover, l'istanza database primaria diventa la nuova istanza database secondaria. I parametri potrebbero non essere aggiornati per le istanze. Multi-AZ Per il riavvio senza failover, le istanze database primarie e secondarie vengono riavviate e i parametri vengono aggiornati dopo il riavvio. Se l'istanza database non risponde, si consiglia di riavviare senza failover.
La tabella seguente confronta il modo in cui gli oggetti a livello di server vengono replicati nelle Multi-AZ distribuzioni RDS per SQL Server utilizzando Database Mirroring (DBM) o Always On Availability Groups (AGs) rispetto alla replica a livello di blocco.
| Oggetto | Mirroring del database//Always On AGs | Block-level replica |
|---|---|---|
| Accessi | Sì, replicato da Amazon RDS. La DEFAULT_DATABASE proprietà non viene replicata. Non utilizzare per creare o modificare DEFAULT_DATABASE gli accessi su istanze DBM o Always On AG. |
Sì, incluso DEFAULT_DATABASE (nessuna restrizione). |
| Utenti e autorizzazioni del database | Sì, replicato tramite la replica nativa di SQL Server (archiviata nei database degli utenti). | Sì. |
| User-defined ruoli del server | Always On AGs: Sì, replicato. DBM: No, non replicato. | Sì. |
| Server collegati | No: memorizzato nel master database, che si trova all'esterno dell'AG o del mirror. Crea server collegati prima dell'attivazione Multi-AZ o ricreali manualmente dopo il failover. |
Sì, l'intero volume, inclusi i database di sistema, viene replicato. |
| Audit in SQL Server | Parziale: le specifiche di controllo del database (nei database degli utenti) vengono replicate. Gli audit del server e le specifiche di audit del server non vengono replicati. È necessario crearli manualmente sul secondario utilizzando il AUDIT_GUID parametro corrispondente a quello primario. |
Sì, tutti gli oggetti di controllo vengono replicati a livello di volume. |
Configurazione di tempdb |
Facoltativo: abilita la sincronizzazione con la seguente procedura memorizzata. Gli oggetti e i dati temporanei non vengono mai replicati. |
Sì, la configurazione viene replicata a livello di volume. |
| Lavori di SQL Server Agent | Facoltativo: abilita la sincronizzazione con la seguente stored procedure. Vengono replicate solo le fasi del T-SQL processo nelle categorie supportate. I tipi di passaggi SSIS, SSRS, Replication e Database Mail non vengono replicati. PowerShell |
Sì, tutti i job vengono replicati a livello di volume. |
| CDC (Change Data Capture) | Parziale: i metadati e le tabelle delle modifiche CDC (nei database degli utenti) vengono replicati. I processi di acquisizione e pulizia (inmsdb) non vengono replicati direttamente. Amazon RDS li elimina e li ricrea sul nuovo sistema primario dopo il failover utilizzando parametri registrati in precedenza. Utilizzato rds_set_configuration per preimpostare i parametri CDC sul secondario. |
Sì, tutti gli oggetti CDC vengono replicati a livello di volume. |
| Direttore delle risorse | Sì, replicato da Amazon RDS. Per verificare la sincronizzazione, esegui la seguente query.
|
Sì. |
| Proprietario del database | No: nell'istanza secondaria, il proprietario del database è impostato NT AUTHORITY\SYSTEM su. Dopo il failover, utilizzare msdb.dbo.rds_changedbowner_to_rdsa per ripristinare la proprietà. |
Sì, il proprietario viene preservato. |
Autorizzazioni di msdb |
No, RDS per SQL Server non replica le autorizzazioni del msdb database nell'istanza secondaria. È necessario ricrearli manualmente. |
Sì, replicato a livello di volume. |
Di seguito sono riportati alcuni consigli per Multi-AZ utilizzare le distribuzioni su RDS per le istanze DB di Microsoft SQL Server:
-
Per database utilizzati in produzione o in preproduzione, raccomandiamo quanto segue:
Multi-AZ distribuzioni per un'elevata disponibilità
"Provisioned IOPS" per prestazioni veloci e coerenti
"Memoria ottimizzata" anziché "Uso generale"
-
Non è possibile selezionare la zona di disponibilità per l'istanza secondaria, quindi tieni questo a mente quando distribuisci gli host delle applicazioni. Il tuo database potrebbe non riuscire su un'altra zona di disponibilità e gli host delle applicazioni potrebbero non essere nella stessa zona di disponibilità del database. Per questo motivo, consigliamo di bilanciare gli host delle applicazioni tra tutte le AZ di una determinata regione. AWS
-
Per prestazioni ottimali, non abilitate il mirroring del database, l'Always On AG o la replica a livello di blocco durante un'operazione di caricamento di dati di grandi dimensioni. Se desideri che il caricamento dei dati sia il più veloce possibile, completa il caricamento dei dati prima di convertire l'istanza DB in una distribuzione. Multi-AZ
-
Le applicazioni che accedono ai database SQL Server devono avere una gestione delle eccezioni che rileva gli errori di connessione. Il seguente esempio di codice mostra un try/catch blocco che rileva un errore di comunicazione. In questo esempio, l'istruzione
breakesce dal ciclowhilese la connessione ha esito positivo, ma ritenta fino a 10 volte se viene generata un'eccezione.int RetryMaxAttempts = 10; int RetryIntervalPeriodInSeconds = 1; int iRetryCount = 0; while (iRetryCount < RetryMaxAttempts) { using (SqlConnection connection = new SqlConnection(DatabaseConnString)) { using (SqlCommand command = connection.CreateCommand()) { command.CommandText = "INSERT INTO SOME_TABLE VALUES ('SomeValue');"; try { connection.Open(); command.ExecuteNonQuery(); break; } catch (Exception ex) { Logger(ex.Message); iRetryCount++; } finally { connection.Close(); } } } Thread.Sleep(RetryIntervalPeriodInSeconds * 1000); } -
Non utilizzate il
Set Partner Offcomando quando lavorate con Multi-AZ istanze che utilizzano DBM o AG. Questo comando non è supportato nelle istanze che utilizzano la replica a livello di blocco. Ad esempio, non effettuare le seguenti operazioni.--Don't do this ALTER DATABASE db1 SET PARTNER off -
Non impostare la modalità di ripristino su
simple. Ad esempio, non effettuare le seguenti operazioni.--Don't do this ALTER DATABASE db1 SET RECOVERY simple -
Non utilizzare il
DEFAULT_DATABASEparametro per creare nuovi accessi su istanze Multi-AZ DB a meno che non si utilizzi la replica a livello di blocco per l'elevata disponibilità, poiché queste impostazioni non possono essere applicate al mirror di standby. Ad esempio, non effettuare le seguenti operazioni.--Don't do this CREATE LOGIN [test_dba] WITH PASSWORD=foo, DEFAULT_DATABASE=[db2]Inoltre, non fare quanto segue.
--Don't do this ALTER LOGIN [test_dba] WITH DEFAULT_DATABASE=[db3]