O que está armazenado no armazenamento local do Aurora compatível com MySQL e como posso solucionar problemas de armazenamento local?

4 minuto de leitura
0

O que o Amazon Aurora compatível com MySQL armazena no armazenamento local e como posso solucionar problemas de capacidade de armazenamento?

Breve descrição

As instâncias nos clusters do Aurora têm dois tipos de armazenamento:

  • Armazenamento para dados persistentes (chamado de volume de cluster). Esse tipo de armazenamento aumenta automaticamente quando mais espaço é necessário. Para mais informações, consulte O que o volume de cluster contém.
  • Armazenamento local para cada instância do Aurora no cluster, com base na classe da instância. Esse tipo e tamanho de armazenamento está vinculado à classe da instância e somente pode ser alterado com a migração para uma classe de instância de banco de dados maior. O Aurora para MySQL usa o armazenamento local para armazenar logs de erros, logs gerais, logs de consultas lentas, logs de auditoria e tabelas temporárias que não são do InnoDB.

Para mais informações sobre o tamanho do armazenamento local e ver a quantidade máxima de armazenamento disponível para cada tamanho de instância, consulte Limites de armazenamento temporário para o Aurora MySQL.

Resolução

Erro de baixa capacidade de armazenamento gratuito

Quando você está se aproximando do limite de capacidade de armazenamento gratuito, pode receber o seguinte erro:

"A capacidade de armazenamento gratuito da instância de banco de dados: instance-name está baixa em x% do armazenamento provisionado [Armazenamento provisionado: xx GB, Armazenamento gratuito: xx GB]. Convém aumentar o armazenamento provisionado para resolver esse problema."

O armazenamento local pode atingir a capacidade máxima quando você armazena dados não persistentes, como tabelas temporárias e arquivos de log, no armazenamento local. Verifique se você tem comandos ALTER TABLE em execução ou se está armazenando tabelas temporárias excessivas. Ao otimizar comandos ALTER e tabelas temporárias, você pode reduzir o uso do armazenamento local. Execute um comando como esse várias vezes para ver o número de tabelas temporárias na sua instância:

SHOW GLOBAL STATUS LIKE 'created_tmp%tables';

Para monitorar o número de tabelas temporárias criadas durante um intervalo específico, você pode habilitar GoSH. Isso permite armazenar as variáveis de status do servidor em tabelas que você pode revisar mais tarde para análise adicional.

Analise a métrica do Amazon CloudWatch para FreeableMemory para determinar a quantidade de memória livre disponível. Em seguida, verifique se logs de auditoria, logs gerais ou logs de consultas lentas estão consumindo seu espaço. Você pode monitorar o espaço de armazenamento local associado à instância do Aurora usando a métrica do CloudWatch para FreeLocalStorage. Para mais informações, consulte Métricas de monitoramento em um cluster do Amazon Aurora.

Se precisar de mais espaço de armazenamento, você pode aumentar a quantidade de armazenamento local. Para aumentar seu armazenamento local, você deve aumentar sua classe de instância de banco de dados. Para mais informações, consulte Classes de instância de banco de dados do Aurora.

Você também pode aumentar os valores dos parâmetros max_heap_table_size e tmp_table_size. A modificação desses parâmetros pode diminuir a quantidade de dados que são vazados no disco, o que pode diminuir a quantidade de armazenamento local usada. Você pode modificar esses parâmetros no grupo de parâmetros anexado à sua instância. Para mais informações, consulte Trabalhar com grupos de parâmetros.

Observação: se você aumentar os valores de max_heap_table_size e tmp_table_size, as tabelas consumirão mais memória na instância. Se você aumentar esses valores, verifique se há memória disponível suficiente na instância. Você pode monitorar a memória disponível usando a métrica do CloudWatch para FreeableMemory.

ERROR 1114: tabela cheia

Quando o MySQL executa operações, como ALTER TABLE, ele cria uma tabela temporária intermediária com o novo esquema. Em seguida, o MySQL carrega os dados na tabela intermediária antes de excluir a tabela antiga. A tabela intermediária pode usar armazenamento local. Se a tabela intermediária exigir mais armazenamento do que o disponível, você poderá receber o seguinte erro:

“ERRO 1114 (HY000): The table 'table-name' is full"

Para resolver esse erro, aumente o armazenamento local ampliando temporariamente a instância. Depois que a operação ALTER TABLE for concluída, você poderá reduzir a classe da instância. Para aumentar seu armazenamento local, você deve aumentar sua classe de instância do Aurora. Para mais informações, consulte Classes de instância de banco de dados do Aurora.


Informações relacionadas

Como faço para visualizar o armazenamento usado para meu cluster de banco de dados do Amazon Aurora MySQL?

Limites de armazenamento temporário para o Aurora MySQL

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos