Esta sección describe lo que se puede hacer cuando el espacio de
tablas InnoDB
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 InnoDB
es configurarlo desde un
principio para que sea autoextensible, especificando el atributo
autoextend
para el último fichero de datos en
la definición del espacio de tablas. Entonces,
InnoDB
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
innodb_autoextend_increment
, 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
my.cnf
para agregar un nuevo fichero de datos
al final de innodb_data_file_path
, e iniciar
nuevamente el servidor.
Si el último fichero de datos especificado tiene la palabra clave
autoextend
, el procedimiento para editar a
my.cnf
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
innodb_data_file_path
. Entonces se podrá
agregar otro fichero de datos. Hay que recordar que solamente el
último fichero de datos en
innodb_data_file_path
puede especificarse como
autoextensible.
Como ejemplo, se asumirá que el espacio de tablas tiene sólo un
fichero de datos autoextensible ibdata1
:
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. InnoDB
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:
Utilizar mysqldump para hacer un volcado de
todas las tablas InnoDB
.
Detener el servidor.
Eliminar todos los ficheros existentes del espacio de tablas.
Configurar un nuevo espacio de tablas.
Reiniciar el servidor.
Importar el fichero de volcado de tablas.
Si se desea modificar la cantidad o tamaño de los ficheros de
registro (log) de InnoDB
, 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 my.cnf
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.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.