Mover BBDD MySQL entre dos QNAP cuando una no funciona
#1
Hola

Voy a contar un caso real, sufrido en propias carnes. 

Escenario y primeras acciones
Si quieres evitarte la introducción que explica el porque necesito moverlos salta al siguiente título

Sin entrar en detalles una QNAP se ha degradado dejando de funcionar su entorno web de gestión. Afortunadamente los servicios SMB funcionaban.

En una segunda nas de QNAP genero las mismas carpetas y creo unas tareas de sincronización que copien los datos incluidos los permisos (ACL). Después cambié las IPs para que los equipos dejasen de acceder a la NAS dañada y accediesen a la nueva. Con esto el principal problema ya estaba resuelto pero,.... Tengo unas pequeñas bases de datos en MySQL de las cuales no tengo copia (error mío, SIEMPRE GUARDAR UNA COPIA).

En la operación de cambio de IP de la nas dañada, esta responde caoticamente. Desde Qfinder intento volver a escribir el mismo firmware, cambiar la ip, acceder web... pero no sale bien, se queda en modo dhcp pero al menos accedo por SSH.

Lanzo una petición de asistencia a QNAP. Me piden que haga unas operaciones : apagar qnap, retirar discos, encender qnap, esperar, introducir discos en la misma posición y ejecutar una serie de comandos por SSH. Se reconoce el raid pero no se monta el volumen. Gracias a sus comandos y haciendo alguna prueba mas consigo montarlo vía SSH y por fin accedo al volumen de datos /share/MD0_DATA.

Desgraciadamente el servicio MySQL no se levanta y no puedo acceder a su contenido  Sad

Mover BBDD MySQL

Desafortunadamente las bases de datos no son archivos como tal (en MS SQL si lo son, son dos archivos)
Así que no podemos copiar las bases en cuestión. Navegando por el árbol de directorios, examinando los enlaces simbólicos llego a la conclusión de que MySQL (MariaDB) está en la ruta
/mnt/ext/opt/mariadb/var (realmente es un enlace simbólico que en mi caso apunta a /share/CACHEDEV1_DATA/.@qmariadb/data)

En la nas destino no tengo definidas ninguna base de datos. Es decir están las de defecto.
Sólo cambié en su momento la clave del usuario root.

Nas dañada
En la nas dañada accedo a /mnt/ext/opt/mariadb/var que es donde están las bases de datos viejas.
Como no está levantado el motor de la base de datos puedo copiar todas los archivos y carpetas sin problemas (mejor no copiar archivos cuando están en uso)
Usando WinSCP copio todo el contenido de esa carpeta a la ubicación1 de un ordenador.

Nas operativa
Detengo el servicio de MySQL en la nas destino, la que funciona bien. Lo hago desde QTS, panel de control, servidores de aplicaciones, Servidor SQL y desmarco "Habilitar el servidor SQL". Tras aplicarlo ya puedo manipular los archivos (recordad que es mejor no manipular archivos cuando están en uso). Copio el contenido de esa carpeta a la ubicación2 de un ordenador.

Ahora copio el contenido de la ubicacion1 (datos de la antigua MySQL) a /mnt/ext/opt/mariadb/var en la nueva. Pero no lo hago con el directorio "mysql". Tengo mis sospechas de que aquí se guardan configuraciones, aunque aparentemente tienen el mismo contenido.

Luego activo MySQL, lo hago desde QTS, panel de control, servidores de aplicaciones, Servidor SQL y marco "Habilitar el servidor SQL" y "Habilitar la red TCP/IP".

Luego voy a la gestión de MySQL abriendo phpMyAdmin y ahí están mis bases de datos viejas. Simplemente hago copia de seguridad de las bases de datos desde el entorno de phpMyAdmin.

Para no arrastrar todo lo del sistema anterior e importarlo en la Nas operativa. Detengo de nuevo MySQL.
Borro el contenido /mnt/ext/opt/mariadb/var en la nas operativa desde el WinSCP.
Copio el contenido de ubicación2 a /mnt/ext/opt/mariadb/var. Es decir, la dejo como estaba al inicio.
Activo MySQL , lo hago desde QTS, panel de control, servidores de aplicaciones, Servidor SQL y marco "Habilitar el servidor SQL" y "Habilitar la red TCP/IP".
Y por fin desde phpMyAdmin importo las bases de datos antes exportadas.

Recordad que las bases de datos se exportaron en formato .sql
Para importarlas, antes hay que crear una base de datos vacía y luego podemos importar los datos desde el archivo .sql

Bueno espero que os sirva de ayuda y que no tengáis que hacer uso de esto  Wink
Un saludo

Agur eta ondo ibili

Mon (TS-469Pro y TVS-673)
 Responder
#2
(07-02-2018, 04:49 PM)Ganekogorta escribió: Hola

Voy a contar un caso real, sufrido en propias carnes. 

Escenario y primeras acciones
Si quieres evitarte la introducción que explica el porque necesito moverlos salta al siguiente título

Sin entrar en detalles una QNAP se ha degradado dejando de funcionar su entorno web de gestión. Afortunadamente los servicios SMB funcionaban.

En una segunda nas de QNAP genero las mismas carpetas y creo unas tareas de sincronización que copien los datos incluidos los permisos (ACL). Después cambié las IPs para que los equipos dejasen de acceder a la NAS dañada y accediesen a la nueva. Con esto el principal problema ya estaba resuelto pero,.... Tengo unas pequeñas bases de datos en MySQL de las cuales no tengo copia (error mío, SIEMPRE GUARDAR UNA COPIA).

En la operación de cambio de IP de la nas dañada, esta responde caoticamente. Desde Qfinder intento volver a escribir el mismo firmware, cambiar la ip, acceder web... pero no sale bien, se queda en modo dhcp pero al menos accedo por SSH.

Lanzo una petición de asistencia a QNAP. Me piden que haga unas operaciones : apagar qnap, retirar discos, encender qnap, esperar, introducir discos en la misma posición y ejecutar una serie de comandos por SSH. Se reconoce el raid pero no se monta el volumen. Gracias a sus comandos y haciendo alguna prueba mas consigo montarlo vía SSH y por fin accedo al volumen de datos /share/MD0_DATA.

Desgraciadamente el servicio MySQL no se levanta y no puedo acceder a su contenido  Sad

Mover BBDD MySQL

Desafortunadamente las bases de datos no son archivos como tal (en MS SQL si lo son, son dos archivos)
Así que no podemos copiar las bases en cuestión. Navegando por el árbol de directorios, examinando los enlaces simbólicos llego a la conclusión de que MySQL (MariaDB) está en la ruta
/mnt/ext/opt/mariadb/var (realmente es un enlace simbólico que en mi caso apunta a /share/CACHEDEV1_DATA/.@qmariadb/data)

En la nas destino no tengo definidas ninguna base de datos. Es decir están las de defecto.
Sólo cambié en su momento la clave del usuario root.

Nas dañada
En la nas dañada accedo a /mnt/ext/opt/mariadb/var que es donde están las bases de datos viejas.
Como no está levantado el motor de la base de datos puedo copiar todas los archivos y carpetas sin problemas (mejor no copiar archivos cuando están en uso)
Usando WinSCP copio todo el contenido de esa carpeta a la ubicación1 de un ordenador.

Nas operativa
Detengo el servicio de MySQL en la nas destino, la que funciona bien. Lo hago desde QTS, panel de control, servidores de aplicaciones, Servidor SQL y desmarco "Habilitar el servidor SQL". Tras aplicarlo ya puedo manipular los archivos (recordad que es mejor no manipular archivos cuando están en uso). Copio el contenido de esa carpeta a la ubicación2 de un ordenador.

Ahora copio el contenido de la ubicacion1 (datos de la antigua MySQL) a /mnt/ext/opt/mariadb/var en la nueva. Pero no lo hago con el directorio "mysql". Tengo mis sospechas de que aquí se guardan configuraciones, aunque aparentemente tienen el mismo contenido.

Luego activo MySQL, lo hago desde QTS, panel de control, servidores de aplicaciones, Servidor SQL y marco "Habilitar el servidor SQL" y "Habilitar la red TCP/IP".

Luego voy a la gestión de MySQL abriendo phpMyAdmin y ahí están mis bases de datos viejas. Simplemente hago copia de seguridad de las bases de datos desde el entorno de phpMyAdmin.

Para no arrastrar todo lo del sistema anterior e importarlo en la Nas operativa. Detengo de nuevo MySQL.
Borro el contenido /mnt/ext/opt/mariadb/var en la nas operativa desde el WinSCP.
Copio el contenido de ubicación2 a /mnt/ext/opt/mariadb/var. Es decir, la dejo como estaba al inicio.
Activo MySQL , lo hago desde QTS, panel de control, servidores de aplicaciones, Servidor SQL y marco "Habilitar el servidor SQL" y "Habilitar la red TCP/IP".
Y por fin desde phpMyAdmin importo las bases de datos antes exportadas.

Recordad que las bases de datos se exportaron en formato .sql
Para importarlas, antes hay que crear una base de datos vacía y luego podemos importar los datos desde el archivo .sql

Bueno espero que os sirva de ayuda y que no tengáis que hacer uso de esto  Wink

muy interesante. Entiendo que no existe forma de crear un respaldo periódico y automático de las bases de datos del nas
 Responder
#3
Hola

Miro algo y te digo porque por línea de comandos siempre es posible.
Luego sería dejarlo como tarea crobtab

¿Que idea tienes ? ¿Copia el día X (día mes o día semana) a las hh:mm ? Y lo más importante ¿a qué ruta destino?

¿Sabes el nombre de la base de datos a respaldar o quieres de todas?


Un saludo
Agur eta ondo ibili
Un saludo

Agur eta ondo ibili

Mon (TS-469Pro y TVS-673)
 Responder
#4
Y como en un entorno de producción no tienes varios servidores con los datos, en este caso de mariadb?

Yo me he pasado a base de datos no relacionales.. en mi caso mongodb! ...donde las replicas son una maravilla :)
 Responder


Usuarios navegando en este tema: 1 invitado(s)


Powered By MyBB 1.8.6, © 2002-2018 MyBB Group
Hora: 20-05-2018, 03:15 PM