Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Individuazione dei motivi degli errori di aggiornamento di Aurora My SQL major version
Nel tutorial, l'aggiornamento da Aurora My SQL versione 2 alla versione 3 è riuscito. Ma se l'aggiornamento non fosse riuscito, vorresti sapere perché.
È possibile iniziare utilizzando il describe-events
AWS CLI comando per esaminare gli eventi del cluster DB. Questo esempio mostra gli eventi delle ultime 10 ore. mydbcluster
aws rds describe-events \ --source-type db-cluster \ --source-identifier mydbcluster \ --duration 600
In questo caso, si è verificato un errore di precontrollo dell'aggiornamento.
{ "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" } ] }
Per diagnosticare la causa esatta del problema, esamina i log del database per l'istanza Writer DB. Quando un aggiornamento ad Aurora My SQL versione 3 fallisce, l'istanza writer contiene un file di registro con il nome. upgrade-prechecks.log
Questo esempio mostra come rilevare la presenza di quel log e quindi scaricarlo in un file locale per l'analisi.
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
Il upgrade-prechecks.log
file è in JSON formato. Lo scarichiamo utilizzando l'--output text
opzione per evitare di codificare l'JSONoutput all'interno di un altro JSON wrapper. Per gli aggiornamenti di Aurora My SQL versione 3, questo registro include sempre determinati messaggi informativi e di avviso. Include messaggi di errore solo se l'aggiornamento non riesce. Se l'aggiornamento riesce, il file di log non viene prodotto.
Per riepilogare tutti gli errori e visualizzare i campi relativi all'oggetto e alla descrizione associati, è possibile eseguire il comando grep -A 2 '"level":
"Error"'
sul contenuto del file. upgrade-prechecks.log
In questo modo viene visualizzata ogni riga di errore e le due righe successive. Queste contengono il nome dell'oggetto di database corrispondente e le indicazioni su come correggere il problema.
$
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."
In questo esempio, è possibile eseguire il SQL comando seguente sulla tabella che causa il problema per cercare di risolvere il problema oppure è possibile ricreare la tabella senza l'indice pendente.
OPTIMIZE TABLE problematic_upgrade.dangling_fulltext_index;
Quindi riprova a eseguire l'aggiornamento.