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éterminer les causes des échecs de mise à niveau de la version SQL majeure d'Aurora My
Dans le didacticiel, la mise à niveau de la SQL version 2 vers la version 3 d'Aurora My a réussi. Mais si la mise à niveau avait échoué, vous voudriez savoir pourquoi.
Vous pouvez commencer par utiliser la describe-events
AWS CLI commande pour examiner les événements du cluster de base de données. Cet exemple montre les événements mydbcluster
des 10 dernières heures.
aws rds describe-events \ --source-type db-cluster \ --source-identifier mydbcluster \ --duration 600
Dans ce cas, nous avons eu un échec lors de la pré-vérification de la mise à niveau.
{ "Events": [ { "SourceIdentifier": "mydbcluster", "SourceType": "db-cluster", "Message": "Database cluster engine version upgrade started.", "EventCategories": [ "maintenance" ], "Date": "2024-04-11T13:23:22.846000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster" }, { "SourceIdentifier": "mydbcluster", "SourceType": "db-cluster", "Message": "Database cluster is in a state that cannot be upgraded: Upgrade prechecks failed. For more details, see the upgrade-prechecks.log file. For more information on troubleshooting the cause of the upgrade failure, see https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Upgrading.Troubleshooting.html", "EventCategories": [ "maintenance" ], "Date": "2024-04-11T13:23:24.373000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster" } ] }
Pour diagnostiquer la cause exacte du problème, examinez les journaux de base de données de l'instance de base de données du rédacteur. Lorsqu'une mise à niveau vers Aurora My SQL version 3 échoue, l'instance du rédacteur contient un fichier journal portant le nomupgrade-prechecks.log
. Cet exemple montre comment détecter la présence de ce journal, puis comment le télécharger dans un fichier local pour examen.
aws rds describe-db-log-files --db-instance-identifier mydbcluster-instance \ --query '*[].[LogFileName]' --output text error/mysql-error-running.log error/mysql-error-running.log.2024-04-11.20 error/mysql-error-running.log.2024-04-11.21 error/mysql-error.log external/mysql-external.log upgrade-prechecks.log aws rds download-db-log-file-portion --db-instance-identifier mydbcluster-instance \ --log-file-name upgrade-prechecks.log \ --starting-token 0 \ --output text >upgrade_prechecks.log
Le upgrade-prechecks.log
fichier est au JSON format. Nous le téléchargeons en utilisant l'--output text
option pour éviter d'encoder la JSON sortie dans un autre JSON wrapper. Pour les mises à niveau d'Aurora My SQL version 3, ce journal inclut toujours certains messages d'information et d'avertissement. Il inclut uniquement des messages d'erreur si la mise à niveau échoue. Si la mise à niveau réussit, le fichier journal n'est pas créé du tout.
Pour résumer toutes les erreurs et afficher les champs d'objet et de description associés, vous pouvez exécuter la commande grep -A 2 '"level":
"Error"'
sur le contenu du upgrade-prechecks.log
fichier. Cela permet d'afficher chaque ligne d'erreur et les deux lignes qui la suivent. Elles contiennent le nom de l'objet de base de données correspondant et des conseils sur la façon de corriger le problème.
$
cat upgrade-prechecks.log | grep -A 2 '"level": "Error"' "level": "Error", "dbObject": "problematic_upgrade.dangling_fulltext_index", "description": "Table `problematic_upgrade.dangling_fulltext_index` contains dangling FULLTEXT index. Kindly recreate the table before upgrade."
Dans cet exemple, vous pouvez exécuter la SQL commande suivante sur la table en cause pour tenter de résoudre le problème, ou vous pouvez recréer la table sans l'index suspendu.
OPTIMIZE TABLE problematic_upgrade.dangling_fulltext_index;
Réessayez ensuite la mise à niveau.