Pourquoi les connexions de base de données ont-elles été interrompues sur mon instance de base de données RDS ?

Date de la dernière mise à jour : 19/07/2022

Mes connexions à la base de données Amazon Relational Database Service (Amazon RDS) ont soudainement été interrompues, ce qui a provoqué des temps d'arrêt imprévus. Pourquoi mes connexions de base de données ont-elles été interrompues ?

Résolution

Les connexions de bases de données Amazon RDS peuvent être interrompues pour diverses raisons. Pour comprendre la cause de l'interruption de vos connexions de base de données, déterminez si les connexions de base de données ont été interrompues pendant la fenêtre de maintenance de votre instance de base de données RDS ou en dehors.

Si les connexions de base de données sont interrompues pendant la fenêtre de maintenance RDS

Pendant la fenêtre de maintenance de l'instance de base de données, AWS effectue des activités de maintenance qui peuvent entraîner l'interruption des connexions de base de données.

Mise à niveau automatique des versions mineures (si activée sur Amazon RDS)

Quand Amazon RDS désigne une nouvelle version de moteur mineure préférée et que votre instance de base de données exécute une version antérieure, Amazon RDS effectue une mise à niveau pendant la fenêtre de maintenance planifiée si la fonctionnalité Mise à niveau automatique des versions mineures est activée. Cela peut entraîner l'interruption des connexions de base de données pendant la mise à niveau de la version mineure, car toute mise à niveau de version au niveau du moteur implique un temps d'arrêt RDS.

Maintenance du matériel

Amazon RDS planifie la maintenance matérielle lorsque les hôtes sous-jacents de vos instances de base de données s'exécutent sur du matériel dégradé. La maintenance matérielle est effectuée pendant la fenêtre de maintenance configurée pour les instances de base de données. Une notification vous est envoyée par e-mail pour vous informer des opérations de maintenance planifiées. Celle-ci indique notamment l'heure de ces opérations et les zones de disponibilité affectées.

Maintenance du système d'exploitation

Amazon RDS effectue régulièrement des mises à jour du système d'exploitation sous-jacent pendant la fenêtre de maintenance configurée pour votre instance de base de données. Si la mise à jour du système d'exploitation implique un temps d'arrêt, Amazon RDS planifie la maintenance pour la fenêtre de maintenance suivante. Si la mise à jour du système d'exploitation ne nécessite pas de maintenance, vous pouvez reporter la fenêtre de maintenance en ajustant la fenêtre de maintenance préférée. Si une maintenance est requise, la mise à jour du système d'exploitation ne peut pas être reportée et la mise à jour est appliquée pendant la fenêtre de maintenance suivante.

Modifications effectuées sur Amazon RDS en sélectionnant Appliquer dans la fenêtre de maintenance suivante

Lorsque vous effectuez des modifications de votre configuration RDS, vous pouvez choisir d'appliquer les modifications immédiatement ou dans la fenêtre de maintenance suivante. Si vous choisissez d'effectuer les modifications lors de la fenêtre de maintenance suivante, il n'y a pas de temps d'arrêt immédiat. Les modifications suivantes peuvent entraîner des temps d'arrêt lorsqu'elles sont appliquées au cours de la fenêtre de maintenance suivante :

  • Renommer les identifiants d'instance de base de données
  • Modifier les classes d'instances de base de données
  • Modification des périodes de conservation des sauvegardes
  • Modifier les ports de base de données
  • Mettre à niveau la version du moteur de base de données
  • Attacher un nouveau groupe de sous-réseaux

Reportez-vous à Informations sur les paramètres des instances de base de données pour comprendre les paramètres détaillés disponibles qui peuvent être modifiés ainsi que l'impact et les temps d'arrêt des instances de base de données.

Si les connexions de base de données sont interrompues en dehors de la fenêtre de maintenance

Les connexions de base de données peuvent être interrompues si elles atteignent le délai d'expiration du côté client/serveur.

Paramètres de délai d'expiration du client configurés du côté de l'application

Les paramètres de délai d'expiration du client configurés du côté de l'application peuvent entraîner l'interruption des connexions de base de données. Si le temps de traitement d'une requête est trop long, la session peut s'être interrompue de manière inappropriée à partir du côté client. Pour résoudre ce problème, augmentez le paramètre de délai d'expiration du client.

Paramètres de délai d'expiration du serveur configurés dans le groupe de paramètres personnalisé attaché à Amazon RDS

Les keepalives TCP définies de manière excessive entraînent des délais d'expiration de la connexion du client. Les délais d'expiration se produisent lorsque le client est inactif pendant la durée définie dans tcp_keepalives_idle et le nombre de messages défini dans tcp_keepalives_count. Un délai d'expiration peut également se produire lorsqu'une connexion attend une réponse du serveur alors que des requêtes de longue durée sont en cours d'exécution sur l'instance de base de données.

Si le paramètre idle_in_transaction_session_timeout est défini sur une valeur inférieure à la valeur par défaut de 24 heures, toute session qui a été inactive pendant une durée supérieure à la valeur configurée est terminée. Si vous définissez cette valeur de manière excessive, même si les requêtes en cours d'exécution nécessitent plus de temps pour obtenir une réponse du serveur, la connexion est interrompue lorsque la session est inactive pendant une durée supérieure à la valeur de délai d'expiration configurée.

Redémarrage/basculement imprévu de la base de données

Un problème transitoire avec le matériel sous-jacent peut entraîner une perte de communication avec l'instance de base de données. Un problème matériel peut déclencher un basculement dans un déploiement multi-AZ et une récupération dans un déploiement mono-AZ en remplaçant l'hôte sous-jacent. Ce problème a peut-être rendu l'instance défectueuse, car le système de surveillance RDS n'a pas pu communiquer avec l'instance RDS pour effectuer les surveillances de l'état.

Un problème réseau transitoire affecte l'hôte sous-jacent de votre instance de base de données. Le système de surveillance interne détecte ce problème et lance de manière proactive la récupération pour un déploiement mono-AZ et le basculement pour les déploiements multi-AZ.

L'instance de base de données cesse de répondre lorsqu'une charge de base de données élevée entraîne une pénurie de mémoire dans la base de données qui empêche le système de surveillance RDS de contacter l'hôte sous-jacent. Pour éviter le basculement et le redémarrage de votre instance RDS en raison d'une surcharge de base de données, configurez correctement les paramètres de mémoire sur l'instance de base de données.

Un problème transitoire avec le sous-système de stockage sous-jacent peut entraîner une latence élevée pour un volume Amazon Elastic Block Store (Amazon EBS), qui est identifié par un système de surveillance interne. À titre de mesure proactive, le système de surveillance lance la récupération pour un déploiement mono-AZ. Dans un déploiement multi-AZ, un basculement vers l'instance secondaire est effectué.