Neste post irei mostrar como realizar a otimização de tabela no MariaDB no banco de dados do Zabbix.
Antes de iniciar o procedimento é necessário realizar backup do banco por questões de segurança. Para isso, pare o Serviço do Zabbix Server e realize o backup.
Versão do MariaDB: 10.2.21-MariaDB
Como foi dito, é aconselhável que realize backup do banco do Zabbix. Feito isso, mãos a massa:
- Primeiro é necessário parar todo o Serviço do Zabbix Server e Agent;
- Feito isso é necessário conectar-se ao MariaDB.
Feito isso iremos descobrir quais tabelas do banco do Zabbix possuem mais de 100MB livre:
USE NOME_DO_BANCO_DO_ZABBIX;
SELECT TABLE_NAME, ROUND((DATA_LENGTH + INDEX_LENGTH)/1024/1024) AS USED_SPACE_MB, ROUND(DATA_FREE/1024/1024) AS UNUSED_SPACE_MB FROM INFORMATION_SCHEMA.TABLES WHERE ROUND(DATA_FREE/1024/1024) > 100 ORDER BY UNUSED_SPACE_MB DESC;
+--------------+---------------+-----------------+
| TABLE_NAME | USED_SPACE_MB | UNUSED_SPACE_MB |
+--------------+---------------+-----------------+
| history | 662 | 137 |
| history_uint | 994 | 153 |
+--------------+---------------+-----------------+
2 rows in set (0.01 sec)
Como resultado da consulta vemos que as tabelas "history" e "history_uint" possuem mais de 100MB de espaço livre sem utilização, cabendo assim uma otimização dessas tabelas. Bem como o tamanho das duas tabelas, 662MB e 994MB, respectivamente.
Agora iremos realizar a otimização dessas duas tabelas uma de cada vez:
OPTIMIZE TABLE history;
OPTIMIZE TABLE history_uint;
Pronto! Realizamos a otimização das tabelas, agora iremos consultá-las após procedimento:
SELECT TABLE_NAME,
ROUND((DATA_LENGTH + INDEX_LENGTH)/1024/1024, 2) AS USED_SPACE_MB,
ROUND(DATA_FREE/1024/1024, 2) AS UNUSED_SPACE_MB
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME in
('history', 'history_uint') ORDER BY UNUSED_SPACE_MB DESC;;
+--------------+---------------+-----------------+
| TABLE_NAME | USED_SPACE_MB | UNUSED_SPACE_MB |
+--------------+---------------+-----------------+
| history | 334 | 41 |
| history_uint | 455 | 49 |
+--------------+---------------+-----------------+
2 rows in set (0.00 sec)
Percebam que após otimização das tabelas o tamanho das mesmas reduziram mais da metade bem como o espaço livre!
No meu caso tive uma redução de tamanho de base de quase 900MB.
Tamanho do banco antes da otimização: 1.68GB
Tamanho do banco após otimização: 907MB.
Bom, espero ter ajudado!
\O
Show!
ResponderExcluirComo vc fez pra ver os tamos da tabela dentro do zabbix, essa tela ai que ta no print.
ResponderExcluirObrigado
Montei a query que retorna o tamanho de cada tabela que desejo monitorar. Mas nativamente no Zabbix 4.4 (eu acho) já tem isso. ;)
Excluir