Quando a capacidade de armazenamento se esgota, o ApsaraDB RDS for MySQL bloqueia automaticamente a instância para evitar perda de dados. No estado Locked, o sistema não aceita operações de escrita. Este tópico explica as causas comuns e como resolver cada uma delas.
Após liberar espaço em disco, aguarde de 5 a 15 minutos para que o sistema desbloqueie automaticamente a instância.
Diagnosticar a causa
Acesse o console do ApsaraDB RDS. Na barra de navegação superior, selecione a região da instância e clique em ID da instância.
No painel de navegação à esquerda, clique em Monitoring and Alerts para identificar qual tipo de arquivo consome mais armazenamento. Para obter detalhes, consulte Visualize as informações de monitoramento.
Use a tabela abaixo para identificar a causa e acessar a solução correspondente.
Causas e soluções
| Causa | Descrição | Solução |
|---|---|---|
| Arquivos de dados | A instância armazena um grande volume de arquivos de dados. | Resolver esgotamento de armazenamento causado por arquivos de dados |
| Arquivos de log binário | Políticas inadequadas de backup de log ou transações grandes geram excesso de arquivos de log binário. | Resolver esgotamento de armazenamento causado por arquivos de log binário |
| Arquivos temporários | Operações de ordenação, agrupamento e junção em consultas SQL produzem arquivos temporários grandes. Transações extensas também geram arquivos de log mantidos em cache antes do commit. | Resolver esgotamento de armazenamento causado por arquivos temporários |
| Arquivos de sistema (arquivos undo) | Consultas longas em tabelas InnoDB combinadas com grandes atualizações de dados geram muitos arquivos undo. Nota Isso não ocorre no MySQL 8.0, pois o sistema exclui automaticamente os arquivos undo. | Resolver esgotamento de armazenamento causado por arquivos de sistema |
| Log geral de consultas | Com o parâmetro general_log definido como ON, todas as operações de consulta, inserção, atualização e exclusão são registradas. O arquivo cresce significativamente se as consultas forem executadas por longos períodos ou se o log não for limpo regularmente. | Resolver esgotamento de armazenamento causado pelo log geral de consultas |
Verificar o tamanho do log geral de consultas
Para confirmar se o log geral de consultas causa o esgotamento do armazenamento, siga estas etapas:
Verifique se o valor de
sys_data_sizeestá anormalmente alto nas informações de monitoramento. Para obter detalhes, consulte Visualize as informações de monitoramento.Confirme se o parâmetro
general_logestá definido comoON. Para obter detalhes, consulte Visualize os parâmetros de uma instância ApsaraDB RDS for MySQL.-
Conecte-se à instância e execute a consulta a seguir para verificar o tamanho da tabela de logs. Para obter detalhes, consulte Conectar-se a uma instância ApsaraDB RDS for MySQL.
NotaEsta consulta retorna o tamanho da tabela
mysql.general_logobtido deinformation_schema.TABLESem MB. Os valores retornados são dados de exemplo e podem variar.SELECT table_schema AS 'Database', table_name, SUM(data_length + index_length + data_free)/1024/1024 AS "Table size in MB", SUM(DATA_FREE)/1024/1024 AS "Fragment size in MB" FROM information_schema.TABLES WHERE table_name='general_log'