

# Solução de problemas para atualização no local de Aurora MySQL
<a name="AuroraMySQL.Upgrading.Troubleshooting"></a>

Use as dicas a seguir para ajudar a solucionar problemas com as atualizações no local do Aurora MySQL. Estas dicas não se aplicam a clusters de banco de dados do Aurora Serverless.


| Motivo para a atualização no local ser cancelada ou lenta | Efeito | Solução para permitir que a atualização no local seja concluída dentro da janela de manutenção | 
| --- | --- | --- | 
| A réplica associada entre regiões do Aurora ainda não foi corrigida | Aurora cancela a atualização. | Atualize a réplica entre regiões do Aurora e tente novamente. | 
| Cluster tem transações XA no estado preparado | Aurora cancela a atualização. | Confirmar ou reverter todas as transações XA preparadas. | 
| O cluster está processando qualquer instrução DDL (Data Definition Language) | Aurora cancela a atualização. | Considere esperar e executar a atualização depois que todas as instruções DDL estiverem concluídas. | 
| Cluster tem alterações não confirmadas para muitas linhas | A atualização pode levar muito tempo. |  O processo de atualização reverte as alterações não confirmadas. O indicador para esta condição é o valor de `TRX_ROWS_MODIFIED` na tabela `INFORMATION_SCHEMA.INNODB_TRX`. Considere executar a atualização somente depois que todas as grandes transações forem confirmadas ou revertidas.  | 
| Cluster tem um número elevado de registros para desfazer | A atualização pode levar muito tempo. |  Mesmo que as transações não confirmadas não afetem um grande número de linhas, podem envolver um grande volume de dados. Por exemplo, você pode inserir BLOBs grandes. O Aurora não detecta nem gera automaticamente um evento para esse tipo de atividade de transação. O indicador para essa condição é o tamanho da lista de histórico (HLL). O processo de atualização reverte as alterações não confirmadas. É possível conferir o HLL na saída do comando `SHOW ENGINE INNODB STATUS` SQL ou diretamente usando a seguinte consulta SQL: <pre>SELECT count FROM information_schema.innodb_metrics WHERE name = 'trx_rseg_history_len';</pre> Também é possível monitorar a métrica `RollbackSegmentHistoryListLength` no Amazon CloudWatch. Pense em realizar a atualização somente quando o HLL for menor.  | 
| O cluster está no processo de confirmação de uma grande transação de log binário | A atualização pode levar muito tempo. |  O processo de atualização aguarda até que as alterações de log binário sejam aplicadas. Mais transações ou instruções DDL podem começar durante esse período, retardando ainda mais o processo de atualização. Agende o processo de atualização quando o cluster não estiver ocupado gerando alterações de replicação de log binário. O Aurora não detecta nem gera automaticamente um evento para esta condição.  | 
| Inconsistências em esquemas resultantes da remoção ou corrupção de arquivos | Aurora cancela a atualização. |  Altere o mecanismo de armazenamento padrão para tabelas temporárias do MyISAM para o InnoDB. Siga estas etapas: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Upgrading.Troubleshooting.html)  | 
| O usuário mestre foi excluído. | Aurora cancela a atualização. |   Não exclua o usuário mestre.  No entanto, se por algum motivo você excluir o usuário mestre, restaure-o usando os seguintes comandos SQL: <pre>CREATE USER 'master_username'@'%' IDENTIFIED BY 'master_user_password' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK;<br /><br />GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, <br />LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, <br />TRIGGER, LOAD FROM S3, SELECT INTO S3, INVOKE LAMBDA, INVOKE SAGEMAKER, INVOKE COMPREHEND ON *.* TO 'master_username'@'%' WITH GRANT OPTION;</pre>  | 

Para ver mais detalhes sobre a solução de problemas que fazem com que as verificações prévias de atualização falhem, consulte os seguintes blogs:
+ [Amazon Aurora MySQL version 2 (with MySQL 5.7 compatibility) to version 3 (with MySQL 8.0 compatibility) upgrade checklist, Part 1](https://aws.amazon.com/blogs/database/amazon-aurora-mysql-version-2-with-mysql-5-7-compatibility-to-version-3-with-mysql-8-0-compatibility-upgrade-checklist-part-1/)
+ [Amazon Aurora MySQL version 2 (with MySQL 5.7 compatibility) to version 3 (with MySQL 8.0 compatibility) upgrade checklist, Part 2](https://aws.amazon.com/blogs/database/amazon-aurora-mysql-version-2-with-mysql-5-7-compatibility-to-version-3-with-mysql-8-0-compatibility-upgrade-checklist-part-2/)

 Você pode usar as etapas a seguir para executar suas próprias verificações para algumas das condições na tabela anterior. Dessa forma, você pode agendar a atualização em um momento em que você sabe que o banco de dados está em um estado onde a atualização pode ser concluída com sucesso e rapidamente. 
+  Você pode verificar se há transações XA abertas executando a instrução `XA RECOVER`. Você pode então confirmar ou reverter as transações XA antes de iniciar a atualização. 
+  Você pode verificar se há instruções DDL executando uma instrução `SHOW PROCESSLIST` e procurando `CREATE`, `DROP`, `ALTER`, `RENAME` e `TRUNCATE` na saída. Permita que todas as instruções DDL terminem antes de iniciar a atualização. 
+  Você pode verificar o número total de linhas não confirmadas consultando a tabela `INFORMATION_SCHEMA.INNODB_TRX`. A tabela contém uma linha para cada transação. A coluna `TRX_ROWS_MODIFIED` contém o número de linhas modificadas ou inseridas pela transação. 
+  Você pode verificar o comprimento da lista de histórico do InnoDB executando a instrução `SHOW ENGINE INNODB STATUS SQL` e procurando o `History list length` na saída. Você também pode verificar o valor diretamente executando a seguinte consulta: 

  ```
  SELECT count FROM information_schema.innodb_metrics WHERE name = 'trx_rseg_history_len';
  ```

   O comprimento da lista de histórico corresponde à quantidade de informações desfeitas armazenadas pelo banco de dados para implementar o controle de simultaneidade de várias versões (MVCC). 