O Database Autonomy Service (DAS) oferece o recurso de análise de locks para visualizar e analisar deadlocks, bloqueios de transações e esperas por metadata locks em um banco de dados. Esse recurso facilita a identificação e a resolução de problemas de espera por locks, garantindo a estabilidade do banco de dados.
Pré-requisitos
-
A instância de banco de dados deve executar um dos seguintes mecanismos:
ApsaraDB RDS for MySQL
Banco de dados MySQL autogerenciado
PolarDB for MySQL
PolarDB-X 2.0
A instância deve estar conectada ao DAS e com o estado Normal Access. Para mais informações, consulte Conectar uma instância de banco de dados ao DAS.
Precauções
O recurso de análise de deadlocks não analisa deadlocks que contenham a seguinte mensagem: TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION.
Recursos
A análise de locks permite realizar análises multidimensionais de deadlocks, bloqueios de transações e esperas por metadata locks em uma instância de banco de dados.
Os recursos de análise completa de deadlocks e outras análises de locks têm suporte apenas para instâncias do ApsaraDB RDS for MySQL e clusters do PolarDB for MySQL. Para usar esses recursos, ative o DAS Economy Edition ou o DAS Enterprise Edition na instância. O DAS Economy Edition e o DAS Enterprise Edition estão disponíveis apenas em regiões específicas. Para mais informações, consulte a seção Bancos de dados e regiões suportados no tópico "Edições e recursos suportados". Para saber como ativar o DAS Economy Edition ou o DAS Enterprise Edition, consulte a seção Ativar o DAS Economy Edition e o DAS Enterprise Edition no tópico "Ativar e gerenciar o DAS Economy Edition e o DAS Enterprise Edition".
Análise recente de deadlocks: O DAS analisa o log de deadlock mais recente na saída da instrução
SHOW ENGINE INNODB STATUS. Se houver múltiplos deadlocks, apenas o mais recente será analisado. Para mais detalhes, veja a seção Análise recente de deadlocks no tópico "Análise de deadlocks".Análise completa de deadlocks: O DAS examina periodicamente os logs de erros, interpreta as informações de deadlock e executa uma análise abrangente. Esse recurso também possibilita visualizar tendências de deadlocks em um período específico e acessar os detalhes de cada ocorrência. Consulte a seção Análise completa de deadlocks no tópico "Análise de deadlocks" para mais informações.
-
Outras análises de locks: Com base nos dados dos bancos
information_schemaeperformance_schema, o DAS avalia em tempo real os metadata locks e as transações bloqueadas nas sessões atuais da instância. Veja mais em Outras análises de locks.Análise de metadata locks: O DAS deduz a relação de espera por locks e gera o diagrama correspondente usando dados de tabelas como
information_schema.processlist.-
Análise de bloqueio de transações: O DAS examina a relação de bloqueio entre transações e cria o diagrama associado utilizando dados das tabelas
information_schema.processlist,information_schema.innodb_trxeinformation_schema.innodb_lock_waitsouperformance_schema.data_lock_waits. Instâncias com MySQL 5.6 ou 5.7 utilizam dados da tabela information_schema.innodb_lock_waits, enquanto instâncias com MySQL 8.0 usam dados da tabela performance_schema.data_lock_waits.NotaClusters do PolarDB for MySQL que executam MySQL 5.6 não têm suporte para o recurso de análise de bloqueio de transações.
Configurações de parâmetros
Para usar um recurso de análise de deadlocks em uma instância de banco de dados, especifique os parâmetros correspondentes. A tabela a seguir descreve as configurações necessárias para cada funcionalidade.
Recurso de análise de locks | Configuração de parâmetro necessária |
Análise recente de deadlocks | Defina o parâmetro |
Análise completa de deadlocks |
|
Análise de bloqueio de transações em outras análises de locks | Para instâncias do ApsaraDB RDS for MySQL 8.0 ou clusters do PolarDB for MySQL 8.0, defina o parâmetro |
Para modificar os parâmetros da instância de banco de dados, consulte um dos tópicos abaixo conforme o mecanismo utilizado:
ApsaraDB RDS for MySQL: Modificar parâmetros da instância
PolarDB for MySQL: Configurar parâmetros de cluster e nó
Referências
Próximos passos
Quando ocorrer um deadlock ou bloqueio de transação na instância, utilize as informações obtidas pela análise de locks, como os IDs de thread, para examinar a execução das transações relacionadas na página SQL Explorer and Audit. Essa abordagem ajuda a identificar a causa raiz das esperas por locks. Por exemplo, após o início de uma transação e a atualização de linhas específicas, essas linhas ficam bloqueadas. Se a execução da transação se prolongar sem um commit ou rollback explícito ou implícito, as sessões ou transações subsequentes que tentarem atualizar as mesmas linhas entrarão no estado LOCK WAIT.