Ignorer une erreur de réplication pour RDS for MySQL - Amazon Relational Database Service

Ignorer une erreur de réplication pour RDS for MySQL

Amazon RDS fournit un mécanisme qui vous permet d'ignorer une erreur sur vos réplicas en lecture, si l'erreur entraîne une absence de réponse du réplica en lecture et qu'elle n'affecte pas l'intégrité de vos données.

Note

D'abord, vérifiez que l'erreur concernée peut être ignorée en toute sécurité. Dans un utilitaire MySQL, connectez-vous au réplica en lecture et exécutez la commande MySQL suivante.

SHOW REPLICA STATUS\G

Pour plus d’informations sur les valeurs renvoyées, consultez la documentation MySQL.

Les versions précédentes de MySQL utilisaientSHOW SLAVE STATUS à la place de SHOW REPLICA STATUS. Si vous utilisez une version MySQL antérieure à la version 8.0.23, utilisez SHOW SLAVE STATUS.

Vous pouvez ignorer une erreur sur votre réplica en lecture de la manière suivante.

Appel de la procédure mysql.rds_skip_repl_error

Amazon RDS fournit une procédure stockée que vous pouvez appeler pour ignorer une erreur sur vos réplicas en lecture. Connectez-vous d'abord à votre réplica en lecture, puis émettez les commandes appropriées comme illustré ci-après. Pour plus d’informations, consultez Connexion à votre instance de base de données MySQL.

Pour ignorer l'erreur, émettez la commande suivante.

CALL mysql.rds_skip_repl_error;

Cette commande n'a aucun effet si vous l'exécutez sur l'instance de base de données source ou sur un réplica en lecture qui n'a rencontré aucune erreur de réplication.

Pour plus d'informations, telles que les versions de MySQL qui prennent en charge mysql.rds_skip_repl_error, consultez mysql.rds_skip_repl_error.

Important

Si vous essayez d'appeler mysql.rds_skip_repl_error et que vous rencontrez l'erreur suivante : ERROR 1305 (42000): PROCEDURE mysql.rds_skip_repl_error does not exist, mettez à niveau votre instance de base de données MySQL avec la dernière version mineure ou avec l'une des versions mineures minimales répertoriées dans mysql.rds_skip_repl_error.

Définition du paramètre slave_skip_errors

Pour ignorer une ou plusieurs erreurs, vous pouvez définir le paramètre statique slave_skip_errors sur le réplica en lecture. Vous pouvez définir ce paramètre pour ignorer un ou plusieurs codes d'erreur de réplication spécifiques. Actuellement, vous pouvez définir ce paramètre uniquement pour les instances de base de données RDS for MySQL 5.7. Après avoir modifié ce paramètre, veillez à redémarrer votre instance de base de données pour que le nouveau paramètre prenne effet. Pour plus d'informations sur le fonctionnement de ces paramètres, consultez la documentation MySQL :

Nous vous recommandons de définir ce paramètre dans un groupe de paramètres de base de données distinct. Vous pouvez associer ce groupe de paramètres de base de données aux réplicas en lecture qui doivent ignorer les erreurs. Le suivi de cette bonne pratique réduit l'impact potentiel sur d'autres instances de base de données et réplicas en lecture.

Important

La définition d'une valeur autre que par défaut pour ce paramètre peut entraîner une incohérence de la réplication. Ne définissez ce paramètre sur une valeur autre que par défaut que si vous avez épuisé d'autres options pour résoudre le problème et que vous êtes sûr de l'impact potentiel sur les données de votre réplica en lecture.