« Sauvegarder et restaurer la BDD de MediaWiki » : différence entre les versions
Aucun résumé des modifications |
(→Restauration : nuancement de l'avertissement) |
||
(2 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
Comment sauvegarder et restaurer la base de données de son wiki favori ? Grave question en vérité… Non, pas tant que ça en fait : cela se passe comme pour toute autre base de données. <ref>Lorsque j'ai commencé à écrire cette page, il y avait un problème avec les accents dans les titres des pages, qui étaient mal restaurés avec les options par défaut. Il fallait forcer l'utilisation de l'encodage '''[http://fr.wikipedia.org/wiki/Latin-1 latin1]''' (ISO-8859-1). Le problème semble néanmoins être résolu, et on peut à présent sauvegarder la base de données aussi bien en latin1 qu'en UTF-8.</ref> | |||
Comment sauvegarder et restaurer la base de données de son wiki favori ? Grave question en | |||
== Sauvegarde == | == Sauvegarde == | ||
Pour sauvegarder la base de données, utilisez la commande suivante (où ''BaseDeDonnées'' est la base de données de MediaWiki et ''Utilisateur'' l'utilisateur qui accède à la base) : | Pour sauvegarder la base de données, utilisez la commande suivante (où ''BaseDeDonnées'' est la base de données de MediaWiki et ''Utilisateur'' l'utilisateur qui accède à la base) : | ||
$ mysqldump -u Utilisateur -p | $ mysqldump -u Utilisateur -p -B BaseDeDonnées > FichierSauvegarde.dump | ||
Puis compressez à l'aide de '''bzip2''' (qui semble meilleur que '''gzip''' sur ce type de fichiers) : | Puis compressez à l'aide de '''bzip2''' (qui semble meilleur que '''gzip''' sur ce type de fichiers) : | ||
$ bzip2 -9 FichierSauvegarde.dump | $ bzip2 -9 FichierSauvegarde.dump | ||
Pour tout faire en une seule commande : | Pour tout faire en une seule commande : | ||
$ mysqldump -u Utilisateur -p | $ mysqldump -u Utilisateur -p -B BaseDeDonnées | bzip2 -9 > FichierSauvegarde.dump.bz2 | ||
== Restauration == | |||
'''''Attention''' : la nouvelle base doit avoir le même nom que l'ancienne, car le nom de la base est inclus dans le fichier dump (que vous pouvez éditer, au besoin). Si vous lancez ces commandes avec un vieux backup sur une base plus récente, vous risquez de perdre des données.'' | |||
Avant de restaurer notre base de données, il faut recréer une base vide, comme fait lors de l'installation de MediaWiki : | Avant de restaurer notre base de données, il faut recréer une base vide, comme fait lors de l'installation de MediaWiki : | ||
Ligne 35 : | Ligne 20 : | ||
mysql> grant all on BaseDeDonnées.* to 'Utilisateur'@'localhost' identified by 'MotDePasseEnClair' ; | mysql> grant all on BaseDeDonnées.* to 'Utilisateur'@'localhost' identified by 'MotDePasseEnClair' ; | ||
mysql> exit | mysql> exit | ||
Puis la restauration à proprement parler. Décompression du fichier de sauvegarde... | Puis la restauration à proprement parler. Décompression du fichier de sauvegarde... | ||
$ bunzip2 FichierSauvegarde.dump.bz2 | $ bunzip2 FichierSauvegarde.dump.bz2 | ||
... et injection dans la base vide : | ... et injection dans la base vide : | ||
$ mysql | $ mysql -h localhost -D BaseDeDonnées -u Utilisateur -p < FichierSauvegarde.dump | ||
Ce qui donne, en une seule commande : | Ce qui donne, en une seule commande : | ||
$ bunzip2 -c FichierSauvegarde.dump.bz2 | mysql | $ bunzip2 -c FichierSauvegarde.dump.bz2 | mysql -h localhost -D BaseDeDonnées -u Utilisateur -p | ||
== Script de sauvegarde automatique == | == Script de sauvegarde automatique == | ||
Ligne 73 : | Ligne 52 : | ||
# | # | ||
# Sauvegarde de la base de données | # Sauvegarde de la base de données | ||
mysqldump -u Utilisateur - | mysqldump -u Utilisateur -pMotDePasseEnClair -B BaseDeDonnées | bzip2 -9 > "${REP_SAUV}/mediawiki_${DATE}.dump.bz2" | ||
Adaptez le contenu des variables ''REP_SAUV'' et ''REP_MW'', respectivement en indiquant le répertoire où les sauvegardes seront stockées et le répertoire d'installation de MediaWiki. | Adaptez le contenu des variables ''REP_SAUV'' et ''REP_MW'', respectivement en indiquant le répertoire où les sauvegardes seront stockées et le répertoire d'installation de MediaWiki. | ||
Ligne 87 : | Ligne 66 : | ||
Quittez, sauvegardez, c'est prêt ! Dégustez très frais. | Quittez, sauvegardez, c'est prêt ! Dégustez très frais. | ||
== Notes == | |||
<references/> | |||
[[Catégorie:MediaWiki]] | [[Catégorie:MediaWiki]] |
Dernière version du 15 février 2010 à 09:04
Comment sauvegarder et restaurer la base de données de son wiki favori ? Grave question en vérité… Non, pas tant que ça en fait : cela se passe comme pour toute autre base de données. [1]
Sauvegarde
Pour sauvegarder la base de données, utilisez la commande suivante (où BaseDeDonnées est la base de données de MediaWiki et Utilisateur l'utilisateur qui accède à la base) :
$ mysqldump -u Utilisateur -p -B BaseDeDonnées > FichierSauvegarde.dump
Puis compressez à l'aide de bzip2 (qui semble meilleur que gzip sur ce type de fichiers) :
$ bzip2 -9 FichierSauvegarde.dump
Pour tout faire en une seule commande :
$ mysqldump -u Utilisateur -p -B BaseDeDonnées | bzip2 -9 > FichierSauvegarde.dump.bz2
Restauration
Attention : la nouvelle base doit avoir le même nom que l'ancienne, car le nom de la base est inclus dans le fichier dump (que vous pouvez éditer, au besoin). Si vous lancez ces commandes avec un vieux backup sur une base plus récente, vous risquez de perdre des données.
Avant de restaurer notre base de données, il faut recréer une base vide, comme fait lors de l'installation de MediaWiki :
$ mysql -u root -p mysql> create database BaseDeDonnées ; mysql> grant all on BaseDeDonnées.* to 'Utilisateur'@'localhost' identified by 'MotDePasseEnClair' ; mysql> exit
Puis la restauration à proprement parler. Décompression du fichier de sauvegarde...
$ bunzip2 FichierSauvegarde.dump.bz2
... et injection dans la base vide :
$ mysql -h localhost -D BaseDeDonnées -u Utilisateur -p < FichierSauvegarde.dump
Ce qui donne, en une seule commande :
$ bunzip2 -c FichierSauvegarde.dump.bz2 | mysql -h localhost -D BaseDeDonnées -u Utilisateur -p
Script de sauvegarde automatique
La sauvegarde de la base de données est une chose, mais il faut également sauvegarder les fichiers du wiki. Le plus simple est de sauvegarder tout le répertoire de MediaWiki. Et si on peut automatiser tout ça, c'est mieux. Mettez-donc ce qui suit dans un fichier appelé par exemple sauvegarde_mediawiki.sh (je manque d'inspiration) :
#!/bin/sh # # Déclarations des variables DATE=`date +'%Y-%m-%d'` # date au format année-mois-jour REP_SAUV="/chemin/vers/le/répertoire/de/sauvegarde" REP_MW="/chemin/vers/le/répertoire/de/MediaWiki" # # Préparatifs if [! -d "$REP_MW" ] ; then echo "Erreur : le répertoire à sauvegarder ($REP_MW) n'existe pas !" exit 1 fi if [ ! -d "$REP_SAUV" ] ; then mkdir -p "$REP_SAUV" || exit 2 fi # # Sauvegarde des fichiers tar cf - "$REP_MW" | bzip2 -9 > "${REP_SAUV}/mediawiki_${DATE}.tar.bz2 # # Sauvegarde de la base de données mysqldump -u Utilisateur -pMotDePasseEnClair -B BaseDeDonnées | bzip2 -9 > "${REP_SAUV}/mediawiki_${DATE}.dump.bz2"
Adaptez le contenu des variables REP_SAUV et REP_MW, respectivement en indiquant le répertoire où les sauvegardes seront stockées et le répertoire d'installation de MediaWiki.
Donnez-vous le droit d'exécuter ce fichier :
$ chmod u+x sauvegarde_mediawiki.sh
Il ne reste qu'à indiquer à notre ami cron qu'il doit exécuter ce script à fréquence régulière :
$ crontab -e
Par exemple, si vous désirez sauvegarder tous les deux jours à trois heures du matin, indiquez :
# m h dom mon dow command 0 3 */2 * * /chemin/vers/sauvegarde_mediawiki.sh
Quittez, sauvegardez, c'est prêt ! Dégustez très frais.
Notes
- ↑ Lorsque j'ai commencé à écrire cette page, il y avait un problème avec les accents dans les titres des pages, qui étaient mal restaurés avec les options par défaut. Il fallait forcer l'utilisation de l'encodage latin1 (ISO-8859-1). Le problème semble néanmoins être résolu, et on peut à présent sauvegarder la base de données aussi bien en latin1 qu'en UTF-8.