Visitas: 251  
Tiempo total: 4 días con 15:31:4 hrs  

Supongamos el siguiente problema: la instalación actual de Moodle pesa más de 20GB, es decir que ha acumulado bastante información a lo largo del tiempo. Supongamos que el actual servidor Moodle permite descargas de un máximo de 25mb (es inestable) y también que el servidor destino tiene una quota de 10GB de espacio, entonces como solucionamos este problema?

Solución

Es normal que entremos en estado de pánico al ser los administradores del sistema y ver que todos los alumnos y catedráticos utilizan Moodle diariamente. Entonces, cual es la solución? Básicamente consiste en seleccionar los cursos de mayor importancia, es decir los cursos que están abiertos para el semestre en curso.

Paso 1

Es necesario hacer un backup de cada curso, la opción la encontramos al entrar a cada uno, después nos dirigimos a la sección “administración” y “copia de seguridad”.

1 - copia de seguridad

Paso 2

Una vez creamos la copia de seguridad, observaremos el nombre del archivo:

2 - zona de copia de seguridad

En este caso se llama “copia_de_seguridad-moodle2-course-190-sfpu_2016_02_comeval_humanidades-20160720-1249.mbz” y pesa 34.2MB.

Paso 3

La descarga vía web del archivo de 34.2 MB siempre quedará interrumpida (en mi caso), entonces debemos de hacerlo utilizando FTP. Para hacer esto, se busca en la base de datos la tabla mdl_files y hacemos la siguiente consulta:

WHERE filename = ‘copia_de_seguridad-moodle2-course-190-sfpu_2016_02_comeval_humanidades-20160720-1249.mbz’

La columna contenthash tiene el nombre del archivo en el servidor, se obtienen los primeros cuatro números y se separan en dos, cada par es una carpeta.

3 - contenthash

En resumen, si el valor de la columna contenthash es el siguiente:
f773abe72fce7faee5a54727eff0eb6f1f0dd7f1
Entonces, las carpetas que almacenan el archivo es: f7/73 que se encuentra en /moodledata/filedir/

4 - ftp

Paso 4

Al descargar el archivo, lo renombramos y lo subimos a la instalación limpia (desde cero) que hemos creado en el servidor final. Pero qué pasa cuando los archivos son de más de 100mb? Para evitar más atrasos, los subimos vía FTP.

Para hacer esto posible, activamos el repositorio “sistema de archivos”. Esta opción la encontramos en “administración del sitio”, “extensiones”, “repositorios” y “gestionar repositorios”.

5 - sistema de archivos

Ahora creamos una nueva instancia de repositorio. Esta opción la encontramos en “administración del sitio”, “extensiones”, “repositorios” y “sistema de archivos”.

6 - instancia de repositorio

Una instancia es una carpeta en el repositorio del sistema de archivos, la URL en mi caso es: /moodledata/repository/backup.

Paso 5

Ahora restauramos los cursos que hemos subido a la carpeta backup.

7 - importar

Al hacer clic en “seleccione un archivo” se abrirá la siguiente ventana emergente:

8 - backup y archivos privados

La opción “backup” tendrá todos los archivos que hemos subido (y tendrá el nombre que le asignemos). Si ocurre un error con la importación, entonces debemos de hacer una copia utilizando la opción “archivos privados”.

9 - archivos privados

Ese fue mi caso, al utilizar directamente los archivos alojados en “backup” me mostraba un error “curso incompleto” (algo así), entonces debía de copiarlos utilizando la opción “gestor ficheros privados” que se encuentra en “página principal” y “área personal”.

Finalizando

Hasta ahora todo quedo perfecto, pero hay que tener en cuenta a los usuarios que no están inscritos en los cursos que se migraron, entre estos, los demás posibles administradores de la plataforma.

Para migrar a todos los usuarios, podemos crear un curso temporal en el sistema moodle antiguo e inscribir a todos los usuarios, este curso nuevo lo descargamos y lo importamos a la plataforma nueva, por último, lo eliminamos. Con esto logramos migrar a todos los usuarios pero, sin la contraseña. En el sistema nuevo ningún usuario tendrá contraseña y tendrá que restablecerla utilizando su correo electrónico.

Problema con el envío de correos

Con esta migración deje de tener pánico para empezar a estresarme! el servidor destino no podía enviar correos electrónicos!! que es necesario para que las personas reestablescan su contraseña y reciban las notificaciones de cada curso.

Para solucionar esto, utilizamos la opción descrita en la siguiente página, que permite utilizar Gmail con Moodle:

https://docs.moodle.org/24/en/Email_setup_gmail

Es necesario leer las instrucciones porque es necesario habilitar Gmail para que pueda ser utilizada por aplicaciones externas (sin esto, Moodle no podrá enviar correos electrónicos):

https://accounts.google.com/DisplayUnlockCaptcha