

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à.

# Aggiornamenti del motore di database Microsoft SQL Server
<a name="USER_UpgradeDBInstance.SQLServer"></a>

Quando Amazon RDS supporta una nuova versione di un motore di database, puoi effettuare l'aggiornamento delle istanze database alla nuova versione. Sono disponibili due tipi di aggiornamenti per le istanze database SQL Server: per la versione principale e per la versione secondaria. 

Gli *aggiornamenti di versione principali* possono contenere modifiche al database non compatibili con le versioni precedenti delle applicazioni esistenti. Ne risulta che è necessario eseguire *manualmente* gli aggiornamenti a versioni principali per le proprie istanze database. Puoi avviare manualmente un aggiornamento principale a una versione modificando l'istanza. Tuttavia, prima di eseguire un aggiornamento alla versione principale, è consigliabile testarlo seguendo i passaggi descritti in [Test di un aggiornamento di RDS per SQL Server](USER_UpgradeDBInstance.SQLServer.UpgradeTesting.md). 

*Gli aggiornamenti a versioni secondarie* includono solo modifiche compatibili con le versioni precedenti delle applicazioni esistenti. È possibile aggiornare la versione secondaria dell’istanza database in due modi:
+ *Manualmente*: modifica l’istanza database per avviare l’aggiornamento.
+ *Automaticamente*: abilita gli aggiornamenti automatici a versioni secondarie per l’istanza database in uso.

Quando abiliti gli aggiornamenti automatici a versioni secondarie, RDS per SQL Server aggiorna automaticamente l’istanza database in uso durante le finestre di manutenzione programmata quando sono disponibili aggiornamenti di sicurezza critici in una versione secondaria più recente.

Per le versioni secondarie del motore successive a `16.00.4120.1`, `15.00.4365.2`, `14.00.3465.1` e `13.00.6435.1`, i seguenti protocolli di sicurezza sono disabilitati per impostazione predefinita:
+ `rds.tls10` (protocollo TLS 1.0)
+ `rds.tls11` (protocollo TLS 1.1)
+ `rds.rc4`(RC4 codice)
+ `rds.curve25519` (crittografia Curve25519)
+ `rds.3des168` (crittografia Triple DES)

Per le versioni precedenti del motore, Amazon RDS abilita questi protocolli di sicurezza per impostazione predefinita.

```
...

"ValidUpgradeTarget": [
    {
        "Engine": "sqlserver-se",
        "EngineVersion": "14.00.3281.6.v1",
        "Description": "SQL Server 2017 14.00.3281.6.v1",
        "AutoUpgrade": false,
        "IsMajorVersionUpgrade": false
    }
...
```

Per ulteriori informazioni sull'esecuzione degli aggiornamenti, consulta [Aggiornamento di un'istanza database SQL Server](#USER_UpgradeDBInstance.SQLServer.Upgrading). Per informazioni sulle versioni di SQL Server disponibili in Amazon RDS, consulta [Amazon RDS per Microsoft SQL Server](CHAP_SQLServer.md).

Amazon RDS supporta anche la politica di implementazione degli aggiornamenti per gestire gli aggiornamenti automatici delle versioni secondarie su più risorse di database e. Account AWS Per ulteriori informazioni, consulta [Utilizzo della politica di implementazione degli AWS Organizations aggiornamenti per gli aggiornamenti automatici delle versioni secondarie](RDS.Maintenance.AMVU.UpgradeRollout.md).

**Topics**
+ [Aggiornamenti a versioni principali per RDS per SQL Server](USER_UpgradeDBInstance.SQLServer.Major.md)
+ [Considerazioni sugli aggiornamenti di SQL Server](USER_UpgradeDBInstance.SQLServer.Considerations.md)
+ [Test di un aggiornamento di RDS per SQL Server](USER_UpgradeDBInstance.SQLServer.UpgradeTesting.md)
+ [Aggiornamento di un'istanza database SQL Server](#USER_UpgradeDBInstance.SQLServer.Upgrading)
+ [Aggiornamento di istanze database obsolete prima del termine del supporto](#USER_UpgradeDBInstance.SQLServer.DeprecatedVersions)

# Aggiornamenti a versioni principali per RDS per SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Major"></a>

Amazon RDS attualmente supporta gli aggiornamenti delle versioni principali seguenti per un'istanza database Microsoft SQL Server.

Puoi ora aggiornare l'istanza database esistente a SQL Server 2017 o 2019 da qualsiasi versione, ad eccezione di SQL Server 2008. Per eseguire l'aggiornamento da SQL Server 2008, prima di tutto aggiorna l'istanza a una delle altre versioni.


****  

| Versione corrente | Versioni supportate per l'aggiornamento | 
| --- | --- | 
|  SQL Server 2019  |  SQL Server 2022  | 
|  SQL Server 2017  |  SQL Server 2022 SQL Server 2019  | 
|  SQL Server 2016  |  SQL Server 2022 SQL Server 2019 SQL Server 2017  | 

Puoi utilizzare una query AWS CLI, ad esempio nell'esempio seguente, per trovare gli aggiornamenti disponibili per una particolare versione del modulo di gestione di database.

**Example**  
Per Linux, macOS o Unix:  

```
aws rds describe-db-engine-versions \
    --engine sqlserver-se \
    --engine-version 14.00.3281.6.v1 \
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" \
    --output table
```
Per Windows:  

```
aws rds describe-db-engine-versions ^
    --engine sqlserver-se ^
    --engine-version 14.00.3281.6.v1 ^
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
    --output table
```
L'output mostra che è possibile aggiornare la versione 14.00.3281.6 alle versioni più recente di SQL Server 2017 o 2019.  

```
--------------------------
|DescribeDBEngineVersions|
+------------------------+
|      EngineVersion     |
+------------------------+
|  14.00.3294.2.v1       |
|  14.00.3356.20.v1      |
|  14.00.3381.3.v1       |
|  14.00.3401.7.v1       | 
|  14.00.3421.10.v1      |
|  14.00.3451.2.v1       |
|  15.00.4043.16.v1      |
|  15.00.4073.23.v1      |
|  15.00.4153.1.v1       |
|  15.00.4198.2.v1       |
|  15.00.4236.7.v1       |
+------------------------+
```

## Livello di compatibilità del database
<a name="USER_UpgradeDBInstance.SQLServer.Major.Compatibility"></a>

È possibile utilizzare i livelli di compatibilità del database Microsoft SQL Server per modificare alcuni comportamenti del database in modo da emulare versioni precedenti di SQL Server. Per ulteriori informazioni, consulta [Livello di compatibilità](https://msdn.microsoft.com/en-us/library/bb510680.aspx) nella documentazione Microsoft. Quando aggiorni l'istanza database, tutti i database esistenti rimangono impostati sul livello di compatibilità originale. 

È possibile modificare il livello di compatibilità di un database tramite il comando ALTER DATABASE. Per modificare, ad esempio, un database denominato `customeracct` in modo che sia compatibile con SQL Server 2016, utilizza il comando seguente: 

```
1. ALTER DATABASE customeracct SET COMPATIBILITY_LEVEL = 130
```

# Considerazioni sugli aggiornamenti di SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Considerations"></a>

Durante il processo di aggiornamento, Amazon RDS acquisisce due snapshot DB. Il primo snapshot DB è relativo all’istanza database prima delle modifiche legate all’aggiornamento. Il secondo snapshot DB viene acquisito al termine dell’aggiornamento.

**Nota**  
Amazon RDS acquisisce gli snapshot DB solo se hai impostato il periodo di retention dei backup per l’istanza database su un valore maggiore di 0. Per cambiare il periodo di retention dei backup, consulta [Modifica di un'istanza database Amazon RDS](Overview.DBInstance.Modifying.md).

Al completamento di un aggiornamento, non puoi ripristinare la versione precedente del motore di database. Se desideri tornare alla versione precedente, ripristina dallo snapshot DB acquisito prima dell’aggiornamento per creare una nuova istanza database. 

Durante un aggiornamento di una versione principale o secondaria di SQL Server, per i parametri **Free Storage Space (Spazio di storage libero)** e **Disk Queue Depth (Profondità coda disco)** viene visualizzato `-1`. Al completamento dell’aggiornamento, entrambi i parametri vengono ripristinati al valore normale.

Prima di aggiornare l’istanza SQL Server, esamina le informazioni riportate di seguito.

**Topics**
+ [Best practice prima dell’avvio di un aggiornamento](#USER_UpgradeDBInstance.SQLServer.BestPractices)
+ [Considerazioni sul Multi-AZ](#USER_UpgradeDBInstance.SQLServer.MAZ)
+ [Considerazioni sulle repliche di lettura](#USER_UpgradeDBInstance.SQLServer.readreplica)
+ [Considerazioni su gruppi di opzioni](#USER_UpgradeDBInstance.SQLServer.OGPG.OG)
+ [Considerazioni sui gruppi di parametri](#USER_UpgradeDBInstance.SQLServer.OGPG.PG)

## Best practice prima dell’avvio di un aggiornamento
<a name="USER_UpgradeDBInstance.SQLServer.BestPractices"></a>

Prima di iniziare il processo di aggiornamento, implementa i seguenti passaggi preparatori per consentire prestazioni di aggiornamento ottimali e ridurre al minimo i potenziali problemi:

Gestione delle tempistiche e del carico di lavoro  
+ Pianifica gli aggiornamenti durante i periodi di basso volume di transazioni.
+ Riduci al minimo le operazioni di scrittura durante la finestra di aggiornamento.
Ciò consente ad Amazon RDS di completare gli aggiornamenti più rapidamente riducendo il numero di file di backup dei log delle transazioni che RDS deve ripristinare durante l'associazione. secondary-to-primary

Gestione delle transazioni  
+ Identifica e termina le transazioni di lunga durata.
+ Assicurati che tutte le transazioni critiche vengano eseguite prima di iniziare l’aggiornamento.
+ Evita transazioni di lunga durata durante la finestra di aggiornamento.

Ottimizzazione dei file di log  
Rivedi e ottimizza i file di log delle transazioni:  
+ Riduci i file di log di grandi dimensioni.
+ Riduci i modelli a elevato consumo di log.
+ Gestisci i file di log virtuali (). VLFs
+ Mantieni uno spazio libero adeguato per le normali operazioni.

## Considerazioni sul Multi-AZ
<a name="USER_UpgradeDBInstance.SQLServer.MAZ"></a>

Amazon RDS supporta implementazioni Multi-AZ per istanze DB che eseguono Microsoft SQL Server utilizzando SQL Server Database Mirroring (DBM) o Always On Availability Groups (). AGs Per ulteriori informazioni, consulta [Implementazioni Multi-AZ per Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md).

In una distribuzione Multi-AZ (Mirroring/AlwaysOn), quando viene richiesto un aggiornamento, RDS segue una strategia di aggiornamento continuo per le istanze primarie e secondarie. Gli aggiornamenti continui garantiscono che almeno un’istanza sia disponibile per le transazioni mentre l’istanza secondaria viene aggiornata. Si prevede che l’interruzione duri solo per la durata di un failover.

Durante l’aggiornamento, RDS rimuove l’istanza secondaria dalla configurazione Multi-AZ, esegue un aggiornamento dell’istanza secondaria e ripristina tutti i backup dei log delle transazioni dal primario eseguito durante la disconnessione. Dopo il ripristino di tutti i backup dei log, RDS unisce il sistema secondario aggiornato a quello primario. Quando tutti i database sono in uno stato sincronizzato, RDS esegue un failover sull’istanza secondaria aggiornata. Una volta completato il failover, RDS procede con l’aggiornamento della vecchia istanza primaria, ripristina tutti i backup dei log delle transazioni e lo associa alla nuova istanza primaria.

Per ridurre al minimo la durata del failover, si consiglia di utilizzare l'endpoint del listener del gruppo di AlwaysOn AGs disponibilità quando si utilizzano librerie client che supportano l'opzione di connessione nella stringa di connessione. `MultiSubnetFailover` Quando si utilizza l’endpoint listener del gruppo di disponibilità, i tempi di failover sono in genere inferiori a 10 secondi, tuttavia questa durata non include alcun tempo di ripristino aggiuntivo in caso di arresto anomalo.

## Considerazioni sulle repliche di lettura
<a name="USER_UpgradeDBInstance.SQLServer.readreplica"></a>

Durante l’aggiornamento della versione del database, Amazon RDS aggiorna anche tutte le repliche di lettura insieme all’istanza database primaria. Amazon RDS non supporta gli aggiornamenti della versione del database sulle repliche di lettura separatamente. Per ulteriori informazioni sulle repliche di lettura, consultare [Utilizzo di repliche di lettura per Microsoft SQL Server in Amazon RDS](SQLServer.ReadReplicas.md).

Quando aggiorni la versione del database dell’istanza database primaria, tutte le relative repliche di lettura vengono aggiornate automaticamente. Amazon RDS aggiornerà tutte le repliche di lettura contemporaneamente prima di aggiornare l’istanza database di origine. Le repliche di lettura potrebbero non essere disponibili fino al completamento dell’aggiornamento della versione del database sull’istanza DB primaria.

## Considerazioni su gruppi di opzioni
<a name="USER_UpgradeDBInstance.SQLServer.OGPG.OG"></a>

Se l’istanza database utilizza un gruppo DB di opzioni personalizzato, in alcuni casi Amazon RDS non può assegnare automaticamente all’istanza database un nuovo gruppo di opzioni. Ad esempio, quando esegui l’aggiornamento a una nuova versione principale, devi specificare un nuovo gruppo di opzioni. Ti consigliamo di creare un nuovo gruppo di opzioni e di aggiungere le stesse opzioni presenti nel gruppo di opzioni personalizzato esistente.

Per ulteriori informazioni, consulta [Creazione di un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create) o [Copia di un gruppo di opzioni](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy).

## Considerazioni sui gruppi di parametri
<a name="USER_UpgradeDBInstance.SQLServer.OGPG.PG"></a>

Se l’istanza database utilizza un gruppo di parametri del database personalizzato:
+ Amazon RDS riavvia automaticamente l’istanza database dopo un aggiornamento.
+ In alcuni casi, RDS non è in grado di assegnare automaticamente un nuovo gruppo di parametri all’istanza database.

  Ad esempio, quando esegui l’aggiornamento a una nuova versione principale, devi specificare un nuovo gruppo di parametri. Ti consigliamo di creare un nuovo gruppo di parametri e di configurare i parametri in modo analogo al gruppo di parametri personalizzato esistente.

Per ulteriori informazioni, consulta [Creazione di un gruppo di parametri database in Amazon RDS](USER_WorkingWithParamGroups.Creating.md) o [Copia di un gruppo di parametri database in Amazon RDS](USER_WorkingWithParamGroups.Copying.md).

# Test di un aggiornamento di RDS per SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.UpgradeTesting"></a>

Prima di eseguire l'aggiornamento di una versione principale nell'istanza database, testa a fondo il database e tutte le applicazioni che accedono a esso per verificarne la compatibilità con la nuova versione. È consigliabile utilizzare la procedura seguente.

**Per testare un aggiornamento di una versione principale**

1. Esaminare [Upgrade del Server SQL](https://docs.microsoft.com/en-us/sql/database-engine/install-windows/upgrade-sql-server) nella documentazione Microsoft per la nuova versione del motore di database per verificare se vi sono problemi di compatibilità che potrebbero interessare il database o le applicazioni:

1. Se l'istanza database utilizza un gruppo di opzioni personalizzato, creare un nuovo gruppo di opzioni compatibile con la nuova versione a cui si sta eseguendo l'aggiornamento. Per ulteriori informazioni, consulta [Considerazioni su gruppi di opzioni](USER_UpgradeDBInstance.SQLServer.Considerations.md#USER_UpgradeDBInstance.SQLServer.OGPG.OG).

1. Se l'istanza database utilizza un gruppo di parametri personalizzato, creare un nuovo gruppo di parametri compatibile con la nuova versione a cui si sta eseguendo l'aggiornamento. Per ulteriori informazioni, consulta [Considerazioni sui gruppi di parametri](USER_UpgradeDBInstance.SQLServer.Considerations.md#USER_UpgradeDBInstance.SQLServer.OGPG.PG).

1. Creare uno snapshot DB dell'istanza database da aggiornare. Per ulteriori informazioni, consulta [Creazione di uno snapshot del database per un’istanza database Single-AZ per Amazon RDS](USER_CreateSnapshot.md).

1. Ripristinare lo snapshot DB per creare una nuova istanza database di test. Per ulteriori informazioni, consulta [Ripristino in un’istanza database](USER_RestoreFromSnapshot.md).

1. Modificare la nuova istanza database di test per aggiornarla alla nuova versione, utilizzando uno dei metodi seguenti:
   + [Console](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.Console)
   + [AWS CLI](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.CLI)
   + [API RDS](USER_UpgradeDBInstance.Upgrading.md#USER_UpgradeDBInstance.Upgrading.Manual.API)

1. Valutare lo storage utilizzato dall'istanza aggiornata per determinare se l'aggiornamento richiede storage aggiuntivo. 

1. Eseguire quanti più test di controllo qualità possibili per l'istanza database aggiornata come necessario per assicurare che il database e l'applicazione funzionino correttamente con la nuova versione. Implementare qualsiasi nuovo test necessario per valutare l'impatto dei problemi di compatibilità identificati nella fase 1. Testare tutte le stored procedure e le funzioni. Indirizzare le versioni di test delle applicazioni all'istanza database aggiornata. 

1. Se tutti i test vengono superati, eseguire l'aggiornamento nell'istanza database di produzione. È consigliabile non permettere le operazioni di scrittura nell'istanza database fino a quando non si è certi che tutto funzioni correttamente. 

## Aggiornamento di un'istanza database SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Upgrading"></a>

Per informazioni sull'aggiornamento manuale o automatico di un'istanza database di SQL Server, consulta quanto segue:
+ [Aggiornamento della versione del motore di di un'istanza database](USER_UpgradeDBInstance.Upgrading.md)
+ [Best practice per l'aggiornamento di SQL Server 2008 R2 a SQL Server 2016 su Amazon RDS for SQL Server](https://aws.amazon.com/blogs/database/best-practices-for-upgrading-sql-server-2008-r2-to-sql-server-2016-on-amazon-rds-for-sql-server/)

**Importante**  
Se disponi di istantanee crittografate utilizzando AWS KMS, ti consigliamo di avviare un aggiornamento prima della fine del supporto. 

## Aggiornamento di istanze database obsolete prima del termine del supporto
<a name="USER_UpgradeDBInstance.SQLServer.DeprecatedVersions"></a>

Quando una versione principale diventa obsoleta, non puoi installarla su nuove istanze database. RDS proverà ad aggiornare automaticamente tutte le istanze database esistenti. 

Se devi ripristinare un'istanza DB obsoleta, puoi eseguire il point-in-time ripristino (PITR) o ripristinare un'istantanea. In questo modo avrai temporaneamente accesso a un'istanza database che utilizza la versione diventata obsoleta. Tuttavia, quando una versione principale diventa totalmente obsoleta, anche queste istanze database saranno automaticamente aggiornate a una versione supportata. 