Recuperación Plataforma

Recuperación Plataforma

de Rafael Mejias -
Número de respuestas: 7
Saludos.

Hace poco tuvimos una falla en el servidor donde estaba instalada la paltaforma moodle con una base de datos postgresql 8. El sistema de archivos se dañó completamente y no se pudo recuperar el sistema como tal.

Por fortuna los archivos correspondientes a moodle, al igual que la base de datos se encontraba en un sistema de discos externos (HP MSA 1000) los cuales no sufrieron daño alguno. Los archivos se almacenaron en un archivo comprimido y la base de datos se respaldó con el comando pgdump a un archivo de texto.

Estamos intentando reinstalar el sistema. Se instaló un servidor nuevo (Debian Etch, Apache2, PHP5, PostgreSQL8, etc.), se grabaron los archivos de moodle en su ubicación original y se ingresó la base de datos (comando psql), pero hemos tenido ciertos inconvenientes:

1.- En primer lugar la página mostraba un error de conexion a la base de datos.
2.- Se intentó instalar desde cero (base de datos en blanco) y luego se borro para luego ingresar la base de datos original pero da error de login.

Estamos bastante estresados ya que dicha plataforma debe estar funcionando esta misma semana.

¿Alguien me pudiera indicar el procedimiento correcto para respaldar en estos casos?

Gracias.

Rafael Mejias
Promedio de valoraciones: -
En respuesta a Rafael Mejias

Re: Recuperación Plataforma

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hola Rafael,

yo creo que los pasos para recuperar el servicio deberían ser algo así:

1) Mirar el config.php original y anotar las siguientes variables:
  • $CFG->dbname = 'moodledb';
  • $CFG->dbuser = 'moodleuser';
  • $CFG->dbpass = 'moodlepass';
  • $CFG->wwwroot = 'http://url/de/moodle';
  • $CFG->dirroot = '/ruta/al/directorio/moodle';
  • $CFG->dataroot = '/ruta/al/directorio/moodledata';


2) La copia de seguridad de la carpeta moodle, ponerla en el lugar especificado por la variable $CFG->dirroot

3) La copia de seguridad de la carpeta moodledata, ponerla en el lugar especificado por la variable $CFG->dataroot

4) En PostgreSQL, crear el usuario $CFG->dbuser con la contraseña $CFG->dbpass (CREATE USER moodleuser WITH PASSWORD moodlepass;)

5) Crear la BD $CFG->dbname (con la opción ENCODING 'utf-8' si la BD original era 'utf-8'). (CREATE DATABASE moodledb;)

6) Dar todos los permisos al usuario $CFG->dbuser en la BD $CFG->dbname (GRANT ALL PRIVILEGES ON DATABASE moodledb to moodleuser;)

7) Restaurar el dump de PostgreSQL en esa base de datos. Hacerlo con el usuario $CFG->dbuser para comprobar que tiene acceso y conectividad con la BD.

8) Ajustar el servidor web para que sirva en la dirección $CFG->wwwroot los contenidos de $CFG->dirroot

9) Invocar la URL de Moodle. Debería funcionar.

10) Si te da fallo de login a la BD a lo mejor tienes que revisar el fichero pg_hba.conf para confirmar que el servidor web tiene acceso a la BD $CFG->dbname con el usuario $CFG->dbuser, pero yo creo que por defecto si el PostgreSQL está en la misma máquina que el servidor web, debería funcionarte.

Espero no haberme dejado nada...ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Recuperación Plataforma

de Rafael Mejias -
Saludos, Eloy.

Bueno, te informo que revisé lo que mencionas y obtuve lo siguiente:

Notice: Undefined property: stdClass::$dbfamily in /var/www/home/moodle/public_html/lib/setuplib.php on line 246
Notice: Undefined property: stdClass::$dbfamily in /var/www/home/moodle/public_html/lib/dmllib.php on line 709
.
.
. (se repite el error de la linea 709 muchas veces)
Notice: Undefined property: stdClass::$dbfamily in /var/www/home/moodle/public_html/lib/dmllib.php on line 487

Después de muchas lineas de error aparece la página inicial de moodle mostrando todas las categorías, es decir, se esta conectando a la base de datos, pero cuando intento loguearme como administrador dice que no se puede conectar.

Qué estoy haciendo mal? Qué falta?
En respuesta a Rafael Mejias

Re: Recuperación Plataforma

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Hola Rafael,

pues para que estés viendo esos "Notices" que has puesto en el correo anterior... yo apostaría que algo tienes mal en tu fichero config.php.

Si estás utilizando PostgreSQL, deberías tener una línea así:

$CFG->dbtype = 'postgres7';

Está así? Si/no? Si no está así, qué valor tienes?

Ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Recuperación Plataforma

de Rafael Mejias -
>Si estás utilizando PostgreSQL, deberías tener una línea así:
>
>$CFG->dbtype = 'postgres7';

Eso es correcto. De hecho no creo que el problema sea de conexión pues al final se pueden observar las categorías y la página de inicio, y no creo que esto ocurriría si no se pudiera conectar a la base de datos...

En respuesta a Rafael Mejias

Re: Recuperación Plataforma

de Eloy Lafuente (stronk7) -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodle HQ Imagen de Moodlers de gran ayuda Imagen de Testers
Perdona que insista Rafael,

pero revisando el código, la única razón que se me ocurre para que te de ese error:

Notice: Undefined property: stdClass::$dbfamily in /var/www/home/moodle/public_html/lib/setuplib.php on line 246

es que la variable $CFG->dbtype en tu fichero config.php no sea ninguno de estos valores:

mysql, mysqli, postgres7, mssql, mssql_n, odbc_mssql, oci8po

Estás seguro de que alguno de ellos es el que aparece en tu config.php (en tu primer mensaje comentabas que estabas utilizando PostgreSQL 8, no habrás puesto en el config.php "postgres8" ?).

Ya siento volver a preguntarte lo mismo, pero es la causa más obvia que se me ocurre. Si tienes puesto "postgres8", cámbialo por "postgres7" y los mensajes desaparecerán, y Moodle funcionará completamente ok.

Ya contarás, ciao sonrisa
En respuesta a Eloy Lafuente (stronk7)

Re: Recuperación Plataforma

de Rafael Mejias -
Andale... pido disculpas Eloy. Estas en lo cierto!!!

Resulta que antes de respaldar la plataforma otro de los administradores intentando recuperar el sistema agregó una instancia (dbfamily) que decía postgre8 y esa fue la que había cambiado. Ahora que corregí "dbtype" no aparecen los errores...

Pero aún sigue sin loguearse. Hago clic en "Entrar" y aparece un error de navegador ("No se puede conectar") como si no encontrara la página.

Estoy revisando la configuración de Apache a ver si es eso...
En respuesta a Rafael Mejias

Re: Recuperación Plataforma

de Rafael Mejias -
Ok, superados los problemas de conexión (gracias, Eloy) seguimos con la recuperación.

Ahora aparece siempre el mensaje "Su sesión ha excedido el tiempo límite. Por favor, ingrese de nuevo", en la ventana de ingreso aunque intente loguearme por primera vez.

Además al intentar loguearme con el usuario admin (con la contraseña correcta) aparece "Usted no se ha autentificado" arriba a la derecha y no aparece el menú administrativo. Ni siquiera aparece el error de contraseña o usuario incorrecto.

Que puede ser eso?