Ir a contenido
Está usando una versión antigua de su navegador. Este sitio web no está preparado para su visualización en navegadores obsoletos.
Por favor, por su seguridad, instale un navegador más actualizado y seguro.

Navegador Internet Explorer 8  Navegador Google Chrome  Navegador Mozilla Firefox
 

blog

16 ago

Mysqldump desde entorno chroot en Ubuntu Server

0 comentarios Linux , how-to , MySQL

Supongamos un caso que, antes o después, nos pasará en algún servidor: la máquina muere y es preciso acceder a ella desde un sistema de rescate (un LiveCD por ejemplo). Una de las tareas imprescindibles en ese escenario es hacer un backup de los datos antes de iniciar cualquier actuación de reparación. Los archivos se pueden respaldar sin problemas, pero, ¿qué hay de las bases de datos?

 

Veamos cómo hacer un mysqldump de nuestras bases de datos desde un entorno chroot en Ubuntu Server.

 

Montar directorios de la instalación original

 

Lo primero es, una vez arrancado el sistema de rescate, montar el directorio de sistema de nuestro servidor, por ejemplo:

 

 

$ mkdir /mnt/sistemax
$ sudo mount /dev/sda1 /mnt/sistema1 

 

Donde sda1 es el directorio raíz de la instalación que no funciona. Si hubiera más particiones que nos interesen para el backup, se montan de la misma forma.

 

A continuación, y para que el chroot funcione correctamente, es preciso exportar ciertos directorios de sistema que necesitará el kernel para arrancar servicios en el entorno chroot:

 

 

$ sudo mount ‐‐bind /dev /mnt/sistema1/dev
$ sudo mount ‐‐bind /proc /mnt/sistema1/proc
$ sudo mount ‐‐bind /sys /mnt/sistema1/sys

 

 

Y ya podemos arrancar el entorno chroot:

 

 

$ sudo chroot /mnt/sistema1

 

 

Problemas con upstart

 

Desde hace algunas versiones (Karmic Koala, creo), Ubuntu Server usa upstart para gestionar los servicios y demonios. Los servicios que funcionan bajo upstart no se pueden arrancar en un entorno chroot porque upstart funciona como un supervisor de servicios y los procesos dentro del entorno chroot no pueden comunicarse con el servicio upstart externo al chroot (Bug 430224). Esto causa que algunos paquetes, como MySQL, que ahora usan upstart en lugar de los clásicos scripts init no arrancarán en el entorno chroot. Para poder arrancar estos servicios, se debe configurar el entorno chroot para que /sbin/initctl apunte a /bin/true, con estos comandos:

 

 

$ sudo dpkg-divert --local --rename --add /sbin/initctl
$ sudo ln -s /bin/true /sbin/initctl

 

 

Hacer el dump

 

Una vez hecho esto, ya podemos arrancar MySQL en modo seguro y hacer el dump de las bases de datos que debamos respaldar, dump que posteriormente copiaremos a un lugar seguro:

 

 

$ sudo mysqld_safe --skip-grant-tables --skip-networking &
$ mysqldump unabasededatos > unabasededatos.sql

 



Comentarios


Aún no hay comentarios.

Añade un nuevo comentario







 Enviando, por favor, espera...
Debes rellenar todos los campos.

Nunca haré público tu email, sólo se requiere a efectos estadísticos.

Comentarios malsonantes, con insultos, racistas, homófobos o con malas intenciones serán eliminados.

¡Muchas gracias por participar!


Ver blog

Creative Commons License Esta web http://alvaroremesal.net , su contenido, texto e imágenes está licenciado bajo una Licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0 España.

2012 - Álvaro Remesal Royo   Avisos legales

logo-acms