Todos os produtos
Search
Central de documentação

Database Autonomy Service:Análise de deadlocks

Última atualização: Jun 27, 2026

Este tópico descreve como utilizar o recurso de análise de locks do Database Autonomy Service (DAS) para realizar análises de deadlocks em seus bancos de dados. O conteúdo abrange dois modos: análise de deadlocks recentes e análise completa de deadlocks.

Nota

Os dados apresentados nas figuras deste tópico, incluindo IDs de threads e instruções SQL, servem apenas para fins de demonstração. Ao executar as operações, utilize seus próprios dados e parâmetros reais.

Pré-requisitos

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

    • Análise de deadlocks recentes:

      • RDS MySQL

      • MySQL autogerenciado

      • PolarDB for MySQL

      • PolarDB-X 2.0

    • Análise completa de deadlocks:

      • 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 Conectar uma instância de banco de dados ao DAS.

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

    Importante

Análise de deadlocks recentes

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

    Nota

    Geralmente, esse parâmetro vem ativado por padrão. Para confirmar, execute SHOW VARIABLES LIKE 'innodb_deadlock_detect'. Observe que não é possível alterar o valor desse parâmetro em alguns tipos de instância.

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

  • Importante

    Caso tenham ocorrido múltiplos deadlocks, cada análise captura apenas o mais recente e salva seus dados.

    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 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 de deadlocks recentes.

      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 horário de ocorrência e se foi encontrado algum deadlock. Clique em View Details para visualize informações detalhadas sobre o deadlock.

    Visualizar detalhes

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

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

    3. Um painel será exibido, mostrando os detalhes do deadlock em três abas:

      • View: Exibe um gráfico visual da relação de deadlock, incluindo nós para as transações e locks de registro envolvidos. Setas indicando lock granted e waiting mostram as relações de posse e espera de locks, formando um ciclo de deadlock. Transações revertidas são marcadas como "Rolled back". Clique em um nó de transação para expandir seus detalhes, como Session ID, thread ID, tipo de solicitação, transaction ID, tabela envolvida, informações do lock em espera e nome do índice associado ao lock pendente.

      • List: Esta aba apresenta uma comparação lado a lado das duas transações em deadlock, com as transações revertidas devidamente marcadas. As linhas da tabela incluem Session ID, thread ID, tipo de solicitação, transaction ID, tabela envolvida, lock em espera (nome do índice e tipo de lock, como X locks rec but not gap waiting), lock mantido (nome do índice e tipo de lock) e SQL da transação. Na parte inferior, é possível usar o thread ID ou transaction ID para pesquisar detalhes relacionados à transação no SQL Explorer and Audit.

      • Log: Mostra os detalhes brutos do log de deadlock provenientes da seção LATEST DETECTED DEADLOCK da saída do comando SHOW ENGINE INNODB STATUS. Isso inclui o horário em que o deadlock ocorreu, as instruções SQL das transações envolvidas, informações sobre locks mantidos (HOLDS THE LOCK) e informações sobre locks em espera (WAITING FOR THIS LOCK TO BE GRANTED).

    Analisar com o 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 da ocorrência do deadlock e insira o thread ID obtido na análise de deadlocks recentes para consultar as instruções SQL executadas por essa transação.

      1. Para a Transação 1 do exemplo, os resultados da consulta 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 de 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 excepcionalmente longo da primeira instrução update indica uma espera de 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 o código de erro 1213 (deadlock) e levou 1,40 ms, com tempo de espera de lock de 1,152 ms. update students set name=UUID() where id = 2 teve êxito e levou 0,20 ms. begin teve êxito e levou 0,18 ms.

    Análise completa de deadlocks

    • É necessário ativar os parâmetros innodb_deadlock_detect e innodb_print_all_deadlocks. Para uma instância RDS MySQL, também é preciso defina o parâmetro log_error_verbosity como 3.

      Nota

      O parâmetro innodb_deadlock_detect geralmente vem ativado por padrão. Execute SHOW VARIABLES LIKE 'innodb_deadlock_detect' para confirme. Lembre-se de que não é possível alterar o valor desse parâmetro em certos tipos de instância.

    • Fonte de dados: Este recurso analisa as informações de deadlock impressas no log de erros da instância a cada hora, gerando tendências de contagem de deadlocks e compilando os detalhes de cada ocorrência.

    • 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, sem executar tarefas de análise. Caso você ative os parâmetros exigidos durante esse intervalo, o DAS aguardará o término do período antes de reprogramar a análise. Por exemplo:

      • Uma tarefa de análise às 11:12 detecta que um parâmetro obrigatório não está ativado e inicia um resfriamento de 12 horas. Após as 23:12, a análise completa de deadlocks reagenda a tarefa. Se o parâmetro ainda não estiver ativado, outro período de 12 horas tem início. Se você ativar o parâmetro antes das 23:12, o resfriamento termina nesse horário. Posteriormente, a análise é executada hourly, 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 contenham 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 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 deadlocks examina 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 visualizar a tendência de deadlocks nesse intervalo.

        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 de intervalo de datas personalizado. Clique 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 será exibido, apresentando 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 idênticas às da análise de deadlocks recentes. Para mais informações, consulte Análise de deadlocks recentes - Visualizar detalhes.

      Analisar com o SQL Explorer and Audit

      O procedimento é o mesmo da análise de deadlocks recentes. Para mais informações, consulte Análise de deadlocks recentes - Analisar com o SQL Explorer and Audit.

      Documentos relacionados