2009-05-27 118 views
5

Tengo una base de datos mysql configurada con el motor de almacenamiento innoDB. Bajé la base de datos (drop database <dbname>) pero no se liberó el espacio en el disco.mysql: Cómo liberar espacio (innodb)

En /var/lib/mysql hay algunos archivos "grandes" llamados ib_logfile0, ib_logfile1 y ibdata1 donde el último es muy grande. Presumo que estos archivos son, de hecho, el DB original.

¿Cómo puedo saber si puedo eliminarlos? O una mejor pregunta es cómo soltar una base de datos para recuperar el espacio en el disco.

Aclaración
Quiero abandonar la base de datos completa y liberar el espacio en disco. No quiero realizar ninguna restauración.

Gracias de antemano.

+0

Esta es una pregunta para serverfault.com – soulmerge

Respuesta

7

Lamentablemente, no hay forma de reducir estos archivos una vez que se ha asignado el espacio. Sin embargo, MySQL volverá a utilizar el espacio cuando se agreguen nuevos datos, pero el archivo no se reducirá.

Para reducir el tamaño, deberá volcar las bases de datos y luego restaurarlas nuevamente.

También puede hacer lo siguiente:

Establecer innodb_file_per_table en su archivo de configuración, lo que creará un archivo separado por mesa. Esto le permitirá eliminar estos archivos una vez que se haya descartado una base de datos y también le permitirá usar el comando OPTIMIZE TABLE para reconstruir los archivos de ibd si reduce los datos en una tabla en particular.

+0

Gracias por su respuesta. Por cierto, ¿cuáles son los inconvenientes de crear un archivo separado por tabla (si hay alguno)? ¿Pierdo rendimiento? – Luixv

+0

No puedo pensar en un inconveniente para utilizar la opción innodb_file_per_table en la parte superior de mi cabeza, aparte de que creará muchos más archivos que pueden hacer que la administración de ellos sea un poco más difícil. Pero el uso de la opción tiene algunos beneficios, como menor fragmentación, capacidad de reducir archivos de tablas individuales y si tiene un sistema de archivos con un límite de 2GB (muy raro en estos días), el límite ahora se aplica por tabla. de a todo el asunto. –

+0

Gracias por su respuesta. Configuré tu respuesta como "aceptada" – Luixv

0

Una solución es volcar y restaurar.

Cuestiones relacionadas