Supervision de la réplication en lecture - Amazon Relational Database Service

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.

Supervision de la réplication en lecture

Vous pouvez superviser le statut d'un réplica en lecture de différentes manières. La RDS console Amazon indique l'état d'une réplique lue dans la section Réplication de l'onglet Connectivité et sécurité dans les détails de la réplique lue. Pour consulter les détails d'une réplique en lecture, choisissez le nom de la réplique en lecture dans la liste des instances de base de données de la RDS console Amazon.

Statut du réplica en lecture

Vous pouvez également voir l'état d'une réplique lue à l'aide de la AWS CLI describe-db-instances commande ou de l'RDSAPIDescribeDBInstancesopération Amazon.

Le statut d'un réplica en lecture peut avoir les valeurs suivantes :

  • replicating (réplication en cours) – Le réplica en lecture réplique correctement.

  • réplication dégradée (SQLserveur et Postgre SQL uniquement) : les répliques reçoivent des données de l'instance principale, mais il est possible qu'une ou plusieurs bases de données ne soient pas mises à jour. Cela peut se produire, par exemple, lorsqu'un réplica est en train de configurer des bases de données nouvellement créées. Cela peut également se produire lorsque des modifications d'objets non prises en charge DDL ou volumineuses sont apportées dans l'environnement bleu d'un déploiement bleu/vert.

    L'état ne passe pas de replication degraded à error, à moins qu'une erreur ne se produise pendant l'état dégradé.

  • error (erreur) – Une erreur s'est produite dans le cadre de la réplication. Vérifiez le champ Erreur de réplication dans la RDS console Amazon ou dans le journal des événements pour déterminer l'erreur exacte. Pour plus d'informations sur la résolution d'une erreur de réplication, consultez Résolution d'un problème lié à SQL la réplique My read.

  • terminé (MariaDB, SQL My ou SQL Postgre uniquement) : la réplication est terminée. Cela se produit si la réplication est arrêtée pendant plus de trente jours consécutifs, manuellement ou en raison d'une erreur de réplication. Dans ce cas, Amazon RDS met fin à la réplication entre l'instance de base de données principale et toutes les répliques de lecture. Amazon RDS fait cela pour éviter des besoins de stockage accrus sur l'instance de base de données source et des temps de basculement prolongés.

    Une réplication interrompue peut affecter le stockage, car les journaux peuvent croître en taille et en nombre en raison du volume élevé des messages d'erreur consignés dans le journal. Une réplication interrompue peut également affecter la reprise après échec en raison du temps RDS nécessaire à Amazon pour gérer et traiter le grand nombre de journaux pendant la restauration.

  • terminated (arrêté) (Oracle uniquement) – La réplication est arrêtée. Cela se produit si la réplication est arrêtée pendant plus de 8 heures car l'espace de stockage restant sur le réplica en lecture est insuffisant. Dans ce cas, Amazon RDS met fin à la réplication entre l'instance de base de données principale et la réplique de lecture concernée. Ce statut est un état terminal et le réplica en lecture doit être recréé.

  • arrêté (MariaDB ou SQL My only) — La réplication s'est arrêtée en raison d'une demande initiée par le client.

  • point d'arrêt de réplication défini (Mon SQL uniquement) : un point d'arrêt initié par le client a été défini à l'aide de la procédure stockée et la réplication est en cours.

  • point d'arrêt de réplication atteint (mon SQL seul) : un point d'arrêt initié par le client a été défini à l'aide de la procédure stockée et la réplication est arrêtée car le point d'arrêt a été atteint.

Vous pouvez voir où une instance de base de données est répliquée et, le cas échéant, vérifier son état de réplication. Sur la page Bases de données de la RDS console, la colonne Rôle indique Principal. Choisissez son nom d'instance de base de données. Sur sa page détaillée, dans l'onglet Connectivité et sécurité, son état de réplication se trouve sous Réplication.

Surveillance du retard de réplication

Vous pouvez surveiller le délai de réplication sur Amazon CloudWatch en consultant la RDS ReplicaLag métrique Amazon.

Pour MariaDB et SQL My, ReplicaLag la métrique indique la valeur du champ de Seconds_Behind_Master la commande. SHOW REPLICA STATUS Les causes courantes du retard de réplication pour My SQL et MariaDB sont les suivantes :

  • Une indisponibilité du réseau.

  • L'écriture dans des tables avec des index sur un réplica en lecture. Si le paramètre read_only n'a pas pour valeur 0 sur le réplica en lecture, il peut interrompre la réplication.

  • En utilisant un moteur de stockage non transactionnel tel que My. ISAM La réplication n'est prise en charge que pour le moteur de stockage InnoDB sur My SQL et le moteur de stockage XtraDB sur MariaDB.

Note

Les versions précédentes de MariaDB et SQL My SHOW SLAVE STATUS utilisaient à la place de. SHOW REPLICA STATUS Si vous utilisez une version de MariaDB antérieure à 10.5 ou une version SQL My antérieure à 8.0.23, utilisez. SHOW SLAVE STATUS

Lorsque la métrique ReplicaLag atteint 0, le réplica a rattrapé l'instance de bases de données principale. Si la métrique ReplicaLag retourne -1, la réplication n'est actuellement pas active. ReplicaLag = -1 est équivalent à Seconds_Behind_Master = NULL.

Pour Oracle, la métrique ReplicaLag correspond à la somme de la valeur Apply Lag et à la différence entre la durée actuelle et la valeur DATUM_TIME du retard appliqué. La valeur DATUM_TIME correspond à la dernière heure à laquelle le réplica en lecture a reçu des données de son instance de base de données source. Pour plus d'informations, consultez V$ DATAGUARD _ STATS dans la documentation Oracle.

Pour SQL Server, la ReplicaLag métrique est le délai maximal des bases de données qui ont pris du retard, en secondes. Par exemple, si vous avez deux bases de données qui accusent respectivement un retard de 5 secondes et 10 secondes, alors ReplicaLag a pour valeur 10 secondes. La métrique ReplicaLag renvoie la valeur de la requête suivante.

SELECT MAX(secondary_lag_seconds) max_lag FROM sys.dm_hadr_database_replica_states;

Pour plus d'informations, veuillez consulter secondary_lag_seconds dans la documentation Microsoft.

ReplicaLagrenvoie -1 s'il n'est pas RDS possible de déterminer le décalage, par exemple lors de la configuration de la réplique ou lorsque la réplique lue est dans son error état.

Note

Les nouvelles bases de données ne sont pas incluses dans le calcul du retard tant qu'elles ne sont pas accessibles sur le réplica en lecture.

Pour PostgreSQL, la ReplicaLag métrique renvoie la valeur de la requête suivante.

SELECT extract(epoch from now() - pg_last_xact_replay_timestamp()) AS reader_lag

SQLLes versions 9.5.2 et ultérieures de Postgre utilisent des emplacements de réplication physiques pour gérer la conservation du journal write ahead (WAL) sur l'instance source. Pour chaque instance de réplication en lecture interrégionale, Amazon RDS crée un emplacement de réplication physique et l'associe à l'instance. Deux CloudWatch indicateurs Amazon, Oldest Replication Slot Lag etTransaction Logs Disk Usage, montrent à quel point les répliques les plus en retard se situent en termes de WAL données reçues et de quantité de stockage utilisée pour les WAL données. La valeur Transaction Logs Disk Usage peut considérablement augmenter lorsqu'un réplica en lecture entre régions présente un retard important.

Pour plus d'informations sur la surveillance d'une instance de base de données avec CloudWatch, consultezSurveillance des métriques RDS avec Amazon CloudWatch.