miércoles, 9 de julio de 2008

Cambiar de disco mysql

Bueno en esta situación les voy a contar algo que me paso en el trabajo y que lo pude solucionar muy rápidamente pero para no perderlo lo escribo para compartirlo con todos.


Tengo un servidor Linux el cual es servidor de base de datos mysql, el cual tiene un solo disco, y este se esta llenando, entonces se le agrego un nuevo disco. Hasta aquí todo normal, lo que hay que hacer es pasar la base de datos a el disco que se acabo de agregar.


Lo primero que hacemos es crear la partición, se pude hacer con muchos utilitarios que hay en la vuelta, pero a mi me gusta la forma tradicional, es decir con fdisk.


Entonces desde el prompt ejecutamos




fdisk




Esto nos lleva al menú de fdisk, el cual con m podemos ver todos los comandos que podemos ejecutar, en mi caso lo único que voy a hacer es crear la partición, esto solamente digitando la letra "n" ya nos empieza a crear la partición.


Luego de digitar n, nos empieza a preguntar, primeo si la partición es primaria o extendida, como mi idea es utilizar el disco entero, lo que hago es crear solo una partición primaria del total del disco, entonces en la pregunta le digo que si.


Luego nos pregunta desde que bloque y hasta que bloque va a tener esta partición, repito, como quiero el disco entero, dejo los valores por defecto en las 2 siguientes preguntas.


Luego fdisk vuelve al menú principal, y ahí solamente dándole "w" el guarda los datos en la tabla del disco y vuelve al prompt.


A esta altura tenemos la partición creada, ahora le debemos de la estructura (en definitiva los índices de la tabla del disco) del disco. Esto lo hacemos con el siguiente comando




Mkfs.ext3 /dev/sdc1




Me falto comentar 2 cosas una es que el disco es scasi por eso /dev/sdc, si fuera un disco Ide seria hdc, hdd o como sea, y además que elegí el formato ext3.


Luego de un rato el disco esta pronto para poder utilizarse, lo que tenemos que hacer es montarlo.


Para montarlo podemos hacerlo a mano cada vez que se reinicia el equipo, o se guarda en el archivo que monta los discos al arrancar. Yo por comodidad lo hago de la segunda forma, entonces tenemos que editar el disco fstab, que esta normalmente en la carpeta /etc, y lo que hay que hacer es copiar alguna línea de montaje, para poner los mismos parámetros y no errarle en alguno, igualmente se pude poner los parámetros que les guste, en mi caso le puse lo siguiente.




/dev/sdc1 /base ext3 acl,user_xattr 1 2




Como ven lo monte en la carpeta /base, antes de reiniciar o de montar el disco esta carpeta debe de existir, entonces hacemos lo siguiente




mkdir /base




Luego podemos probar sin reiniciar, lo que hacemos es




mount /dev/sdc1




Y si no nos tira ningún error debe de haber quedado montado, para verlo hacemos lo siguiente




df




Esto lo que hace es mostrarnos el espacio de los discos (también ejecutando el comando mount nos muestra si se monto). Si esta todo bien cuando se reinicie el servidor se montara automáticamente el disco.




Bueno si hasta ahora todo ha ido bien, lo que nos resta es mover la base de datos mysql de un disco a otro, esto es la parte mas fácil.


Primero paramos el motor




/etc/init.d/mysql stop




Luego copiamos la carpeta raíz de un disco a otro (en mi caso la carpeta estaba en /datos)




cp /datos/mysql /base/mysql




Luego de un rato, dependiendo del tamaño de la base, tenemos en el segundo disco todas las bases de datos.


Ahora eliminamos (yo por precavido deje un respaldo por un tiempo) la carpeta en donde estaba anteriormente.


Luego tuve que poner como el propietario de las carpetas al usuario y el grupo mysql




Chown mysql.mysl /base/mysql -R




Luego solamente hay que levantar mysql




/etc/init.d/mysql Stara




Y pronto, con esto tenemos 2 discos, y se libero espacio del primero que es el que nos daba problema.



Volver al inicio

No hay comentarios: