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;
* 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 -pUna 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