Todos os produtos
Search
Central de documentação

Database Autonomy Service:Análise de deadlock

Última atualização: Jul 20, 2026

O DAS oferece dois modos de análise de deadlock para bancos de dados: a análise recente, que examina o log mais atual, e a análise completa, que processa logs de erro a cada hora para acompanhar tendências.

Nota

Os dados nas figuras, incluindo IDs de thread e instruções SQL, servem apenas para demonstração. Use seus próprios dados e parâmetros ao executar as operações.

Pré-requisitos

  • A instância de destino deve usar um dos seguintes mecanismos:

    • Análise recente de deadlock:

      • RDS MySQL

      • MySQL autogerenciado

      • PolarDB for MySQL

      • PolarDB-X 2.0

    • Análise completa de deadlock:

      • RDS MySQL

      • PolarDB for MySQL

  • A instância de destino deve estar conectada ao DAS com status de conexão Normal Access. Para mais informações, consulte Connect a database instance to DAS.

  • O Alibaba Cloud Managed Services (anteriormente DAS Economy Edition) deve estar ativado.

    Importante
  • Análise recente de deadlock

    • Configuração de parâmetros: o parâmetro innodb_deadlock_detect deve estar ativado na instância.

      Nota

      Esse parâmetro vem habilitado por padrão. Para verifique, execute SHOW VARIABLES LIKE 'innodb_deadlock_detect'. Alguns tipos de instância não permitem alterar essa configuração.

    • Análise de dados: examina o log de deadlock mais recente retornado pelo comando SHOW ENGINE INNODB STATUS.

    • Importante

      Se ocorrerem múltiplos deadlocks, apenas o mais recente será capturado e salvo por análise.

      Procedimento

      1. Faça login no console do DAS.

      2. No painel de navegação à esquerda, clique em Intelligent O&M Center > Instance Monitoring.

      3. Localize a instância de destino e clique em no id da instância para abrir a página de detalhes.

      4. No painel de navegação à esquerda, clique em Lock Analysis. Na página Lock Analysis, selecione a aba Recent Deadlock Analysis.

      5. Clique em Create Analysis para iniciar uma análise recente de deadlock.

        Após a conclusão da análise, a tabela de resultados na aba Recent Deadlock Analysis exibe o horário de geração, o momento da ocorrência e se houve detecção de deadlock. Clique em View Details para visualize informações detalhadas sobre o deadlock.

      Visualizar detalhes

      1. Selecione um período para visualize os resultados das tarefas de análise acionadas nesse intervalo.

      2. Na lista de tarefas de análise recente de deadlock, clique em View Details na coluna Details.

      3. Um painel é exibido com os detalhes do deadlock em três abas:

        • View: mostra um gráfico visual da relação de deadlock, incluindo nós de transação e bloqueios de registro. Setas rotuladas como lock granted e waiting ilustram a posse de locks e as relações de espera, formando um ciclo de deadlock. Transações revertidas aparecem marcadas como "Rolled back". Clique em um nó de transação para expandir detalhes como Session id, thread id, tipo de requisição, transaction id, tabela envolvida, informações do lock em espera e nome do índice associado ao lock em espera.

        • List: exibe uma comparação lado a lado das duas transações em deadlock, com transações revertidas marcadas. As linhas da tabela incluem Session id, thread id, tipo de requisição, transaction id, tabela envolvida, lock aguardado (nome do índice e tipo, como X locks rec but not gap waiting), lock mantido (nome do índice e tipo) e SQL da transação. Use o thread id ou transaction id na parte inferior para pesquisar detalhes relacionados no SQL Explorer and Audit.

        • Log: mostra o log bruto de deadlock da seção LATEST DETECTED DEADLOCK da saída do comando SHOW ENGINE INNODB STATUS, incluindo o horário do deadlock, instruções SQL das transações envolvidas, informações sobre locks mantidos (HOLDS THE LOCK) e locks aguardados (WAITING FOR THIS LOCK TO BE GRANTED).

      Analisar com SQL Explorer and Audit

      1. No painel de navegação à esquerda da instância de destino, clique em SQL Explorer and Audit. Na página Audit, clique em Ative Advanced Query.

      2. Selecione um intervalo de tempo que inclua o momento do deadlock e insira o thread id da análise recente para consultar as instruções SQL executadas por essa transação.

        1. Para a Transação 1 do exemplo, os resultados mostram que a thread executou três instruções SQL: update students set name=UUID() where id = 2 (tempo de execução: 2.938,377 ms; tempo de espera por lock: 1 ms), update students set name=UUID() where id = 3 (tempo de execução: 0,002 ms) e begin. O tempo de execução excessivamente longo da primeira instrução update indica espera por lock.

        2. Para a Transação 2 (revertida): na página Audit, defina o Time range, configure o Thread id como 195662 e clique em Query. A lista de logs exibe o registro de execução SQL da Transação 2: update students set name=UUID() where id = 3 falhou com código de erro 1213 (deadlock) e levou 1,40 ms, com tempo de espera por lock de 1,152 ms. A instrução update students set name=UUID() where id = 2 foi bem-sucedida e levou 0,20 ms. O comando begin foi bem-sucedido e levou 0,18 ms.

      Análise completa de deadlock

      • Ative os parâmetros innodb_deadlock_detect e innodb_print_all_deadlocks. Para instâncias RDS MySQL, defina também o parâmetro log_error_verbosity como 3.

        Nota

        O parâmetro innodb_deadlock_detect vem habilitado por padrão. Execute SHOW VARIABLES LIKE 'innodb_deadlock_detect' para verifique. Alguns tipos de instância não permitem alterar essa configuração.

      • Source de dados: o DAS processa as informações de deadlock do log de erros da instância a cada hora para gerar tendências de contagem e compilar os detalhes de cada deadlock.

      • Período de resfriamento: se o Alibaba Cloud Managed Services estiver ativado e o DAS detectar que os parâmetros necessários não estão habilitados, o sistema entra em um período de resfriamento de 12 horas e não executa tarefas de análise. Se você ativar os parâmetros necessários durante o período de resfriamento, o DAS aguardará o término desse período antes de reagendar a análise. Por exemplo:

        • Uma tarefa de análise às 11:12 detecta que um parâmetro necessário não está habilitado e inicia um resfriamento de 12 horas. Após as 23:12, a análise completa de deadlock reagendará a tarefa. Se o parâmetro ainda não estiver habilitado, outro resfriamento de 12 horas começará. Se você habilitar o parâmetro antes das 23:12, o resfriamento terminará às 23:12. Depois disso, a análise será executada a cada hora, desde que o parâmetro necessário e o Alibaba Cloud Managed Services permaneçam ativados para a instância.

      • Importante

        Não há suporte para análise de deadlocks que incluam a mensagem "TOO DEEP OR LONG SEARCH IN THE LOCK TABLE WAITS-FOR GRAPH, WE WILL ROLL BACK FOLLOWING TRANSACTION".

        Procedimento

        1. Faça login no console do DAS.

        2. No painel de navegação à esquerda, clique em Intelligent O&M Center > Instance Monitoring.

        3. Localize a instância de destino e clique em no id da instância para abrir a página de detalhes.

        4. No painel de navegação à esquerda, clique em Lock Analysis. Na página Lock Analysis, selecione a aba Full Deadlock Analysis.

        5. A cada hora, a análise completa de deadlock processa automaticamente os logs de erros da instância, conta os deadlocks e plota os dados no gráfico Deadlock Trend na parte superior da página. Selecione um período para visualize a tendência de deadlock correspondente.

          A parte superior da página oferece botões de seleção rápida para Last 1 Day, Last 3 Days e Last 7 Days, além de um seletor personalizado de datas. Clique em no botão View para atualize o gráfico de tendências. Abaixo do gráfico, há uma lista de eventos de deadlock que mostra o Deadlock Time de cada um. Clique em View Details em um evento específico para obter mais informações.

        Visualizar detalhes

        1. Na lista de deadlocks da análise completa, clique em View Details na coluna Details.

        2. Um painel é exibido com os detalhes do deadlock em três abas: View, List e Log. A aba Log contém o conteúdo do log de erros relacionado ao deadlock. As abas View e List são iguais às da análise recente de deadlock. Para mais informações, consulte Recent deadlock analysis - View details.

        Analisar com SQL Explorer and Audit

        O procedimento é o mesmo da análise recente de deadlock. Para mais informações, consulte Recent deadlock analysis - Analyze with SQL Explorer and Audit.

        Documentos relacionados