Utilize o recurso de análise de locks para analisar visualmente deadlocks, bloqueios de transações e esperas por locks de metadados no seu banco de dados. Localize e resolva rapidamente problemas de espera por locks para garantir a estabilidade do banco de dados.
Pré-requisitos
-
O banco de dados alvo deve executar um dos seguintes mecanismos:
ApsaraDB RDS for MySQL
MySQL autogerenciado
PolarDB for MySQL
PolarDB-X 2.0
A instância de banco de dados alvo deve estar conectada ao Database Autonomy Service (DAS) com o status 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 consegue analisar deadlocks que contenham a seguinte descrição: TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION.
Recursos
A análise de locks abrange deadlocks, bloqueios de transações e esperas por locks de metadados em uma instância de banco de dados.
Os recursos de análise completa de deadlocks e outras análises de locks são suportados apenas para instâncias de banco de dados ApsaraDB RDS for MySQL e PolarDB for MySQL. Para utilizar esses recursos, ative o Alibaba Cloud Managed Services (anteriormente Economy Edition), disponível apenas em regiões específicas. Para mais informações, consulte Bancos de dados e regiões suportados. Para ativar esse serviço, consulte Gerencie o Alibaba Cloud Managed Services (anteriormente Economy Edition).
Análise recente de deadlocks: O DAS analisa o log de deadlock mais recente retornado pelo comando
SHOW ENGINE INNODB STATUS. Caso ocorram múltiplos deadlocks, apenas o mais recente será analisado. Para mais informações, consulte Análise recente de deadlocks.Análise completa de deadlocks: O DAS analisa periodicamente os logs de erros, interpreta as informações de deadlock e executa uma análise abrangente. Esse recurso também permite visualizar tendências de deadlocks dentro de um intervalo de tempo específico e os detalhes de cada ocorrência. Para mais informações, consulte Análise completa de deadlocks.
-
Outras análises de locks: O DAS analisa locks de metadados e transações bloqueadas nas sessões atuais da sua instância de banco de dados em tempo real, utilizando dados de
information_schemaeperformance_schema. Para mais informações, consulte Outras análises de locks.Análise de locks de metadados: O DAS infere as relações de espera por locks e gera um gráfico correspondente com base em dados de tabelas como
information_schema.processlist.-
Análise de bloqueio de transações: O DAS analisa as relações de bloqueio de transações e gera um gráfico correspondente com base em dados de
information_schema.processlist,information_schema.innodb_trxeinformation_schema.innodb_lock_waits(para MySQL 5,6 e 5,7) ouperformance_schema.data_lock_waits(para MySQL 8,0).NotaO recurso de análise de bloqueio de transações não é suportado para instâncias PolarDB for MySQL 5,6.
Restrições de parâmetros da instância de banco de dados
Cada recurso de análise de locks exige parâmetros específicos na instância de banco de dados alvo.
|
Recurso de análise de locks |
Parâmetros relacionados da instância de banco de dados |
|
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 uma instância ApsaraDB RDS for MySQL 8,0 ou PolarDB for MySQL 8,0, defina o parâmetro |
Para modifique os parâmetros da instância de banco de dados:
Para ApsaraDB RDS for MySQL, consulte Definir parâmetros da instância.
Para PolarDB for MySQL, consulte Definir parâmetros de cluster e nó.
Referências
Próximos passos
Quando ocorrer um deadlock ou bloqueio de transação, utilize os IDs de thread obtidos na análise de locks para rastrear as transações relacionadas no SQL Explorer and Audit e identificar a causa das esperas por locks. Por exemplo, após uma transação atualize várias linhas de dados, essas linhas ficam bloqueadas. Se a transação não for confirmada (committed) ou revertida (rolled back) — seja explícita ou implicitamente — por um longo período, as sessões ou transações subsequentes que tentarem atualizar as mesmas linhas entrarão em estado de LOCK WAIT.