Deadlocks no MySQL

Este artigo fala sobre bloqueios no MySQL para ajudar a identificá-los e resolvê-los se causarem uma inatividade do site, importação de banco de dados travada ou outros problemas do Adobe Commerce.

Produtos e versões afetados

  • Adobe Commerce no local 2.2.x e 2.3.x
  • Adobe Commerce na infraestrutura em nuvem 2.2.x e 2.3.x

Problema

Os bloqueios no MySQL ocorrem quando duas ou mais transações são mutuamente mantidas e solicitam bloqueios. Os bloqueios que estão presentes nem sempre indicam um problema, mas geralmente são um sintoma de algum outro problema do MySQL ou do Adobe Commerce que ocorreu.

Frequentemente, o aplicativo, a implantação ou os logs do MySQL mencionarão um erro "deadlock" ou o erro "Deadlock encontrado ao tentar obter bloqueio; tente reiniciar a transação."

Causa

Os bloqueios podem ter várias causas, mas a mais comum é se você executar qualquer interação (site/processos/jobs cron/outros usuários/manutenção do MySQL/importações do MySQL) enquanto executa consultas DML/DDL ao mesmo tempo.

Como exemplo, é uma prática recomendada evitar uma importação de banco de dados MySQL travada, colocando primeiro o site no modo de manutenção para evitar obter solicitações SQL para o banco de dados que poderiam causar bloqueios e uma importação de banco de dados travada.

Solução

  1. Verifique se há erros de deadlock no aplicativo, na implantação ou nos logs MySQL:

  2. Verifique sua lista de processos do MySQL para executar processos com o comando mysql -e 'show full processlist';

  3. Se estiver no Adobe Commerce na infraestrutura em nuvem, verifique se o MySQL slave está ativado. Consulte este artigo: Implantar variáveis (MYSQL_USE_SLAVE_CONNECTION).

  4. Dependendo dos erros envolvidos, a solução pode se apresentar ou talvez você precise incluir suas informações de log úteis se precisar abrir um Tíquete de Suporte.

Leitura relacionada

NOTE
Estamos cientes de que este artigo ainda pode conter termos de software padrão da indústria que alguns podem achar racistas, sexistas ou opressivos e que podem fazer com que o leitor se sinta ferido, traumatizado ou indesejado. O Adobe está trabalhando para remover esses termos de nosso código, documentação e experiências do usuário.
recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a