Este tópico descreve como usar o recurso de análise de bloqueio do DAS para analisar esperas por bloqueio de metadados (MDL) e bloqueios de transações no seu banco de dados.
Os dados mostrados nas imagens deste documento provêm de casos de teste. Em ambiente de produção, utilize seus próprios parâmetros reais, como id de thread e instruções SQL.
Pré-requisitos
-
Mecanismo de banco de dados de destino:
RDS MySQL
PolarDB for MySQL
A instância de banco de dados de destino está conectada ao DAS e seu estado de acesso aparece como Normal Access. Para obter detalhes sobre como conectar uma instância de banco de dados, consulte Conectar uma instância de banco de dados.
-
O Alibaba Cloud Managed Services (anteriormente DAS Economy Edition) está ativado.
ImportanteO Alibaba Cloud Managed Services (anteriormente DAS Economy Edition) está disponível apenas em regiões específicas. Para mais detalhes, consulte Bancos de dados e regiões suportados por edição.
Para ativar o Alibaba Cloud Managed Services (anteriormente DAS Economy Edition), consulte Gerenciar o Alibaba Cloud Managed Services (anteriormente DAS Economy Edition).
Tipos de bloqueio
-
Análise de bloqueio de metadados (MDL)
Dados analíticos: usa dados de tabelas como
information_schema.processlistpara inferir relações de espera de bloqueio e gerar um gráfico de relacionamento.
-
Análise de bloqueio de transação
ImportanteInstâncias do PolarDB for MySQL 5.6 não suportam a análise de bloqueio de transação.
-
Dados analíticos: usa dados de
information_schema.processlist,information_schema.innodb_trxe das tabelas a seguir para analisar relações de bloqueio de transação e gerar um gráfico de relacionamento.RDS MySQL 5.6 e 5.7:
information_schema.innodb_lock_waitsPolarDB for MySQL 5.7:
information_schema.innodb_lock_waitsRDS MySQL e PolarDB for MySQL 8.0:
performance_schema.data_lock_waits
-
Configurações de parâmetro: para instâncias do RDS MySQL 8.0 e PolarDB for MySQL 8.0, ative o parâmetro
performance_schema. Para modifique os parâmetros da instância:Para RDS MySQL, consulte Defina parâmetros da instância.
Para PolarDB for MySQL, consulte Defina parâmetros de cluster e nó.
-
Métodos de acionamento
Análise de bloqueio – Análise sob demanda: na página Lock Analysis, acione manualmente outras análises de bloqueio.
Sessões da instância – Análise automática: outras análises de bloqueio são executadas automaticamente ao atualize a página Instance Sessions.
Análise de bloqueio – Análise sob demanda
Crie uma análise
Faça login no console do DAS.
No painel de navegação à esquerda, clique em .
Localize a instância de destino e clique em no id da instância para abrir a página de detalhes.
No painel de navegação à esquerda, clique em Lock Analysis. Na página Lock Analysis, em Other Lock Analysis, clique em Create Analysis para iniciar uma análise.
Visualize detalhes
Clique em no ícone de seta (
) ao lado de um resultado de diagnóstico para visualize detalhes sobre esperas de bloqueio de metadados e bloqueios de transação. Na página Other Lock Analysis, após expandir um registro de diagnóstico, visualize os detalhes dos tipos de bloqueio, incluindo Metadata Lock (2 sessões bloqueadas) e Transaction Lock (2 sessões bloqueadas). Clique em View Details ao lado de um tipo de bloqueio para ver informações específicas.
Detalhes do bloqueio de transação
Na lista, clique em View Details na coluna Actions referente a um bloqueio de transação para acesse as informações detalhadas de duas formas:
Lista: exibe informações sobre transações bloqueadas em formato de tabela, com colunas para id, usuário, host, nome do banco de dados, comando e transação bloqueada. Clique em no link View Details na coluna Blocked Transaction para abrir uma janela pop-up com detalhes da transação bloqueada, incluindo id, usuário, host, nome do banco de dados, comando, tempo de execução (em segundos), status e instrução SQL.
Visualização: a aba View exibe as dependências de bloqueio de transação como um gráfico visual. As sessões que mantêm bloqueios aparecem na parte superior, com conectores LOCK WAIT apontando para as sessões em espera. Clique em um nó de sessão para expandir um painel de detalhes com id, Transaction Resolution, Rows Locked by Transaction, Tables Locked by Transaction e Rows Updated by Transaction.
Detalhes do bloqueio de metadados
Na lista, clique em View Details na coluna Actions referente a um bloqueio de metadados para ver uma representação visual dos detalhes. Na visualização, clique em um bloco de sessão para ver suas informações detalhadas abaixo. Também é possível encerrar sessões relacionadas nesta página. A página de diagnóstico mostra um gráfico de relacionamento de bloqueio com três nós: Suspicious Session (1) Metadata Lock, Table students DDL Session (1) e Table students Other Session (1). Setas rotuladas como "Waiting for table metadata lock" indicam relações de espera. Ao expandir a sessão suspeita, o sistema exibe: id 197889, usuário das, endereço de host parcialmente mascarado, banco de dados das, comando Sleep e tempo de execução de 176 segundos. Na parte inferior, três botões ajudam a resolver problemas de bloqueio de metadados: Kill Selected Session, Kill All Suspicious Sessions e Kill All DDL Statements.
Combinar com SQL Explorer e análise de auditoria
Uma sessão suspeita em estado Sleep pode não mostrar informações de SQL porque iniciou uma transação e executou instruções SQL, mas ainda não confirmou (commit) ou reverteu (rollback). Nesse caso, no painel de navegação à esquerda da instância de destino, clique em SQL Explorer and Audit. Na página Audit, clique em Enable Advanced Query, insira o id da thread da sessão suspeita e consulte as instruções SQL executadas. Por exemplo, se uma transação não confirmada causou esperas de bloqueio, siga este procedimento: na aba Audit, expanda o formulário de consulta avançada Set Query Conditions, defina o intervalo de tempo de 4 de novembro de 2024 14:34:49 a 4 de novembro de 2024 16:49:49, insira 197889 em Thread ID e clique em Query. A Log List abaixo mostra os registros SQL executados por essa thread durante o período especificado, incluindo update students set name=UUID() where id = 3 (executado em 2024-11-04 16:27:22.426) e begin (executado em 2024-11-04 16:27:21.322).
Sessões da instância – Análise automática
Procedimento
Faça login no console do DAS.
No painel de navegação à esquerda, clique em .
Localize a instância de destino e clique em no id da instância para abrir a página de detalhes.
No painel de navegação à esquerda, clique em Instance Sessions. Na página Session Management, outras análises de bloqueio são executadas automaticamente e os resultados aparecem no canto superior direito. Na página Sessions da instância, verifique o status Lock Wait Exists na área de métricas superiores. Se o valor for No, não há esperas de bloqueio. Clique em View Details para analisar melhor as esperas de bloqueio.
Visualize detalhes na página Instance Sessions
Na página Instance Sessions, se houver esperas de bloqueio, clique em View Details para ver bloqueios de transação e de metadados em um painel lateral. Na página Sessions da instância no DAS, a área de métricas superiores mostra 6 sessões ativas, 0,3% de uso de cpu, 0,1% de uso de conexões, 4 sessões anormais e Lock Wait Exists como Yes. Na lista de sessões abaixo, algumas sessões mostram o status "Waiting for table metadata lock", indicando bloqueio por espera. Clique em View Details para analisar melhor as relações de espera de bloqueio.
Detalhes do bloqueio de transação
Na lista, clique em View Details na coluna Actions referente a um bloqueio de transação para ver duas opções de visualização (List e View), que funcionam da mesma forma que na análise sob demanda. Para mais detalhes, consulte Análise sob demanda – Detalhes do bloqueio de transação.
Na janela pop-up Lock Wait, a aba Transaction Lock exibe uma tabela com Lock Type e Blocked Sessions.
Detalhes do bloqueio de metadados
Na lista, clique em View Details na coluna Actions referente a um bloqueio de metadados para ver uma representação visual dos detalhes, seguindo o mesmo método da análise sob demanda. Para mais detalhes, consulte Análise sob demanda – Detalhes do bloqueio de metadados.
Na janela pop-up Lock Wait, a aba Metadata Lock mostra um gráfico visual das relações de manutenção e espera de bloqueios.
Visualize detalhes na página Lock Analysis
Na página Lock Analysis, clique em no ícone de seta (
) ao lado de um resultado de diagnóstico para visualize estatísticas históricas de outras análises de bloqueio acionadas automaticamente na página Instance Sessions. O método de visualização corresponde ao da análise sob demanda. Para mais detalhes, consulte Análise sob demanda – Visualize detalhes. Na página Other Lock Analysis, selecione um intervalo de tempo, clique em View, localize um registro de diagnóstico onde Lock Found seja Yes, expanda-o e visualize os tipos de bloqueio (metadados e transação) e suas contagens de sessões bloqueadas. Clique em View Details para acesse a página de detalhes do bloqueio.