15.7. Añadir y suprimir registros y ficheros de datos InnoDB

MySQL 5.0

15.7. Añadir y suprimir registros y ficheros de datos InnoDB

Esta sección describe lo que se puede hacer cuando el espacio de tablas se queda sin espacio o cuando se desea cambiar el tamaño de los ficheros de registro (log).

La manera más sencilla de incrementar el tamaño del espacio de tablas es configurarlo desde un principio para que sea autoextensible, especificando el atributo para el último fichero de datos en la definición del espacio de tablas. Entonces, incrementa el tamaño de ese fichero automáticamente en intervalos de 8MB cuando se queda sin espacio. El tamaño del intervalo a incrementar puede configurarse estableciendo el valor de , el cual está expresado en megabytes, y cuyo valor predeterminado es 8.

Alternativamente, se puede incrementar el tamaño del espacio de tablas agregando otro fichero de datos. Para hacer esto, se debe detener el servidor MySQL, editar el fichero para agregar un nuevo fichero de datos al final de , e iniciar nuevamente el servidor.

Si el último fichero de datos especificado tiene la palabra clave , el procedimiento para editar a debe tener en cuenta el tamaño que ha alcanzado este último fichero. Hay que obtener el tamaño del fichero de datos, redondearlo hacia abajo a la cantidad de megabytes (1024 * 1024 bytes) más cercana, y especificar este número explícitamente en . Entonces se podrá agregar otro fichero de datos. Hay que recordar que solamente el último fichero de datos en puede especificarse como autoextensible.

Como ejemplo, se asumirá que el espacio de tablas tiene sólo un fichero de datos autoextensible :

innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:10M:autoextend

Suponiendo que este fichero de datos, a lo largo del tiempo, ha crecido hasta 988MB, debajo se ve la línea de configuración luego de agregar otro fichero de datos autoextensible.

innodb_data_home_dir =
innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend

Cuando se agrega un nuevo fichero al espacio de tablas, hay que asegurarse de que no exista. crea e inicializa el fichero al reiniciar el servidor.

Actualmente no es posible quitar un fichero de datos del espacio de tablas. Para reducir el tamaño del espacio de tablas, emplear este procedimiento:

  1. Utilizar mysqldump para hacer un volcado de todas las tablas .

  2. Detener el servidor.

  3. Eliminar todos los ficheros existentes del espacio de tablas.

  4. Configurar un nuevo espacio de tablas.

  5. Reiniciar el servidor.

  6. Importar el fichero de volcado de tablas.

Si se desea modificar la cantidad o tamaño de los ficheros de registro (log) de , se debe detener el servidor MySQL y asegurarse de que se cerró sin errores. Luego, copiar los ficheros de registro antiguos en un lugar seguro, sólo para el caso de que algo haya fallado en el cierre del servidor y se necesite recuperar el espacio de tablas. Eliminar los antiguos ficheros de registro del directorio de ficheros de registro, editar para modificar la configuración de los ficheros de registro, e iniciar nuevamente el servidor MySQL. mysqld verá al iniciar que no hay ficheros de registro e informará que está creando nuevos.