Mooskw 2.5 y "adiós base de datos, adiós"

Mooskw 2.5 y "adiós base de datos, adiós"

de Jorge Malaga -España -
Número de respuestas: 2

Hola...muy buenas a todos...


He buscado información sobre problemas con las bases de datos, y sinceramente, he visto que el resultado de mi búsqueda no tiene fin...Parece que es un problema mas común de lo que parece, y esta vez...me ha tocado a mi.

Como cada caso es muy particular, por configuración, server, etc...me he decidido a escribir por si alguna persona, ha pasado por una situación similar...


Estábamos trabajando desde las primeras versiones con moodle y actualizamos regularmente, hata la 1.9 y pico... Como la versión de Moodle 2 prometia mejoras sustanciales (y así es), procedi a realziar la actualización de la 1.xx a la 2.xx...


Usando la versión Moodle 2.5, un día, unos de los administradores, me comento que al dar de alta a un alumno, el sistema se quedaba pensando, y que reiniciando la pagina, comprobaba que el alumno si se había incluido en el sistema...no obstante, ese comportamiento en moodle no era normal...


Me dispuse ha hacer una copia de seguridad de la BD y esta no dio error alguno, y desde la linea de comando y utilizando msql check, repair, etc...realice una revisión de las tablas de la base de datos...


Después de terminar... entre por mysql, para hacer otras comprobaciones, y sorpresa, me encontre que la base de datos se habia quedado con 5 tablas...no quiero contaros, el color de cara que se me quedo...ojo morado


Dije...jolines...igual he metido mal algún comando...y me dispuse a revisar...Tengo la costumbre de antes de meter comando en consola, abro un bloc de notas y pego el comando, lo reviso, y lo guardo...para saber luego los pasos que hice...

Pues revisando, revisando, no vi ningun DROP ni DELETES, ni PONME LA CARA BLANCA, por ningún lado...estado del momento: la base de datos fulminada...pero bueno..¡¡TENIA LA COPIA DE SEGURIDAD!!


Pues bien, me dispongo a subir la copia de seguridad, creo una nueva base de datos, configuro el cotejamiento, y le doy a importar...como pesa 18 mg, me dice que me tome un colacao, que puede tardar...y si tardaba un poco... Al final, la base de datos sube...pero me sale un letrero de color rojo, con una serie de datos y un error tipo 1340..pero veo las tablas...


Esto me olia mal pero, digo voy a problar y hago en el server un duplicado del sitio, del moodle data, y modifico el config.php..apunto ala nueva base de datos, y ERROR LEYENDO LA BASE DE DATOS..

Anda ¿y ahora?..Compruebo, las tablas con otra base de datos, de otro sitio que comparte server, y efectivamente la importación no esta completa...me faltan tablas..parece que se detuvo el proceso..


Dejo al lado este tema, y hago los mismo procesos con otra base de datos...copia de seguridad exportación importación duplicación y perfecto---msql si funciona correctamente...


Algunos detalles, que he scado en conclusión....la base de datos de Moodle 1.9 al actualizar a 2.5, es modificada...recuerdo el letrerito...actualizando la base de datos...Luego vi que unas tablas ponía InnoDB y otras MyISAM o algo así...si es normal no lo se...Las tablas que se quedaron después del desastre fueron InnoDB..el error al cargar la base de datos #1005 - Can't create table 'acm_assign' (errno: 13)... 


Así que ahora estoy aquí escribiendo estas lineas...con la esperanza de que alguien sepa como actuar...o como procedería en caso de una situación así...

Gracias anticipadas por vuestra atención...

Promedio de valoraciones: -
En respuesta a Jorge Malaga -España

Re: Mooskw 2.5 y "adiós base de datos, adiós"

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

Hola Jorge,

puede haber un montón de factores en juego, y desconozco completamente el entorno en el que estás teniendo el problema (sistema operativo, versión de mysql, si es un hosting vs si es tu servidor propio, etc). Pero mirando un poco en Google veo que el "(errno: 13)" que obtienes como parte del mensaje de error en l creación de la tabla acm_assign, en realidad significa que mysql no tiene permisos para crear/modificar/bloquear los ficheros necesarios para crear la tabla.

Por lo que si tienes acceso al servidor, deberías echar una ojeada a los logs de error de mysql, a la configuración de mysql (para ver qué directorios usa para las bbdd, etc.), el usuario con el que se ejecuta el servicio de msyql, los permisos de dicho usuario en los directorios/ficheros usados para las bbdd, si tienes apparmor/selinux activado y con qué conjunto de restricciones para el usuario que ejecuta el servicio de mysql, y cosas del estilo.

Saludos.

Iñaki.

En respuesta a Jorge Malaga -España

Re: Mooskw 2.5 y "adiós base de datos, adiós"

de Jose García | Nosolored -
Imagen de Moodlers de gran ayuda

Buenas tardes:

Como te comenta Iñaki Arenaza puede ser muchos los factores. Uno de las más habituales que el usuario de MySQL no tenga los permisos para crear tablas temporales sobre la base de datos de Moodle o que la migración de 1.9 a 2.5 no se haya completado.

¿El nuevo directorio moodledata/filedir se ha creado correctamente con todos las carpetas y archivos que existían en Moodle 1.9? ¿Te generó algún mensaje de error el proceso?

Es probable que la migración de 1.9 a 2.5 no se haya realizado completamente. 

Si te es posible simula antes la migración con una copia de tu sitio antes de hacerlo en producción. Una solución rápida es usar Bitnami (en Linux, Windows o en Mac) te permite montar rápidamente instalaciones de cualquier software (incluyendo Moodle) y permite recrear como sería el proceso de actualización. 

https://bitnami.com/stack/moodle/virtual-machine

https://bitnami.com/stack/moodle/installer

Instalas la máquina virtual o el instalador y simulas el proceso con los datos del aula Moodle que quieras actualizar.


Actualización a Moodle 2 de 1.9:

- Reviso si el usuario de MySQL tiene permisos para trabajar con tablas temporales ya que se necesita para la copia y restauración de cursos.

- En la base de datos reviso si la tabla mdl_backup_log ocupa muchos MB y limpio el contenido ya que sólo guarda el registro de las copias de seguridad. 

En versiones posteriores se añaden en la Administración opciones para que se eliminen los registros cada cierto tiempo. Así te ahorras tiempo de ejecución/conversión de datos. En alguna ocasión ha llegado a varios GB el tamaño de la tabla.

- Actualizo el aula 1.9 a la última versión 1.9.19+

Compruebo si las extensiones (módulos, plugins, etc.) de terceros tienen la última versión.

Muevo todo el contenido del software Moodle 1.9 (excepto .htaccess y config.php) a una carpeta.

Descargo la versión 2.0.10 de https://download.moodle.org/releases/legacy/ y descomprimo, copio a la raíz el contenido y realizo el proceso de actualización.

Si la base de datos es muy grande lo aconsejable es realizar la actualización por consola https://docs.moodle.org/33/en/Administration_via_command_line en lugar de hacerlo por navegador Web.

Después de la actualización hay que convertir las tablas MyISAN a InnoDB. También se recomienda hacerlo con los contenidos a utf8_unicode_ci. En Moodle 3.4 si no recuerdo mal necesita utf8mb4_unicode. Estos pasos son obligatorios.

En 2.0 también hay que realizar la conversión de tareas y preguntas al nuevo motor usado (cambia respecto de la 1.9). Este proceso no lo realiza directamente la actualización y debes hacerlo manualmente en la Administración del sitio para finalizarlo (aparecen un par de opciones para ello justo al final del menú de Administración).

Motor de Ayuda para actualizar Tareas

Motor de Ayuda para actualizar Preguntas

en /admin/tool/assignmentupgrade/index.php si no recuerdo mal.


Aunque la documentación de Moodle indica que 1.x -> 1.9.19+ -> 2.2.11 -> 2.7.20 -> 3.0.10 -> 3.4 prefiero realizar las actualizaciones de rama en rama en lugar de saltar entre ellas, sobre todo si tienes extensiones no estándares de Moodle como módulos, plugins, bloques, etc. de terceros. De paso se va actualizando el resto de extensiones con las correspondientes a cada versión. Cierto que es más entretenido pero lo veo más seguro. Sólo es una opinión personal.


No sé si será tu caso pero en una ocasión nos pasó al actualizar a ramas superiores desde 1.9 y y tuvimos que realizar un cambio en el fichero de configuración de MySQL como indican aquí https://moodle.org/mod/forum/discuss.php?d=164025 

my.cnf de MySql en la sección [mysqld] hay que insertar la línea

binlog_format = 'MIXED'

no se nos ha vuelto a dar el caso ya que era en un motor de MySQL antiguo. 


+info 

https://docs.moodle.org/all/es/Actualizaci%C3%B3n_FAQ

https://docs.moodle.org/34/en/Converting_your_MySQL_database_to_UTF8

https://docs.moodle.org/20/en/Upgrading_to_Moodle_2.0

Un saludo.