FAQ de sauvegarde

Remarque : la traduction de cette page n'est pas terminée. N'hésitez pas à traduire tout ou partie de cette page ou à la compléter. Vous pouvez aussi utiliser la page de discussion pour vos recommandations et suggestions d'améliorations.

Sommaire

Comment puis-je sauvegarder un cours ?

Voir Sauvegarde de cours et Sauvegarde (administrateur).

Comment puis-je restaurer un cours ?

Voir Restauration de cours.

Comment puis-je sauvegarder mon site ?

Voir Sauvegarde de site.

Quels sont les avantages et les inconvénients de la sauvegarde sur site ?

La Sauvegarde de site est recommandé pour que toutes les données soient sauvegardées avec la meilleure confiance et le temps de récupération le plus court.

Pour un administrateur de site, les sauvegardes de cours automatiques sont plus coûteuses en termes de temps, d'utilisation du CPU et de stockage. Le temps de restauration d'un site en cours d'exécution prend plus de temps qu'une sauvegarde de site. Cependant, les enseignants et les administrateurs de site peuvent trouver des sauvegardes de cours comme moyen de créer une copie "fraîche" d'un cours qui peut être réutilisée (dans les anciennes versions de Moodle, dans les versions plus récentes voir Importation de cours) ou comme méthode pour distribuer un ou plusieurs cours sur d'autres sites Moodle.

Pourquoi la taille de ma sauvegarde de cours automatique est-elle beaucoup plus petite que celle de ma sauvegarde de cours manuelle ?

Il s'agit d'une décision de conception intentionnelle. En raison de la façon dont les fichiers sont stockés dans Moodle 2.x, il n'est pas nécessaire d'inclure les fichiers dans la sauvegarde si vous prévoyez de les restaurer sur le même site Moodle. Les laisser à l'extérieur permet d'économiser énormément d'espace disque et accélère considérablement la procédure de sauvegarde.

Quelles données ne sont pas contenues dans les sauvegardes de cours ?

En sélectionnant toutes les options lors de la configuration de la sauvegarde, vous pouvez inclure presque toutes les données dans le cours. Cependant, vous devez être conscient du fait que certains éléments ne sont pas sauvegardés :

  • Les questions du quiz ne sont sauvegardées que si au moins une question de leur catégorie a été ajoutée à un quiz.
  • Les balances ne sont sauvegardées que si elles sont utilisées par au moins une activité.
  • Les mots de passe des utilisateurs ne sont pas sauvegardés lorsque l'option "Inclure les utilisateurs inscrits" est sélectionnée.
  • Glossaire des données
  • Badges - s'ils n'ont pas été attribués à au moins un utilisateur et que les utilisateurs ne sont pas inclus dans la sauvegarde du cours.

Le processus se termine par : "Erreur : Une erreur s'est produite lors de la suppression d'anciennes données de sauvegarde". Que dois-je faire ?

Cette partie de la procédure de sauvegarde (ou de restauration) tente de supprimer les anciennes informations utilisées dans les exécutions précédentes en effectuant les tâches suivantes :

  1. Supprimer les anciens enregistrements de la table "backup_ids" : Vérifiez que le tableau existe, restaurez-le et réessayez.
  2. Supprimer les anciens enregistrements de la table "backup_files" : Vérifiez que le tableau existe, réparez-le et réessayez.
  3. Supprimer les anciens fichiers de "moodledata/temp/backup" : Effacez complètement le répertoire et réessayez.

Erreur1.png

Pour les points 1 et 2, il y a plusieurs façons de restaurer les tables, y compris en utilisant MySQL Admin.

Pour le point 3, voir ci-dessous :

Le message d'erreur indique le "répertoire non vide" et donne le chemin vers ce répertoire. Si vous y allez avec un programme FTP, vous pouvez voir ce qu'il y a et nettoyer. Ce pourrait être juste quelques sous-dossiers vides qui ont été laissés en trop. Cela peut aider de les supprimer. On peut aussi supprimer complètement le répertoire "moodledata/temp/backup". Cela peut prendre un peu plus de temps mais peut résoudre plusieurs problèmes à la fois.

Le processus se termine par : "Erreur XML : pas bien formé (jeton invalide) à la ligne YYYY". Qu'est-ce que je peux faire ?

Ce problème peut apparaître à n'importe quel moment du processus de restauration. Cela se produit lorsque l'analyseur XML détecte quelque chose d'incorrect dans le fichier de sauvegarde qui empêche un fonctionnement correct. Habituellement, elle est causée par des caractères "illégaux" ajoutés dans le cours original à cause d'un copier/coller de texte les contenant (caractères de contrôle, ou séquences invalides...).

La meilleure méthode pour traiter ce problème est :

  • Décompressez le fichier de sauvegarde problématique dans un dossier vide.
  • Ouvrez le fichier moodle.xml avec Firefox. Il vous montrera où (char exact) le problème se produit.
  • Modifiez le fichier moodle.xml avec un éditeur compatible UTF8 et supprimez ces caractères. Sauvegardez les modifications.
  • Testez à nouveau le fichier moodle.xml avec Firefox jusqu'à ce qu'aucune erreur ne s'affiche.
  • Compressez tout à nouveau (tout le contenu du dossier mais pas le dossier lui-même !).
  • Restaurez le parcours. Ça devrait marcher maintenant.
  • La restauration ne fonctionne toujours pas ? Voir la question suivante.

Aussi, si possible, il est fortement recommandé de résoudre ces problèmes dans le cours original aussi de Moodle lui-même. Une fois "réparé" là-bas, les problèmes seront résolus si vous créez de nouveaux fichiers de sauvegarde à l'avenir.

Le processus se termine par : "moodle xml non trouvé à la racine du fichier zip". Qu'est-ce que je peux faire ?

Si vous restaurez à partir d'une sauvegarde de fichier compressé, assurez-vous que le fichier moodle.xml est à la racine. Pour s'en assurer :

  1. Décompressez le fichier de sauvegarde du cours (exemple : mycourse.zip)
  2. Une fois le fichier décompressé, ouvrez le dossier (exemple : mycourse).
  3. Sélectionnez les dossiers dans le dossier mycourse ET le fichier moodle.xml et créez un fichier compressé de ces éléments (exemple : mycourse_new.zip)
  4. Téléchargez le nouveau fichier zip (exemple : mycourse_new.zip) et restaurez-le à partir de celui-ci.

Si le fichier de sauvegarde est garanti correct, cochez les chemins d'accès aux fichiers externes (zip, unzip). Des réglages incorrects conduisent également à ce message d'erreur (voir la discussion du forum Using Moodle moodle.xml non trouvé dans root... et MDL-14812).

Le processus se termine par : "Une erreur s'est produite lors de la copie du fichier zip..."

Ce problème est très probablement causé par un problème de permissions dans le répertoire de destination. Les fichiers de sauvegarde sont copiés dans "XXX/backupdata" sous votre répertoire dataroot (où XXX est l'identifiant du cours à sauvegarder).

Le problème pourrait également être causé par un disque plein, bien que cela soit beaucoup moins probable.

Pour obtenir des informations précises sur ce qui se passe, vous pouvez activer les messages de débogage dans Administration > Serveur > Débogage. (sélectionnez le niveau maximum - DEVELOPER) et/ou vérifiez les historiques d'erreurs du serveur web.

J'obtiens toujours une erreur XML. Comment puis-je nettoyer le fichier XML borked ?

Dans certains cas, les fichiers de sauvegarde XML peuvent contenir des caractères provoquant l'interruption du processus de restauration, même après les étapes décrites dans la question précédente. Dans de tels cas, vous pouvez essayer ce qui suit :

  • Décompressez le fichier de sauvegarde Moodle problématique dans un dossier vide. Moodle créera les dossiers du cours aussi longtemps que le mauvais fichier moodle.xml. Veuillez décompresser à l'aide de la fonction de décompression de Moodle.
  • Renommez le mauvais fichier moodle.xml en moodle-unclean.xml.
  • Si vous n'avez pas accès à la commande de votre serveur Moodle, en utilisant la fonction zip de Moodle, compressez le fichier moodle-unclean.xml uniquement, téléchargez le fichier compressé localement et décompressez-le. Il est très important de télécharger le fichier xml au format compressé pour éviter l'encodage de caractères indésirables lors du transfert d'un système d'exploitation à un autre.
  • Déplacez l'utilitaire Atlassian XML Cleaner Utility téléchargé dans le même dossier où se trouve votre fichier moodle-unclean.xml.
  • Lancez la commande suivante à partir de la commande :
java -jar atlassian-xml-cleaner-0.1.jar moodle-unclean.xml > moodle.xml
  • Si vous avez lancé l'utilitaire sur votre ordinateur local, compressez le fichier moodle.xml que vous venez de créer (et nettoyé, nous l'espérons) et téléchargez-le au même endroit à partir duquel vous avez téléchargé le fichier moodle-unclean.xml. Une fois téléchargé, décompressez-le à l'aide de la fonction de décompression de Moodle.
  • Compressez tout à nouveau (tout le contenu du dossier sauf le dossier lui-même !).
  • Restaurez le cours. Cela devrait maintenant fonctionner.

Qu'est-ce que ça veut dire : "Certains de vos cours n'ont pas été sauvés !"?

Il y a trois causes possibles à ce problème :

  1. Erreur - ceci se produit lorsque la procédure de sauvegarde a trouvé une erreur et n'a donc pas terminé la sauvegarde d'un cours particulier. Il s'agit d'erreurs "contrôlées" et la sauvegarde programmée se poursuit avec le cours suivant.
  2. Inachevé - cela se produit lorsque la procédure de sauvegarde échoue sans savoir pourquoi. Lors de la prochaine exécution du cron, il détecte que la dernière exécution a mal tourné, et continue à sauter la trajectoire problématique. Une solution possible serait d'augmenter la limite PHP/Apache dans votre installation (mémoire, temps d'exécution...). En jetant un coup d'oeil à vos tables d'historiques, vous devriez être capable de voir si le "crash" se produit à des intervalles de temps exacts (généralement un problème avec la variable max_execution_time de php), ou s'il y a un point exact où tous les cours sont cassés.
  3. Sauté - ceci se produit lorsqu'un cours n'est pas disponible pour les étudiants et n'a pas été modifié au cours du dernier mois (31 jours). Ce n'est pas une situation d'erreur - c'est une fonctionnalité, particulièrement utile pour les sites avec beaucoup d'anciens cours non disponibles, ce qui fait gagner du temps.

Pourquoi saute-t-on certains cours ?

AutoSauvegarde sauter des paramètres

Les routines "Sauvegardes de cours" de Moodle sont invitées à sauter automatiquement les cours en fonction de trois paramètres dans " Administration > Administration du site > Cours > Sauvegardes > Sauvegarde automatique". Les administrateurs de Moodle utilisent ces paramètres pour spécifier s'il faut " Sauter les cours cachés" (défini par défaut sur "Oui "), "Sauter les cours non modifiés depuis" (défini par défaut sur "30 jours") et "Sauter les cours non modifiés depuis la sauvegarde précédente" (défini par défaut sur "Non"). Un parcours qui répond à l'un des critères activés sera sauté lors de la prochaine exécution de Sauvegardes de cours.

Pourquoi la restauration s'arrête-t-elle au lieu de s'achever ?

Tenter de restaurer un cours vers une version de Moodle plus ancienne que celle sur laquelle le cours a été sauvegardé peut entraîner l'échec du processus de restauration. Pour garantir une restauration réussie, assurez-vous que la version de Moodle sur laquelle vous restaurez le cours est la même, ou plus récente, que celle sur laquelle le cours a été sauvegardé.

S'il s'arrête inopinément sans qu'aucune erreur ne s'affiche, réessayez avec Débogage allumé. Toute erreur que vous voyez maintenant peut aider les experts dans les forums de support à diagnostiquer votre problème. Vous pouvez également consulter les liens de discussion dans la section Voir aussi ci-dessous pour plus de conseils.

La restauration s'arrête avec le message "Essayer de restaurer l'utilisateur xxxx à partir du fichier de sauvegarde provoquera un conflit".

Ce message s'affiche quand :

  1. Le site cible a un utilisateur xxxx (xxxx étant le nom d'utilisateur) - souvent l'utilisateur administrateur.
  2. L'archive de sauvegarde en cours de restauration contient également un utilisateur xxxx (même nom d'utilisateur)
  3. Après diverses comparaisons, Moodle a déterminé que l'utilisateur du site cible xxxx et l'utilisateur de sauvegarde xxxx ne sont pas la même personne.

Si 1, 2 et 3 sont tous vrais, le processus de restauration s'arrête afin d'éviter que les activités de l'utilisateur de sauvegarde xxxx (messages de forum, tentatives de quiz, téléchargements d'affectation, etc) soient associées à l'utilisateur du site cible xxxx.

Voici les méthodes possibles pour faire correspondre les utilisateurs xxxx (et résoudre le conflit) :

a) Modifiez le fichier d'archive de sauvegarde users.xml et faites correspondre les champs courriel ou premier accès à ceux du site cible. Notez que le fichier de sauvegarde de nom de fichier de moodle.mbz' est un fichier compressé et peut être renommé en fichier de sauvegarde de nom de fichier de moodle.compressé et décompressé. Une fois l'édition terminée, recompressez et renommez en utilisant le nom du fichier original avec l'extension "*.mbz".

b) Modifiez les champs site cible et définissez les champs utilisateur courriel ou premier accès pour qu'ils correspondent à ceux du fichier de sauvegarde users.xml.

c) Dans Moodle 3.0.3 et au-delà et pour les conflits d'utilisateurs, administrateurs uniquement, activez le paramètre "Autoriser la résolution des conflits administrateurs" dans Administration du site > Cours > Sauvegardes > Réglages généraux d'importation par défaut. Le nom d'utilisateur du fichier de sauvegarde sera alors renommé "admin_xyz".

Pourquoi certains liens de cours sont-ils rompus dans un cours restauré ?

Les liens interactifs doivent être des URL absolues (complètes), par exemple
http://site.com/mod/resource/view.php?id=xxx
afin d'être traité correctement lors de la sauvegarde et de la restauration. Toute URL relative, par exemple
/mod/resource/view.php?id=xxx
,
../resource/view.php?id=xxx
or
view.php?id=xxx
entraînera la rupture de liens lorsque le cours sera restauré.


La restauration d'un cours entraîne des balises HTML cassées. Qu'est-ce que je peux faire ?

Cela est causé par les anciennes versions de libxml2 et PHP - essayez de les mettre à jour vers les dernières versions.

Comment puis-je extraire des fichiers originaux d'un fichier de sauvegarde Moodle ?

Si vous voulez vraiment récupérer les fichiers originaux à partir du fichier de sauvegarde (un fichier ".mbz") que vous avez téléchargé (en utilisant la fonction de sauvegarde et de restauration), vous pouvez le faire de la même manière qu'indiqué ci-dessus.

Le fichier de sauvegarde peut en fait être ouvert avec n'importe quel programme zip/unzip que vous pouvez télécharger. Une fois le fichier ouvert, vous devez l'extraire :

   The files.xml file.
   The files directory (folder).

L'étape suivante serait d'ouvrir le fichier "files.xml" dans un éditeur de texte, et :

   Recherchez le nom de chaque fichier que vous voulez obtenir.
   Prenez note de la valeur de la balise contenthash correspondante.
   Dans le dossier "files" que vous avez extrait, localisez le fichier dont le nom est le même que la valeur du contenthash et qui sera toujours situé dans un dossier dont le nom correspond aux deux premiers caractères du nom du fichier.

Supposons par exemple qu'il existe un fichier "backup_courses-120730.mbz" dont le fichier "files.xml" et le dossier "files" ont été extraits. Il y a un fichier PDF nommé "Leadership.pdf" qui est nécessaire pour une autre raison.

Ouvrez le fichier files.xml et :

1. Recherchez la chaîne de caractères "Leadership.pdf", qui se trouve dans ce cas sous la balise suivante <file id...&gt ; group tag :

 <file id="12345">
 <contenthash>fb6cf43a9b2d432403c70a2cb4c340dbb6225631</contenthash>
               :
 <filename>Leadership.pdf</filename>
               :
 <license>allrightsreserved</license>
 <sortorder>1</sortorder>
 </file>

2. Prenez note de la valeur contenthash correspondante : fb6cf43a9b2d432403c70a2cb4c340dbb6225631.

3. Comme les deux premiers caractères du contenthash sont "fb", ouvrez le dossier "fb" dans le répertoire "files" (qui a été précédemment extrait), et il y a un fichier nommé "fb6cf43a9b...". Renommez ce fichier en "Leadership.pdf", puis déplacez-le à un autre emplacement. Répétez cette opération pour tous les fichiers requis, en utilisant la bonne valeur contenthash bien sûr.

Erreur dmlwriteexception MySQL lors de la restauration d'un cours

Si vous obtenez une erreur dmlwriteexception lors de la restauration d'un cours, il est recommandé de convertir les tables InnoDB au format de fichier Barracuda. Voir la section "Conversion des tables InnoDB en Barracuda" dans Administration en ligne de commande pour plus de détails sur la raison pour laquelle cette option est recommandée ainsi que des informations sur un outil de conversion de tables.

D'autres questions ?

N'hésitez pas à poster dans Sauvegarde et restauration du forum sur moodle.org.

Voir aussi

Forum de discussion Moodle: