Quando ocorrem deadlocks na instância ApsaraDB RDS for MySQL, use o recurso Lock Analysis para analisar visualmente deadlocks recentes, bloqueios de transações e esperas por locks de metadados. Esse recurso ajuda a identificar rapidamente a causa raiz dos deadlocks e a melhorar a estabilidade do banco de dados.
Pré-requisitos
A instância deve ser uma das seguintes edições:
RDS MySQL 8.4 High-availability Edition ou Cluster Edition
RDS MySQL 8.0 High-availability Edition , Three-node Enterprise Edition, ou Cluster Edition
RDS MySQL 5.7 High-availability Edition , Three-node Enterprise Edition, ou Cluster Edition
RDS MySQL 5.6 High-availability Edition
RDS MySQL 5.5 High-availability Edition
Na página Basic Information da instância, verifique se o campo Type and Edition está definido como High-availability Edition , Three-node Enterprise Edition, ou Cluster Edition, e se o Database Engine é MySQL.
Instâncias Basic Edition não oferecem suporte ao Lock Analysis.
Features
O recurso Lock Analysis oferece análise multidimensional de deadlocks, bloqueios de transações e esperas por locks de metadados na instância de banco de dados.
Os recursos Full Deadlock Analysis e Other Lock Analysis exigem o DAS Professional Edition ou DAS Enterprise Edition, disponíveis apenas em regiões específicas. Para mais informações, consulte Databases and regions supported by different DAS editions. Para ativar o DAS Professional Edition ou DAS Enterprise Edition, consulte Gerencie logs de auditoria e serviços de O&M do DAS (antigo Professional Edition).
Last Deadlock Analysis: O DAS analisa o log de deadlock mais recente retornado pelo comando
SHOW ENGINE INNODB STATUS.Full Deadlock Analysis: O DAS verifica periodicamente o log de erros para interpretar informações de deadlock e executar uma análise abrangente. Também é possível visualizar tendências de deadlocks e os detalhes de cada ocorrência em um intervalo de tempo especificado.
-
Other Lock Analysis: O DAS utiliza dados de
information_schemaeperformance_schemapara analisar em tempo real locks de metadados e bloqueios de transações nas sessões atuais da instância de banco de dados.Análise de locks de metadados: O DAS infere relações de espera por locks a partir de dados em tabelas como
information_schema.processliste as visualiza em um gráfico.Transaction blocking analysis: O DAS examina as relações de bloqueio entre transações e as representa graficamente. Para isso, utiliza dados de
information_schema.processlist,information_schema.innodb_trxe também deinformation_schema.innodb_lock_waits(para MySQL 5.6 e 5.7) ouperformance_schema.data_lock_waits(para MySQL 8.0).
Requisitos de parâmetros da instância
Para usar os recursos do Lock Analysis, configure os parâmetros necessários na instância de banco de dados de destino.
Feature | Required parameters |
Last Deadlock Analysis | Ative o parâmetro |
Full Deadlock Analysis |
|
Transaction blocking analysis em Other Lock Analysis | Para instâncias RDS MySQL 8.0, é necessário ativar o parâmetro |
Para modificar parâmetros da instância, consulte Configure instance parameters.
Observações de uso
Atualmente, o Lock Analysis não oferece suporte à análise de deadlocks que contenham a descrição "TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION".
Procedimento
Acesse a página RDS Instance List, selecione uma região no topo e clique em ID da instância de destino.
No painel de navegação à esquerda, escolha Autonomy Services > Diagnostics.
Clique em aba Lock Analysis.
Na página Lock Analysis, clique em Create Analysis no painel à esquerda.
(Opcional) Se houver detecção de deadlock, localize a nova entrada na lista de diagnósticos e clique em View Details na coluna Details.
-
Na página Lock Analysis, visualize e diagnostique deadlocks recentes na instância de banco de dados.
-
Last Deadlock Analysis
Na aba Last Deadlock Analysis, clique em Create Analysis para analisar o log de deadlock mais recente obtido pelo comando
SHOW ENGINE INNODB STATUS.Selecione um intervalo de tempo para visualizar os resultados do diagnóstico. Na coluna Details de um resultado, clique em View Details para acessar o relatório detalhado.
-
Full Deadlock Analysis
Na aba Full Deadlock Analysis, examine as tendências de deadlocks e os detalhes de cada ocorrência em um intervalo de tempo específico.
-
Other Lock Analysis
Na aba Other Lock Analysis, clique em Create Analysis. Com base nos dados de
information_schemaeperformance_schema, o DAS analisa em tempo real os locks de metadados e os bloqueios de transações na sessão atual da instância.-
Escolha um período para conferir os resultados do diagnóstico.
Clique em ícone
ao lado de uma entrada de resultado para visualizar as estatísticas da análise de locks.-
Na coluna Actions das estatísticas, clique em View Details para abrir o relatório completo e o gráfico de análise de locks.
Passe o mouse sobre uma sessão no gráfico para ver suas relações de espera por locks. Clique em uma sessão para consultar seus detalhes.
-
Próximos passos
Ao detectar um deadlock na instância de banco de dados, use as informações da análise de locks, como o ID do thread da transação, no SQL Explorer and Audit para examinar a execução das transações relacionadas e determinar a causa do problema. Por exemplo, após o início de uma transação que atualiza várias linhas de dados, essas linhas ficam bloqueadas. Se a transação permanecer aberta por muito tempo sem commit ou rollback (incluindo commits e rollbacks implícitos), as sessões ou transações subsequentes que tentarem atualizar as mesmas linhas entrarão em estado LOCK WAIT.