meta data de esta página
  •  

¡Esta es una revisión vieja del documento!


Liberar espacio o reparar la base de datos de Zabbix

A veces en instalaciones de zabbix que llevan un tiempo en funcionamiento y que se han ido actualizando nos econtramos que el fichero ibdata1 es de un tamaño enorme. Eso es debido a que en MySQL cuando usamos InnoDB, todas las tablas e indices se almacenan bajo la tabla system de MySQL, que se corresponde con el fichero ibdata1, que se encuentra en la carpeta /var/lib/mysql

La solución a dicho problema es el siguiente :

  • Editamos el fichero /etc/my.cnf y añadimos la siguiente líenea bajo la sección [mysqld]

 innodb_file_per_table=1 

  • Reiniciamos la BDD
    systemctl restart mariadb
  • Hacemos una copia de todas las Bases de datos
    mysqldump -u root -ptmppassword --all-databases > dump.sql
  • También deberíamos de hacer una copia de los ficheros existentes dentro de /var/lib/mysql
  • Nos conectamos al mysql y borramos la Base de datos zabbix
    mysql>drop database zabbix;
No borrar el resto de BDD

* Salimos de la base de datos y paramos el servicio

systemctl stop mariadb

  • Borramos los ficheros ibdata1 y los ficheros ib_logfile*

cd /var/lib/mysql/
rm ibdata1
rm ib_logfile*

  • Iniciamos el servicio de BDD y volvemos a crear la base de datos zabbix

  
systemctl start mariadb
mysql -u root -p
Una vez conectados a MySQL creamos una nueva base de datos llamada zabbix
mysqld>    CREATE DATABASE zabbix;

Una vez que nos sale el mensaje de que la operación se ha efectuado

Output
Query OK, 1 row affected (0.00 sec)

Salimos de MySQL con CTRL+D. y desde la línea de comando ejecutamos el siguiente comando para importar la copia que había creado:

mysql -u root -p zabbix < dump.sql

Referencias