Todos os produtos
Search
Central de documentação

ApsaraDB RDS:O que fazer quando o status da instância é 'Locking'?

Última atualização: Jul 10, 2026

Quando uma instância RDS entra no estado Locking, as instruções INSERT e UPDATE falham. Identifique a causa, desbloqueie a instância e evite a recorrência do problema.

Entenda o comportamento de bloqueio

Os efeitos do estado Locking variam conforme a versão do mecanismo de banco de dados e a versão secundária do mecanismo.

MySQL 5.6, 5,7 e 8.0 (versão secundária do mecanismo 20190815 ou posterior)

O ApsaraDB RDS utiliza três tipos de bloqueio para limitar operações, dependendo da causa:

Tipo de bloqueio

O que é bloqueado

Condição de acionamento

LOCK_WRITE_GROWTH

Operações que aumentam o uso de disco (INSERT, UPDATE). Consultas de leitura continuam funcionando. Use DROP ou TRUNCATE em vez de DELETE para liberar espaço, pois o DELETE gera logs binários que aumentam o uso de disco.

O armazenamento da instância primária está cheio.

LOCK_READ

Todas as operações de leitura e escrita.

O armazenamento da instância somente leitura está cheio.

LOCK_WRITE

Todas as operações de escrita, incluindo DROP e TRUNCATE (superconjunto das restrições de LOCK_WRITE_GROWTH).

Expiração da instância, expiração do host em um cluster ApsaraDB MyBase ou migração da instância.

Quando LOCK_WRITE_GROWTH está ativo, as instruções SQL retornam:

ERROR 1290 (HY000): The MySQL server is running with the LOCK_WRITE_GROWTH option so it cannot execute this statement

MySQL 5.1, 5,5 e MySQL 5.6/5.7/8.0 com versão secundária do mecanismo anterior a 20190815

Todas as operações são bloqueadas, independentemente da causa do bloqueio.

Diagnostique a causa

Na página Basic Information, verifique a seção Usage Statistics. As duas causas possíveis são:

  • Causa 1: A capacidade de armazenamento foi esgotada.

  • Causa 2: Sua conta Alibaba Cloud possui pagamentos pendentes ou a instância RDS expirou.

存储空间使用量

Resolva a causa 1: capacidade de armazenamento esgotada

Expanda a capacidade de armazenamento ou libere espaço. A expansão é mais rápida e evita a exclusão de dados.

Opção 1: expandir a capacidade de armazenamento (recomendado)

  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde a instância reside e clique em Change Specifications para expandir a capacidade de armazenamento.

  2. Na página Basic Information, vá até a seção Configuration Information e clique em Change Specifications para expandir a capacidade de armazenamento.

  3. Conclua o pagamento. Clique em 按钮 no canto superior direito da página Basic Information para monitorar o progresso na página Tasks.

O tempo necessário varia conforme o tipo de armazenamento:

Tipo de armazenamento

Duração

Observações

Premium Local SSDs

Variável

Pode ocorrer migração de dados entre instâncias. É esperada uma conexão transitória de aproximadamente 30 segundos. Realize a expansão fora dos horários de pico e certifique-se de que sua aplicação se reconecte automaticamente.

Discos em nuvem

Cerca de 5 minutos

MySQL e PostgreSQL: sem conexões transitórias. SQL Server: pode ocorrer uma conexão transitória de aproximadamente 30 segundos. Expanda fora dos horários de pico ou garanta que sua aplicação se reconecte automaticamente. Instâncias RDS específicas suportam expansão de capacidade de armazenamento sem perda de dados, o que não interrompe suas cargas de trabalho.

Você também pode fazer login no console do ApsaraDB RDS e clique em Task Center no painel de navegação à esquerda para visualizar o progresso.

Opção 2: liberar armazenamento

Aviso

Faça backup dos seus dados antes de excluir qualquer conteúdo. Se possível, prefira expandir o armazenamento para evitar perda de dados.

  1. Acesse a página Instances. Selecione a região e clique em Change Specifications.

  2. No painel de navegação à esquerda, clique em Monitoring and Alerts para visualizar o uso de armazenamento detalhado por tipo de dado.

    空间使用量

  3. Exclua dados com base na categoria de armazenamento que consome mais espaço.

Arquivos temporários (métrica temp_file_size)

O ApsaraDB RDS for MySQL gera tabelas temporárias para operações de classificação, agrupamento ou junção, além de arquivos de cache de log binário antes de confirmar transações grandes. Esses arquivos temporários podem esgotar o espaço em disco.

Para etapas de resolução, consulte O que devo fazer se uma instância ApsaraDB RDS for MySQL estiver no estado Locked porque sua capacidade de armazenamento foi esgotada por arquivos temporários?

Arquivos de log (métricas binlog_size e general_log_size)

Mecanismo de banco de dados

Resolução

MySQL

Na página Monitoring and Alerts, visualize o uso de armazenamento e exclua arquivos de log. Consulte O que devo fazer se a capacidade de armazenamento de uma instância ApsaraDB RDS for MySQL for esgotada por arquivos de log binário? e FAQ sobre o recurso de log geral de consultas do ApsaraDB RDS for MySQL.

PostgreSQL

Não é possível excluir arquivos de log manualmente. Exclua slots de replicação inativos para permitir que o AliPG remova automaticamente os logs WAL. Consulte Use o recurso de gerenciamento de logs WAL para uma instância ApsaraDB RDS for PostgreSQL.

SQL Server

Não é possível excluir arquivos de log manualmente. Em vez disso, Reduza os logs de transação no console do ApsaraDB RDS.

Arquivos de dados (métrica user_data_size)

MySQL:

  1. Conecte-se à sua instância RDS usando o Data Management (DMS).

  2. Execute a seguinte instrução para encontrar as maiores tabelas:

    SELECT
        TABLE_NAME,
        concat(round((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024,2),'MB') AS DATA
    FROM
        information_schema.TABLES
    WHERE
        TABLE_SCHEMA = '<Database name>'
    ORDER BY
        DATA + 0 DESC;
  3. Remova tabelas desnecessárias:

    DROP TABLE <Table name>;
  4. Aguarde aproximadamente 5 minutos para que o sistema desbloqueie a instância.

PostgreSQL:

  1. Conecte-se à sua instância RDS usando o DMS. Consulte Use o DMS para fazer login em uma instância ApsaraDB RDS.

    Se não conseguir conectar, primeiro expanda a capacidade de armazenamento, libere espaço em disco e depois reduza a capacidade conforme necessário. Consulte Alterar especificações da instância .
  2. Execute a seguinte instrução para encontrar as maiores tabelas:

    SELECT
        table_schema || '.' || table_name AS table_full_name,
        pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') AS size
    FROM
        information_schema.tables
    ORDER BY
        pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')
    DESC;
  3. Remova tabelas desnecessárias:

    DROP TABLE <Table name>;
  4. Aguarde aproximadamente 5 minutos para que o sistema desbloqueie a instância.

SQL Server:

Siga as etapas em Solucionar problemas de armazenamento insuficiente em uma instância ApsaraDB RDS for SQL Server.

Arquivos de sistema (métrica undolog_size)

Consultas de longa duração em tabelas InnoDB combinadas com grandes modificações simultâneas de dados podem gerar logs de desfazer excessivos e esgotar a capacidade de armazenamento.

Para etapas de resolução, consulte Solucionar armazenamento insuficiente causado pelo acúmulo de arquivos de sistema.

Resolva a causa 2: pagamentos pendentes ou expiração da instância

  • Instância por assinatura: Renove a instância, aguarde aproximadamente 5 minutos e verifique se a instância está no estado Running.

  • Instância de pagamento conforme o uso: Recarregue sua conta Alibaba Cloud, aguarde 5 minutos e verifique se a instância está no estado Running.

Evite bloqueios futuros

Configure os itens a seguir para evitar bloqueios inesperados:

Defina notificações de pagamento e expiração:

  1. Faça login no console do ApsaraDB RDS.

  2. Clique em 通知 no canto superior direito para abrir o Message Center.

  3. No painel de navegação à esquerda, clique em Common Settings.

  4. Na coluna Notification Type, selecione Product Overdue Payment, Suspension, and Imminent Release Notifications e clique em Modify.

  5. Selecione os contatos de alerta e clique em Save.

Configure um alerta de uso de armazenamento: Defina regras de alerta para uso de armazenamento e acione um alerta quando o uso de armazenamento ultrapassar 90%.

Ative o SQL Explorer and Audit: Ative o recurso SQL Explorer and Audit para identificar e otimizar instruções SQL que causam picos de armazenamento.

Ative a expansão automática de armazenamento: Configure a expansão automática para que o sistema aumente a capacidade quando o armazenamento estiver baixo. Consulte os guias para MySQL, PostgreSQL e SQL Server.

Otimize instruções SQL: Evite o uso frequente de cláusulas ORDER BY e GROUP BY em consultas que processam grandes conjuntos de dados, pois elas geram arquivos temporários grandes.

FAQ

Por que o LOCK_WRITE_GROWTH continua ativo mesmo após eu ter excluído uma grande quantidade de dados?

A execução de DELETE marca registros como reutilizáveis, mas não reduz os arquivos de disco subjacentes nem recupera o espaço da tabela. Para liberar o espaço da tabela, use a instrução OPTIMIZE TABLE. Consulte Como uso a instrução OPTIMIZE TABLE para liberar o espaço de tabela de uma instância ApsaraDB RDS for MySQL?

Por que minha instância ainda está bloqueada mesmo com armazenamento suficiente ou após a renovação?

Uma tarefa, como uma alteração de configuração, ainda está em andamento. A instância será desbloqueada automaticamente quando a tarefa for concluída. Clique em 按钮 no canto superior direito da página Basic Information para verificar o progresso da tarefa na página Tasks.

Posso alterar as especificações da instância enquanto ela está no estado Locking?

Se a instância estiver bloqueada devido ao esgotamento do armazenamento, sim — você pode atualizar ou reduzir as especificações. Se estiver bloqueada por outros motivos, como pagamentos pendentes, resolva primeiro a questão financeira.

Minha instância usa um tipo de instância descontinuado. Como posso desbloqueá-la expandindo o armazenamento?

Altere o tipo da instância para um tipo disponível primeiro e depois expanda o armazenamento. Para tipos de instância disponíveis, consulte Tipos de instância primária do ApsaraDB RDS.

Por que o uso de armazenamento continua aumentando mesmo com a instância bloqueada?

As operações INSERT e UPDATE são bloqueadas, mas consultas de leitura ainda podem gerar arquivos de log ou dados temporários, o que aumenta o uso de armazenamento.