[2.3] Problème de sauvegarde (automatique)

[2.3] Problème de sauvegarde (automatique)

par Séverin Terrier,
Nombre de réponses : 4
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Je viens de mettre à jour un de mes Moodle de 1.9 à 2.3.2 (en passant par 2.2.5), avec succès (j'essayerais de vous détailler toutes les opérations effectuées dans quelques jours) sourire

Par contre, j'ai voulu lancer des sauvegardes automatiques de la totalité des cours, mais lors de l'exécution du cron, j'obtient une erreur comme quoi la connexion à MySQL a été perdue (juste après l'actualisation des flux RSS) :

114 feeds refreshed (took 37.876449 seconds)
done.
Finished blocks
Starting admin reports
Finished admin reports
Starting main gradebook job...
!!! Erreur de lecture de la base de données !!!

Et le serveur m'envoi un mail d'erreur :

Default exception handler: Erreur de lecture de la base de données Debug: MySQL server has gone away
SELECT i.*
              FROM mdl_grade_items i
             WHERE i.locked = 0 AND i.locktime > 0 AND i.locktime < ? AND EXISTS (
                SELECT 'x' FROM mdl_grade_items c WHERE c.itemtype='course' AND c.needsupdate=0 AND c.courseid=i.courseid)
[array (
  0 => 1347287140,
)]
Error code: dmlreadexception
* line 407 of /lib/dml/moodle_database.php: dml_read_exception thrown
* line 903 of /lib/dml/mysqli_native_moodle_database.php: call to moodle_database->query_end()
* line 1343 of /lib/gradelib.php: call to mysqli_native_moodle_database->get_recordset_sql()
* line 309 of /lib/cronlib.php: call to grade_cron()
* line 61 of /admin/cli/cron.php: call to cron_run()

J'ai finalement masqué le bloc Flux RSS distants (et désactivé les RSS), afin de limiter la durée d'exécution (37s juste pour actualiser les flux) et éviter cette déconnexion, et que les sauvegardes démarrent.

Les sauvegardes ont bien démarré (mais juste démarré), et j'ai ensuite rapidement eu le message d'erreur suivant :

Checking automated backup status...OK
Getting admin info
Checking courses
Skipping deleted courses...0 courses
Running required automated backups...
Backing up Université Toulouse 1 Capitole - Formation Ouverte et à Distance - Formation en ligne - Enseignement numérique en droit, gestion, économie et informatique...
!!! Erreur de programmation détectée. Ceci doit être corrigé par un programmeur : moodle_database::insert_record_raw() no fields found. !!!

Et par mail :

backup_auto_failed_on_course FOAD UT1 Capitole
Default exception handler: Erreur de programmation détectée. Ceci doit être corrigé par un programmeur : moodle_database::insert_record_raw() no fields found. Debug:
Error code: codingerror
* line 1014 of /lib/dml/mysqli_native_moodle_database.php: coding_exception thrown
* line 1071 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
* line 72 of /backup/util/loggers/database_logger.class.php: call to mysqli_native_moodle_database->insert_record()
* line 63 of /backup/util/loggers/database_logger.class.php: call to database_logger->insert_log_record()
* line 94 of /backup/util/loggers/base_logger.class.php: call to database_logger->action()
* line 100 of /backup/util/loggers/base_logger.class.php: call to base_logger->process()
* line 100 of /backup/util/loggers/base_logger.class.php: call to base_logger->process()
* line 168 of /backup/util/helper/backup_helper.class.php: call to base_logger->process()
* line 317 of /backup/controller/backup_controller.class.php: call to backup_helper::log()
* line 394 of /backup/util/helper/backup_cron_helper.class.php: call to backup_controller->log()
* line 168 of /backup/util/helper/backup_cron_helper.class.php: call to backup_cron_automated_helper::launch_automated_backup()
* line 439 of /lib/cronlib.php: call to backup_cron_automated_helper::run_automated_backup()
* line 61 of /admin/cli/cron.php: call to cron_run()

Potential coding error - existing temptables found when disposing database. Must be dropped!
PHP Fatal error:  Exception thrown without a stack frame in Unknown on line 0
PHP Stack trace:
PHP   1. default_exception_handler() /var/www/html/foad/lib/setuplib.php:0

Si quelqu'un a une (bonne) idée, n'hésitez pas...

Séverin

Moyenne des évaluations  -
En réponse à Séverin Terrier

Re: [2.3] Problème de sauvegarde (automatique)

par Gael KERMARREC,

Bonjour voici le message d'erreur que j'ai quand je veux sauvegarder un cours sur moodle 2.3.

 

Une idée ?

 

Erreur d'exécution DDL sql

 

En réponse à Séverin Terrier

Re: [2.3] Problème de sauvegarde (automatique)

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Après avoir pas mal cherché, et être tombé sur plusieurs fausses pistes, j'ai trouvé une solution : j'ai modifié les paramètres de MySQL, afin d'augmenter les différentes valeurs de timeout (connect_timeout, wait_timeout et interactive_timeout). Ainsi, les sauvegardes se font sourire

Me reste tout de même des soucis avec des cours ayant de (très) gros volumes de données (en "fichiers obsolètes"), de plusieurs Go...

je ne sais pas si je dois réellement modifier ces valeurs de façon phénoménales ?

Séverin

En réponse à Séverin Terrier

Re: [2.3] Problème de sauvegarde (automatique)

par Daniel Méthot,
Avatar Moodleurs particulièrement utiles

Il est fort possible que les Moodleurs en hébergements mutualisés ne puissent accéder à ces paramètres MySQL ?

D'où la nécessité  sans doute:

  1. De ne pas utiliser les "fichiers obsolètes" comme conseillé.
  2. De construire des cours "légers".
  3. De placer des images de formats bien adaptés et pas l'image à 8MO tout droit sortie de son appareil photo !
  4. d'intégrer des codes d'intégration pour les vidéos au lieu de les déposer.
  5. D'utiliser des vrais formats adaptés au Web... sinon de convertir.

Un cours même assez conséquent peut souvent occuper moins de 20MO.

Daniel

En réponse à Daniel Méthot

Re: [2.3] Problème de sauvegarde (automatique) et taille des fichiers de cours

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Oui, dans les bonnes pratiques, ce serait ça sourire

Mais dans la pratique, et la situation dans laquelle je me trouve, nous utilisons depuis des années des liens unix afin de partager un ensemble de fichiers pour plusieurs cours, et que chaque cours bénéficie automatiquement de la dernière version à jour. Cela fonctionne très bien en 1.9 !

Par contre, en passant à Moodle 2.x, ces ensembles de fichiers sont automatiquement transférés dans la base interne de stockage de fichiers de Moodle, comme fichiers obsolètes. Et on se retrouve avec 3 Go pour le C2i et plus de 7 Go de fichiers multimédias pour les cours de langue...

... des quantités qui deviennent totalement non manipulables via l'interface de Moodle, avec plusieurs minutes nécessaires à chaque affichage de dossier triste

Et ce n'est qu'un des soucis rencontrés !

Séverin