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.
Déploiements de clusters de bases de données multi-AZ pour Amazon RDS
Un déploiement de cluster de bases de données multi-AZ est un mode de déploiement semi-synchrone à haute disponibilité d'Amazon RDS avec deux instances de base de données répliques lisibles. Un cluster de base de données multi-AZ possède une instance de base de données d'écriture et deux instances de base de données de lecture dans trois zones de disponibilité distinctes d'une même Région AWS. Les clusters de base de données multi-AZ offrent une haute disponibilité, une capacité accrue pour les charges de travail en lecture et une moindre latence en écriture par rapport aux déploiements d'instances de base de données multi-AZ.
Vous pouvez importer des données d'une base de données sur site vers un cluster de bases de données multi-AZ en suivant les instructions dans Importation de données vers une base de données MariaDB ou MySQL Amazon RDS avec un temps d'arrêt réduit.
Vous pouvez acheter des instances de base de données réservées pour un cluster de bases de données multi-AZ. Pour de plus amples informations, veuillez consulter Instances de base de données réservées pour un cluster de bases de données multi-AZ.
La disponibilité et la prise en charge des fonctionnalités varient selon les versions spécifiques de chaque moteur de base de données, et selon les Régions AWS. Pour plus d'informations sur la disponibilité des versions et des régions d'Amazon RDS avec des clusters de base de données multi-AZ, consultezRégions et moteurs de base de données pris en charge pour les clusters de bases de données multi-AZ sur Amazon RDS.
Rubriques
- Disponibilité des classes d'instance pour les clusters de bases de données multi-AZ
- Architecture de cluster de bases de données multi-AZ
- Groupes de paramètres pour les clusters de bases de données multi-AZ
- RDSProxy avec clusters de bases de données multi-AZ
- Retard de réplica et clusters de base de données multi-AZ
- Instantanés de clusters de bases de données multi-AZ
- Création d'un cluster de base de données multi-AZ pour Amazon RDS
- Connexion à un cluster de bases de données multi-AZ pour Amazon RDS
- Connexion automatique d'une ressource AWS de calcul et d'un cluster de base de données multi-AZ pour Amazon RDS
- Modification d'un cluster de base de données multi-AZ pour Amazon RDS
- Mise à niveau de la version du moteur d'un cluster de base de données multi-AZ pour Amazon RDS
- Modification du nom d'un cluster de bases de données multi-AZ pour Amazon RDS
- Redémarrage d'un cluster de base de données multi-AZ et d'instances de base de données de lecture pour Amazon RDS
- Défaillance d'un cluster de base de données multi-AZ pour Amazon RDS
- Configuration de la réplication SQL logique Postgre avec des clusters de bases de données multi-AZ pour Amazon RDS
- Utilisation de répliques de lecture de clusters de bases de données multi-AZ pour Amazon RDS
- Configuration de la réplication externe à partir de clusters de bases de données multi-AZ pour Amazon RDS
- Suppression d'un cluster de base de données multi-AZ pour Amazon RDS
- Limites des clusters de bases de données multi-AZ pour Amazon RDS
Important
Les clusters de base de données multi-AZ sont différents des clusters de base de données Aurora. Pour en savoir plus sur les clusters de base de données Aurora, consultez le Guide de l'utilisateur Amazon Aurora.
Disponibilité des classes d'instance pour les clusters de bases de données multi-AZ
Les déploiements de clusters de bases de données multi-AZ sont pris en charge pour les classes d'instances de base de données suivantes : db.m5d
db.m6gd
db.m6id
db.m6idn
db.r5d
,db.r6gd
,db.x2iedn
,db.r6id
,db.r6idn
, et. db.c6gd
Note
Les classes d'instance c6gd sont les seules à prendre en charge la taille de l'medium
instance.
Pour plus d'informations sur les classes d'instance de base de données, veuillez consulter Classes d'instances de base de données .
Architecture de cluster de bases de données multi-AZ
Avec un cluster de base de données multi-AZ, Amazon RDS réplique les données de l'instance de base de données du rédacteur vers les deux instances de base de données du lecteur en utilisant les capacités de réplication natives du moteur de base de données. Lorsqu'une modification est apportée à l'instance de base de données d'écriture, elle est transmise à chaque instance de base de données de lecture.
Les déploiements de clusters de bases de données multi-AZ utilisent une réplication semi-synchrone, qui nécessite un accusé de réception d'au moins une instance de base de données de lecture pour qu'une modification soit appliquée. Il n'est pas nécessaire de confirmer que les événements ont été entièrement exécutés et validés sur tous les réplicas.
Les instances de base de données d'écriture font office de cibles de basculement automatique et traitent également le trafic en lecture pour accroître le débit de lecture des applications. En cas de panne sur votre instance de base de données d'écriture, RDS gère le basculement vers l'une des instances de base de données de lecteur. RDSeffectue cette opération en fonction de l'instance de base de données du lecteur qui possède l'enregistrement de modification le plus récent.
Le schéma suivant illustre un cluster de base de données multi-AZ.
Les clusters de base de données multi-AZ ont généralement une latence d'écriture moindre par rapport aux déploiements d'instances de base de données multi-AZ. Ils permettent également d'exécuter des charges de travail en lecture seule sur des instances de base de données de lecteurs. La RDS console affiche la zone de disponibilité de l'instance de base de données du rédacteur et les zones de disponibilité des instances de base de données du lecteur. Vous pouvez également utiliser la describe-db-clustersCLIcommande ou l'escribeDBClustersAPIopération D pour trouver ces informations.
Important
Pour éviter les erreurs de réplication dans RDS les clusters My SQL Multi-AZ DB, nous recommandons vivement que toutes les tables possèdent une clé primaire.
Groupes de paramètres pour les clusters de bases de données multi-AZ
Dans un cluster de base de données multi-AZ, un groupe de paramètres de cluster de base de données sert de conteneur pour les valeurs de configuration du moteur qui sont appliquées à chaque instance de base de données contenue dans le cluster de base de données multi-AZ.
Dans un cluster de base de données multi-AZ, un groupe de paramètres de base de données est défini comme étant le groupe de paramètres de base de données par défaut pour le moteur et la version du moteur de base de données Les paramètres du groupe de paramètres de cluster de base de données s'appliquent à toutes les instances de base de données du cluster.
Pour plus d'informations sur les groupes de paramètres, veuillez consulter Utilisation des groupes de paramètres de clusters de base de données pour les clusters de base de données Multi-AZ.
RDSProxy avec clusters de bases de données multi-AZ
Vous pouvez utiliser Amazon RDS Proxy pour créer un proxy pour vos clusters de bases de données multi-AZ. En utilisant le RDS proxy, vos applications peuvent regrouper et partager des connexions à des bases de données afin d'améliorer leur capacité à évoluer. Chaque proxy effectue le multiplexage des connexions, également appelé réutilisation des connexions. Avec le multiplexage, RDS Proxy exécute toutes les opérations d'une transaction en utilisant une connexion de base de données sous-jacente. RDSLe proxy peut également réduire à une seconde ou moins le temps d'arrêt lié à une mise à niveau de version mineure d'un cluster de base de données multi-AZ. Pour plus d'informations sur les avantages du RDS proxy, consultezUtilisation d'Amazon RDS Proxy .
Pour configurer un proxy pour un cluster de base de données multi-AZ, choisissez Create an RDS Proxy lors de la création du cluster. Pour obtenir des instructions sur la création et la gestion des points de terminaison du RDS proxy, consultezUtilisation des points de terminaison Amazon RDS Proxy.
Retard de réplica et clusters de base de données multi-AZ
Le retard de réplica est la différence de temps entre la dernière transaction au niveau de l'instance de base de données d'enregistreur et la dernière transaction appliquée sur une instance de base de données de lecteur. La CloudWatch métrique Amazon ReplicaLag
représente ce décalage horaire. Pour plus d'informations sur CloudWatch les métriques, consultezSurveillance des métriques RDS avec Amazon CloudWatch.
Bien que les clusters de base de données Multi-AZ permettent des performances d'écriture élevées, un retard de réplica peut toujours se produire en raison de la nature de la réplication basée sur le moteur. Étant donné que tout basculement doit d'abord résoudre le retard du réplica avant de promouvoir une nouvelle instance de base de données d'enregistreur, la surveillance et la gestion de ce retard de réplica sont à prendre en compte.
RDSPour les clusters de base de données My SQL Multi-AZ, le temps de basculement dépend du délai de réplication des deux instances de base de données de lecteur restantes. Les deux instances de base de données de lecteur doivent appliquer des transactions non appliquées avant que l'une d'elles ne soit promue vers la nouvelle instance de base de données de rédacteur.
RDSPour les clusters de base de données SQL multi-AZ Postgre, le temps de basculement dépend du délai de réplication le plus faible des deux instances de base de données de lecteur restantes. L'instance de base de données de lecteur ayant le plus faible décalage de réplica doit appliquer les transactions non appliquées avant d'être promue en tant que nouvelle instance de base de données de rédacteur.
Pour un didacticiel expliquant comment créer une CloudWatch alarme lorsque le délai de réplication dépasse une durée définie, voirTutoriel : Création d'une CloudWatch alarme Amazon pour le retard de réplication d'un cluster de bases de données multi-AZ pour Amazon RDS.
Causes courantes du retard de réplica
En général, le retard de réplica se produit lorsque la charge de travail en écriture est trop élevée pour que les instances de base de données du lecteur puissent appliquer efficacement les transactions. Diverses charges de travail peuvent entraîner un retard de réplica temporaire ou continu. Voici quelques exemples de causes courantes :
-
Une concurrence d'écriture élevée ou une mise à jour par lots lourde sur l'instance de base de données de l'enregistreur, ce qui entraîne un retard du processus d'application sur les instances de base de données du lecteur.
-
Une charge de travail de lecture lourde qui utilise des ressources sur une ou plusieurs instances de base de données du lecteur. L'exécution de requêtes lentes ou volumineuses peut affecter le processus d'application et entraîner un retard de réplica.
-
Les transactions qui modifient de grandes quantités de données ou d'DDLinstructions peuvent parfois entraîner une augmentation temporaire du délai de réplication, car la base de données doit préserver l'ordre de validation.
Atténuation du retard de réplica
Pour les clusters de bases de données multi-AZ RDS pour for My SQL et RDS pour PostgreSQL, vous pouvez atténuer le délai de réplication en réduisant la charge sur votre instance de base de données d'écriture. Vous pouvez également utiliser le contrôle de flux pour réduire le décalage de réplica. Le contrôle de flux fonctionne en limitant les écritures sur l'instance de base de données d'enregistreur, ce qui garantit que le retard de réplica ne continue pas à augmenter sans limite. La limitation des écritures est obtenue en ajoutant un délai à la fin d'une transaction, ce qui réduit le débit d'écriture sur l'instance de base de données d'enregistreur. Bien que le contrôle de flux ne garantit pas l'élimination du retard, il peut contribuer à réduire le retard global pour de nombreuses charges de travail. Les sections suivantes fournissent des informations sur l'utilisation du contrôle de flux avec RDS for My SQL et RDS pour PostgreSQL.
Atténuer le délai de réplication grâce au contrôle du flux pour RDS for My SQL
Lorsque vous utilisez RDS des clusters My SQL Multi-AZ DB, le contrôle de flux est activé par défaut à l'aide du paramètre rpl_semi_sync_master_target_apply_lag
dynamique. Ce paramètre spécifie la limite supérieure souhaitée pour le décalage du réplica. Lorsque le délai de réplication approche de cette limite configurée, le contrôle de flux limite les transactions d'écriture sur l'instance de base de données du rédacteur pour essayer de contenir le décalage de réplication en dessous de la valeur spécifiée. Dans certains cas, le décalage de réplica peut dépasser la limite spécifiée. Par défaut, ce paramètre est défini à 120 secondes. Pour désactiver le contrôle du flux, réglez ce paramètre sur sa valeur maximale de 86 400 secondes (un jour).
Pour afficher le délai de courant injecté par le contrôle de flux, affichez le paramètre Rpl_semi_sync_master_flow_control_current_delay
en exécutant la requête suivante.
SHOW GLOBAL STATUS like '%flow_control%';
Votre sortie doit ressembler à ce qui suit :
+-------------------------------------------------+-------+
| Variable_name | Value |
+-------------------------------------------------+-------+
| Rpl_semi_sync_master_flow_control_current_delay | 2010 |
+-------------------------------------------------+-------+
1 row in set (0.00 sec)
Note
Le délai est affiché en microsecondes.
Lorsque Performance Insights est activé RDS pour un cluster de base de données My SQL Multi-AZ, vous pouvez surveiller l'événement d'attente correspondant à une SQL instruction indiquant que les requêtes ont été retardées par un contrôle de flux. Lorsqu'un retard a été introduit par un contrôle de flux, vous pouvez consulter l'événement d'attente /wait/synch/cond/semisync/semi_sync_flow_control_delay_cond
correspondant à la SQL déclaration sur le tableau de bord Performance Insights. Pour afficher ces métriques, assurez-vous que le schéma de performances est activé. Pour plus d'informations sur Performance Insights, veuillez consulter Surveillance de la charge de base de données avec Performance Insights sur RDSAmazon.
Atténuer le retard de réplication grâce au contrôle du flux RDS pour Postgre SQL
Lorsque vous utilisez des clusters de base RDS de données Postgre SQL Multi-AZ, le contrôle de flux est déployé sous forme d'extension. Il active un processus de travail en arrière-plan pour toutes les instances de base de données du cluster de base de données. Par défaut, les processus de travail en arrière-plan sur les instances de base de données de lecteur communiquent le retard actuel du réplica avec le processus de travail en arrière-plan sur l'instance de base de données d'enregistreur. Si le retard dépasse deux minutes sur n'importe quelle instance de base de données de lecteur, le processus de travail en arrière-plan de l'instance de base de données d'enregistreur ajoute un délai à la fin d'une transaction. Pour contrôler le seuil de retard, utilisez le paramètre flow_control.target_standby_apply_lag
.
Lorsqu'un contrôle de flux limite un SQL processus Postgre, l'événement d'Extension
attente et Performance pg_stat_activity
Insights l'indiquent. La fonction get_flow_control_stats
affiche des détails sur le délai actuellement ajouté.
Le contrôle du flux peut profiter à la plupart des charges de travail de traitement des transactions en ligne (OLTP) qui comportent des transactions courtes mais très simultanées. Si le retard est causé par des transactions de longue durée, telles que des opérations par lots, le contrôle de flux n'offre pas un avantage aussi important.
Vous pouvez désactiver le contrôle de flux en supprimant l'extension de shared_preload_libraries
et en redémarrant votre instance de base de données.
Instantanés de clusters de bases de données multi-AZ
Amazon RDS crée et enregistre des sauvegardes automatisées de votre cluster de base de données multi-AZ pendant la fenêtre de sauvegarde configurée. RDScrée un instantané du volume de stockage de votre cluster de base de données, en sauvegardant l'intégralité du cluster et pas seulement les instances individuelles.
Vous pouvez également effectuer des sauvegardes manuelles de votre cluster de base de données multi-AZ. Pour les sauvegardes à très long terme, envisagez d'exporter les données des instantanés vers Amazon S3. Pour de plus amples informations, veuillez consulter Création d'un instantané de cluster de base de données multi-AZ pour Amazon RDS.
Vous pouvez restaurer un cluster de base de données Multi-AZ à un moment précis dans le temps, en créant un nouveau cluster de base de données Multi-AZ. Pour obtenir des instructions, consultez Restauration d'un cluster de base de données multi-AZ à une date définie.
Vous pouvez également restaurer un instantané de cluster de base de données multi-AZ vers un déploiement mono-AZ ou un déploiement d'instance de base de données multi-AZ. Pour obtenir des instructions, consultez Restauration d'un instantané de cluster de bases de données multi-AZ dans une instance de base de données.