

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Mises à niveau du moteur de base de données Microsoft SQL Server
<a name="USER_UpgradeDBInstance.SQLServer"></a>

Lorsque Amazon RDS prend en charge une nouvelle version d'un moteur de base de données, vous pouvez mettre à niveau vos instances de base de données vers cette nouvelle version. Il existe deux types de mises à niveau pour les instances de base de données SQL Server : les mises à niveau de version majeure et les mises à niveau de version mineure. 

Les *mises à niveau de version majeure* peuvent contenir des modifications de base de données qui ne sont pas rétrocompatibles avec les applications existantes. En conséquence, vous devez effectuer *manuellement* les mises à niveau des versions majeures de vos instances de base de données. Vous pouvez lancer une mise à niveau de version majeure en modifiant votre instance de base de données. Cependant, avant d’effectuer une mise à niveau de version majeure, nous vous recommandons de tester la mise à niveau en suivant les étapes décrites dans [Test d’une mise à niveau de RDS for SQL Server](USER_UpgradeDBInstance.SQLServer.UpgradeTesting.md). 

*Mises à niveau des versions mineures* contient uniquement des modifications rétrocompatibles avec les applications existantes. Vous pouvez mettre à niveau la version mineure de votre instance de base de données de deux manières :
+ *Manuellement* : modifiez votre instance de base de données pour lancer la mise à niveau
+ *Automatiquement* : activez les mises à niveau automatiques des versions mineures pour votre instance de base de données

Lorsque vous activez les mises à niveau automatiques des versions mineures, RDS for SQL Server met automatiquement à niveau votre instance de base de données pendant les fenêtres de maintenance planifiées lorsque des mises à jour de sécurité critiques sont disponibles dans une version mineure plus récente.

Pour les versions mineures de moteurs postérieures à `16.00.4120.1`, `15.00.4365.2`, `14.00.3465.1`, `13.00.6435.1`, les protocoles de sécurité suivants sont désactivés par défaut :
+ `rds.tls10` (protocole TLS 1.0)
+ `rds.tls11` (protocole TLS 1.1)
+ `rds.rc4`(RC4 chiffre)
+ `rds.curve25519` (chiffrement Curve25519)
+ `rds.3des168` (chiffrement Triple DES)

Pour les versions de moteurs antérieures, Amazon RDS active ces protocoles de sécurité par défaut.

```
...

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

Pour plus d’informations sur l’exécution de mises à niveau, consultez [Mise à niveau d’une instance de base de données SQL Server](#USER_UpgradeDBInstance.SQLServer.Upgrading). Pour plus d’informations sur les versions SQL Server disponibles sur Amazon RDS, consultez [Amazon RDS for Microsoft SQL Server](CHAP_SQLServer.md).

Amazon RDS prend également en charge la politique de déploiement des mises à niveau afin de gérer les mises à niveau automatiques des versions mineures sur plusieurs ressources de base de données et. Comptes AWS Pour de plus amples informations, veuillez consulter [Utilisation de la politique de déploiement des mises à AWS Organizations niveau pour les mises à niveau automatiques des versions mineures](RDS.Maintenance.AMVU.UpgradeRollout.md).

**Topics**
+ [Mises à niveau des versions majeures pour RDS for SQL Server](USER_UpgradeDBInstance.SQLServer.Major.md)
+ [Considérations relatives aux mises à niveau de SQL Server](USER_UpgradeDBInstance.SQLServer.Considerations.md)
+ [Test d’une mise à niveau de RDS for SQL Server](USER_UpgradeDBInstance.SQLServer.UpgradeTesting.md)
+ [Mise à niveau d’une instance de base de données SQL Server](#USER_UpgradeDBInstance.SQLServer.Upgrading)
+ [Mise à niveau des instances de base de données obsolètes avant la fin de la prise en charge](#USER_UpgradeDBInstance.SQLServer.DeprecatedVersions)

# Mises à niveau des versions majeures pour RDS for SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Major"></a>

Amazon RDS prend actuellement en charge les mises à niveau de version majeure suivantes vers une instance de base de données Microsoft SQL Server.

Vous pouvez mettre à jour une instance de base de données existante vers SQL Server 2017 ou 2019 depuis n’importe quelle version, sauf SQL Server 2008. Pour mettre à niveau SQL Server 2008, effectuez d’abord une mise à niveau vers une des autres versions.


****  

| Version actuelle | Versions de mise à niveau prises en charge | 
| --- | --- | 
|  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  | 

Vous pouvez utiliser une requête AWS CLI, comme dans l’exemple suivant, pour rechercher les mises à niveau disponibles pour une version particulière du moteur de base de données.

**Example**  
Pour Linux, macOS ou Unix :  

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

```
aws rds describe-db-engine-versions ^
    --engine sqlserver-se ^
    --engine-version 14.00.3281.6.v1 ^
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
    --output table
```
La sortie indique que vous pouvez mettre à niveau la version 14.00.3281.6 vers les dernières versions disponibles de SQL Server 2017 ou 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       |
+------------------------+
```

## Niveau de compatibilité de base de données
<a name="USER_UpgradeDBInstance.SQLServer.Major.Compatibility"></a>

Vous pouvez utiliser les niveaux de compatibilité de base de données Microsoft SQL Server afin de régler certains comportements de base de données pour imiter les versions précédentes de SQL Server. Pour plus d’informations, consultez [Niveau de compatibilité](https://msdn.microsoft.com/en-us/library/bb510680.aspx) dans la documentation de Microsoft. Lorsque vous mettez à niveau votre instance de base de données, toutes les bases de données existantes restent à leur niveau de compatibilité initial. 

Vous pouvez modifier le niveau de compatibilité d’une base de données en utilisant la commande ALTER DATABASE. Par exemple, pour modifier une base de données nommée `customeracct` afin qu’elle soit compatible avec SQL Server 2016, exécutez la commande suivante : 

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

# Considérations relatives aux mises à niveau de SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Considerations"></a>

Amazon RDS prend deux instantanés de base de données au cours du processus de mise à niveau. Le premier instantané de base de données porte sur l’instance de base de données avant que toute modification de mise à niveau soit apportée. Le second instantané de base de données est pris à la fin de la mise à niveau.

**Note**  
Amazon RDS ne prend des instantanés de base de données que si vous avez défini la période de rétention des sauvegardes de votre instance de base de données sur un nombre supérieur à 0. Pour modifier la période de rétention des sauvegardes, consultez [Modification d'une instance de base de données Amazon RDS](Overview.DBInstance.Modifying.md).

Une fois la mise à niveau terminée, vous ne pouvez pas rétablir la version précédente du moteur de base de données. Si vous souhaitez revenir à la version précédente, restaurez l’instantané de base de données pris avant la mise à niveau pour créer une nouvelle instance de base de données. 

Au cours de la mise à niveau d’une version mineure ou majeure de SQL Server, les métriques **Espace de stockage disponible** et **Profondeur de la file d’attente** indiquent `-1`. Une fois la mise à niveau terminée, les deux métriques reviennent à la normale.

Avant de mettre à niveau votre instance SQL Server, consultez les informations suivantes.

**Topics**
+ [Bonnes pratiques avant de lancer une mise à niveau](#USER_UpgradeDBInstance.SQLServer.BestPractices)
+ [Considérations multi-AZ](#USER_UpgradeDBInstance.SQLServer.MAZ)
+ [Considérations relatives aux réplicas en lecture](#USER_UpgradeDBInstance.SQLServer.readreplica)
+ [Considérations relatives au groupe d'options](#USER_UpgradeDBInstance.SQLServer.OGPG.OG)
+ [Considérations relatives au groupe de paramètres](#USER_UpgradeDBInstance.SQLServer.OGPG.PG)

## Bonnes pratiques avant de lancer une mise à niveau
<a name="USER_UpgradeDBInstance.SQLServer.BestPractices"></a>

Avant de démarrer le processus de mise à niveau, mettez en œuvre les étapes préparatoires suivantes pour optimiser les performances de mise à niveau et minimiser les problèmes potentiels :

Gestion du calendrier et de la charge de travail  
+ Planifiez des mises à niveau pendant les périodes de faible volume de transactions.
+ Minimisez les opérations d’écriture pendant la fenêtre de mise à niveau.
Cela permet à Amazon RDS d'effectuer les mises à niveau plus rapidement en réduisant le nombre de fichiers de sauvegarde du journal des transactions que RDS doit restaurer lors secondary-to-primary du couplage.

Gestion des transactions  
+ Identifiez et surveillez les transactions de longue durée.
+ Assurez-vous que toutes les transactions critiques sont validées avant de lancer la mise à niveau.
+ Empêchez les transactions de longue durée pendant la fenêtre de mise à niveau.

Optimisation des fichiers journaux  
Passez en revue et optimisez les fichiers journaux de transactions :  
+ Réduisez les fichiers journaux surdimensionnés.
+ Réduisez les modèles de consommation élevée de journaux.
+ Gérez les fichiers journaux virtuels (VLFs).
+ Maintenez un espace libre suffisant pour les opérations normales.

## Considérations multi-AZ
<a name="USER_UpgradeDBInstance.SQLServer.MAZ"></a>

Amazon RDS prend en charge les déploiements multi-AZ pour les instances de base de données exécutant Microsoft SQL Server en utilisant SQL Server Database Mirroring (DBM) ou Always On Availability Groups (). AGs Pour de plus amples informations, veuillez consulter [Déploiements multi-AZ pour Amazon RDS for Microsoft SQL Server](USER_SQLServerMultiAZ.md).

Dans un déploiement multi-AZ (Mirroring/AlwaysOn), lorsqu'une mise à niveau est demandée, RDS suit une stratégie de mise à niveau progressive pour les instances principales et secondaires. Les mises à niveau continues garantissent qu’au moins une instance est disponible pour les transactions pendant la mise à niveau de l’instance secondaire. L’interruption de service ne doit se produire que pendant la durée d’un basculement.

Au cours de la mise à niveau, RDS supprime l’instance secondaire de la configuration multi-AZ, effectue une mise à niveau de l’instance secondaire et restaure toutes les sauvegardes du journal des transactions de l’instance principale effectuées pendant la période de déconnexion. Une fois toutes les sauvegardes de journaux restaurées, RDS joint le secondaire mis à niveau au principal. Lorsque toutes les bases de données sont synchronisées, RDS effectue un basculement vers l’instance secondaire mise à niveau. Une fois le basculement terminé, RDS procède à la mise à niveau de l’ancienne instance principale, restaure toutes les sauvegardes du journal des transactions et l’associe à la nouvelle instance principale.

Pour minimiser cette durée de basculement, nous recommandons d'utiliser le point de terminaison de l'écouteur du groupe de AlwaysOn AGs disponibilité lorsque vous utilisez des bibliothèques clientes qui prennent en charge l'option de `MultiSubnetFailover` connexion dans la chaîne de connexion. Lors de l’utilisation du point de terminaison d’écouteur du groupe de disponibilité, les temps de basculement sont généralement inférieurs à 10 secondes, mais cette durée n’inclut aucun temps supplémentaire de reprise après incident.

## Considérations relatives aux réplicas en lecture
<a name="USER_UpgradeDBInstance.SQLServer.readreplica"></a>

Lors d’une mise à niveau de la version de la base de données, Amazon RDS met à niveau tous vos réplicas en lecture ainsi que l’instance de base de données principale. Amazon RDS ne prend pas en charge les mises à niveau de version de base de données sur les réplicas en lecture séparément. Pour plus d’informations sur les réplicas en lecture, consultez [Utilisation des réplicas en lecture pour Microsoft SQL Server dans Amazon RDS](SQLServer.ReadReplicas.md).

Lorsque vous effectuez une mise à niveau de la version de la base de données de l’instance de base de donnée principale, tous les réplicas en lecture sont également automatiquement mis à niveau. Amazon RDS mettra à niveau tous les réplicas en lecture simultanément avant de mettre à niveau l’instance de base de données primaire. Les réplicas en lecture peuvent ne pas être disponibles tant que la mise à niveau de la version de la base de données sur l’instance de base de données principale n’est pas terminée.

## Considérations relatives au groupe d'options
<a name="USER_UpgradeDBInstance.SQLServer.OGPG.OG"></a>

Si votre instance de base de données utilise un groupe d’options de base de données personnalisé, Amazon RDS ne peut pas toujours attribuer automatiquement un nouveau groupe d’options à votre instance de base de données. Par exemple, lorsque vous procédez à une mise à niveau vers une nouvelle version majeure, vous devez spécifier un nouveau groupe d’options. Nous vous recommandons de créer un nouveau groupe d’options et d’y ajouter les mêmes options qu’à votre groupe d’options personnalisé existant.

Pour plus d’informations, consultez [Création d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create) ou [Copie d’un groupe d’options](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy).

## Considérations relatives au groupe de paramètres
<a name="USER_UpgradeDBInstance.SQLServer.OGPG.PG"></a>

Si votre instance de base de données utilise un groupe de paramètres de base de données personnalisé :
+ Amazon RDS redémarre automatiquement l’instance de base de données après une mise à niveau.
+ Dans certains cas, RDS n’est pas en mesure d’attribuer automatiquement un nouveau groupe de paramètres à votre instance de base de données.

  Par exemple, lorsque vous procédez à une mise à niveau vers une nouvelle version majeure, vous devez spécifier un nouveau groupe de paramètres. Nous vous recommandons de créer un nouveau groupe de paramètres et de configurer les mêmes paramètres que ceux de votre groupe de paramètres personnalisé existant.

Pour plus d'informations, veuillez consulter [Création d’un groupe de paramètres de base de données dans Amazon RDS](USER_WorkingWithParamGroups.Creating.md) ou [Copie d’un groupe de paramètres de base de données dans Amazon RDS](USER_WorkingWithParamGroups.Copying.md).

# Test d’une mise à niveau de RDS for SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.UpgradeTesting"></a>

Avant d’effectuer une mise à niveau de version majeure sur votre instance de base de données, vous devez tester soigneusement la compatibilité de votre base de données et de toutes les applications qui y accèdent avec la nouvelle version. Nous vous recommandons d’utiliser la procédure suivante.

**Pour tester une mise à niveau de version majeure**

1. Consultez la [mise à niveau de SQL Server](https://docs.microsoft.com/en-us/sql/database-engine/install-windows/upgrade-sql-server) dans la documentation Microsoft pour la nouvelle version du moteur de base de données afin de voir s’il existe des problèmes de compatibilité susceptibles d’affecter votre base de données ou vos applications.

1. Si votre instance de base de données utilise un groupe d’options personnalisé, créez un nouveau groupe d’options compatible avec la version vers laquelle vous procédez à la mise à niveau. Pour plus d’informations, consultez [Considérations relatives au groupe d'options](USER_UpgradeDBInstance.SQLServer.Considerations.md#USER_UpgradeDBInstance.SQLServer.OGPG.OG).

1. Si votre instance de base de données utilise un groupe de paramètres personnalisé, créez un nouveau groupe de paramètres compatible avec la version vers laquelle vous procédez à la mise à niveau. Pour plus d’informations, consultez [Considérations relatives au groupe de paramètres](USER_UpgradeDBInstance.SQLServer.Considerations.md#USER_UpgradeDBInstance.SQLServer.OGPG.PG).

1. Créez un instantané de base de données de l’instance de base de données à mettre à niveau. Pour plus d’informations, consultez [Création d’un instantané de base de données pour une instance de base de données mono-AZ pour Amazon RDS](USER_CreateSnapshot.md).

1. Restaurez l’instantané de base de données pour créer une nouvelle instance de base de données de test. Pour plus d’informations, consultez [Restauration d’une instance de base de données](USER_RestoreFromSnapshot.md).

1. Modifiez cette nouvelle instance de base de données de test pour la mettre à niveau vers la nouvelle version, en utilisant l’une des méthodes suivantes :
   + [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. Évaluez le stockage utilisé par l’instance mise à niveau pour déterminer si la mise à niveau requiert un stockage supplémentaire. 

1. Exécutez sur l’instance de base de données mise à niveau autant de tests d’assurance qualité que nécessaire pour garantir que votre base de données et votre application fonctionnent correctement avec la nouvelle version. Implémentez tous les nouveaux tests requis pour évaluer l’impact des éventuels problèmes de compatibilité que vous avez identifiés à l’étape 1. Testez toutes les fonctions et procédures stockées. Dirigez les versions de test de vos applications vers l’instance de base de données mise à niveau. 

1. En cas de succès de tous les tests, effectuez la mise à niveau sur votre instance de base de données de production. Nous vous recommandons de ne pas autoriser les opérations d’écriture sur l’instance de base de données tant que vous n’avez pas confirmé que tout fonctionne correctement. 

## Mise à niveau d’une instance de base de données SQL Server
<a name="USER_UpgradeDBInstance.SQLServer.Upgrading"></a>

Pour plus d’informations sur la mise à niveau manuelle ou automatique d’une instance de base de données SQL Server, consultez les ressources suivantes :
+ [Mise à niveau d'une version du moteur d'une instance de base de données](USER_UpgradeDBInstance.Upgrading.md)
+ [Bonnes pratiques de mise à niveau de SQL Server 2008 R2 vers SQL Server 2016 sur 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/)

**Important**  
Si vous avez des instantanés chiffrés à l'aide de ce logiciel AWS KMS, nous vous recommandons de lancer une mise à niveau avant la fin du support. 

## Mise à niveau des instances de base de données obsolètes avant la fin de la prise en charge
<a name="USER_UpgradeDBInstance.SQLServer.DeprecatedVersions"></a>

Lorsqu’une version majeure est obsolète, vous ne pouvez pas l’installer sur de nouvelles instances de base de données. RDS va essayer de mettre automatiquement à niveau toutes les instances de base de données existantes. 

Si vous devez restaurer une instance de base de données obsolète, vous pouvez effectuer une point-in-time restauration (PITR) ou restaurer un instantané. Cela vous donne un accès temporaire à une instance de base de données qui utilise la version considérée comme obsolète. Cependant, une fois qu’une version majeure est totalement obsolète, ces instances de base de données sont également automatiquement mises à niveau vers une version prise en charge. 