Eu tenho um cluster Aurora DB da Amazon (AWS) e todos os dias [Billed] Volume Bytes Used
está aumentando.
Eu verifiquei o tamanho de todas as minhas tabelas (em todos os meus bancos de dados nesse cluster) usando a INFORMATION_SCHEMA.TABLES
tabela:
SELECT ROUND(SUM(data_length)/1024/1024/1024) AS data_in_gb, ROUND(SUM(index_length)/1024/1024/1024) AS index_in_gb, ROUND(SUM(data_free)/1024/1024/1024) AS free_in_gb FROM INFORMATION_SCHEMA.TABLES;
+------------+-------------+------------+
| data_in_gb | index_in_gb | free_in_gb |
+------------+-------------+------------+
| 30 | 4 | 19 |
+------------+-------------+------------+
Total: 53GB
Então, por que eu estou sendo cobrado quase 75 GB no momento?
Entendo que o espaço provisionado nunca pode ser liberado, da mesma maneira que os arquivos ibdata em um servidor MySQL normal nunca podem diminuir; Eu estou bem com isso. Isso está documentado e aceitável.
Meu problema é que, todos os dias, o espaço cobrado aumenta. E tenho certeza de que NÃO estou usando 75 GB de espaço temporariamente. Se eu fizesse algo assim, eu entenderia. É como se o espaço de armazenamento que eu estou liberando, excluindo linhas das minhas tabelas, ou eliminando tabelas, ou mesmo eliminando bancos de dados, nunca fosse reutilizado.
Entrei em contato com o suporte da AWS (premium) várias vezes e nunca consegui obter uma boa explicação sobre o motivo.
Recebi sugestões para executar OPTIMIZE TABLE
nas tabelas em que há muito free_space
(por INFORMATION_SCHEMA.TABLES
tabela) ou para verificar o comprimento do histórico do InnoDB, para garantir que os dados excluídos ainda não sejam mantidos no segmento de reversão (ref: MVCC ) e reinicie as instâncias para garantir que o segmento de reversão esteja vazio.
Nenhum deles ajudou.