Sauvegarde de bases de données
Pour l'instant,
WikiNi n'offre pas d'outils spécifiques pour sauvegarder sa base de donnée. Mais vous pouvez utiliser des solutions externes.
1. PhpMyAdmin
Remarques :
- Provoque une erreur avec tables de plus de 1 Mo.
- Une solution est d'utiliser les outils présents dans phpMyAdmin et notamment la fonction "dump" de base de données.
(A compléter)
2. L'outil sqlgzdump
Remarques :
- Provoque une erreur avec tables de plus de 1 Mo.
Plus simplement vous pouvez utiliser l'utilitaire suivant :
sqlgzdump qui permet d'obtenir un "dump" d'une base de donnée sous forme compressé. Sqlgzdump est un travail d'adaptation basé sur le dump de
phpMyAdmin ; sa licence est la GPL.
Son utilisation est simple : vous le transferez sur votre serveur, éventuellement dans un repertoire protégé par htaccess, après avoir renseigné les informations "host", "user" et "password" dans l'entête du programme.
Pour sauvegarder une base de donnée dans sa totalité, tapez dans votre navigateur :
http://www.myurl.org/sqlgzdump.php?db=db_name
Pour sauvegarder une table :
http://www.myurl.org/sqlgzdump.php?db=db_name&table=table_name
Les bricoleurs pourront automatiser leur sauvegarde avec wget disponible sous
unix ou sous
windows avec une commande de ce type :
wget "http://www.myurl.org/mydumpdir/sqlgzdump.php?db=db_name" -O wikini.gz.
3. L'utilitaire BackupDB
Remarques
- Fonctionne avec des tables de plus de 1 Mo.
- N'oubliez pas de sauvegarder au moins une fois la structure de vos tables séparemment des données.
Installation
- Récuperer les sources de BackupDB? à cette adresse : http://www.silisoftware.com/scripts/backupDB/backupDB.zip
- Créer un répertoire BackupDB? sur le ftp du site
- Dézipper les sources de BackupDB? et les copier dans le repertoire du serveur créé à cet effet.
- Modifier le fichier backupDB.config.php du serveur en renseignant les lignes suivantes :
- Le courriel : define('ADMIN_EMAIL', 'admin@exaimple.com'); // ex : admin@example.com
- Nom du serveur MySQL : define('DB_HOST', (isset($_REQUEST['DB_HOST']) ? $_REQUEST['DB_HOST'] : 'mon.serveur.sql')); // ex : 'mon.serveur.sql' (en local, localhost)
- Nom d'utilisateur MySQL : define('DB_USER', (isset($_REQUEST['DB_USER']) ? $_REQUEST['DB_USER'] : 'nomutilisateur')); // ex : nomutilisateur
- Mot de passe de l'utilisateur MySQL : define('DB_PASS', (isset($_REQUEST['DB_PASS']) ? $_REQUEST['DB_PASS'] : 'motdepasse')); // ex : motdepasse
- Si vous avez plusieures bases, vous pouvez aussi préciser de n'en sauver qu'une seule en décommentant : //define('DB_NAME', 'database'); et en renseignant le nom de la base en question. Si aucune précision n'est donnée, toutes les bases seront sauvées
- un dossier "backupdb" dans le premier répertoire BackupDB? du serveur
- Assigner les droits "777" à ce répertoire (sinon le scropt échou).
Effectuer une sauvagarde
En mode manuel (intéractif)
- Lancer le script par cette adresse : http://monserveur/BackupDB/backupDB.php
- Suivre les instructions.
- Enfin stocker en lieu sûr le fichier de sauvegarde reçu pas courriel ou ce trouvant sur le ftp dans le répertoire http://monserveur/BackupDB/backupdb à l'aide de votre logiciel de ftp favoris.
En mode automatique
- Déterminer l'url à appeler automatiquement en fonction des paramêtres acceptés par BackupDB :
- nohtml=1 : active le mode automatique.
- StartBackup?=complete : sauvegarde toutes les tables ; sauvegarde toutes les bases si l'option onlyDB n'est pas définie.
- onlyDB=dbnom : sauvegarde une base en particulier.
- SelectedTables?[dbnom]=tablenom : Indique le nom d'une table de l'une des bases à sauvegarder.
- mailto=1 : Envoie une copie du fichier de sauvegarde créé sur le serveur par courriel.
Exemple : L'execution de l'URL
http-passwd=xxxxxxx http://monserveur/BackupDB/backupDB.php?nohtml=1&onlyDB=agenda&StartBackup=complete&mailto=1 provoquera la sauvegarde de toutes les tables de la base "agenda" et en envera une copie par courriel à l'administrateur.
- Automatiser la sauvegarde en utilisant une crontable avec la commande :
- Sous Unix : wget --http-user=xxxxxx --http-passwd=xxxxxxx http://monserveur/BackupDB/backupDB.php?nohtml=1&mesoptions
- Sous Windows : (A ajouter)
- Enfin stocker en lieu sûr le fichier de sauvegarde reçu pas courriel ou ce trouvant sur le ftp dans le répertoire http://monserveur/BackupDB/backupdb à l'aide de votre logiciel de ftp favoris.
- Si vous ne disposez pas de crontable ou que la machine qui doit executer la sauvegarde n'est pas toujours allumée, vous pouvez aussi ouvrir un compte sur http://www.webcron.org/ (Voir la doc fournie en ligne)
Restauration de la base
La restauration s'effectue à l'aide de PhpMyAdmin (voir la section 1)
Vous trouverez sur le site
http://www.webcron.org/ toutes les instructions détaillées en français.
5. Un script tout simple ?
http://developpeur.journaldunet.com/tutoriel/php/050304-php-dump-mysql.shtml
Une
ActionBackup est en cours de développement à partir des scripts de
BackupDB?. Cette mention est purement indicative à ce jour. Ne l'utilisez pas pour l'instant sauf si vous souhaitez nous aidez à la tester ou à l'améliorer.
Demande d'infos
Bonjour,
J'ai opté pour l'utilisation de backUp DB car d'apres ce que j'ai lu c'est ce qui marchera a coup sur... Cependant, j'ai plein de questions a poser avant de pouvoir m'en servir...
Tout d'abord une premiere question : Est-ce que la sauvegarde de la base de donnée correspond bien a une sauvegarde du site. C'est-a-dire, en cas de bug du serveur de free (je suis sur une page perso de free) , est-ce-que grace a cette sauvegarde, je pourrais reinstaller entierement mon wiki avec un simple copier/coller ???
Le contenu des pages est-il bel et bien sauvegardé ???
- ok merci pour cette premiere reponse au moins je sais que je suis sur la bonne piste, reste plus qu'a trouver comment se servir de cette action...
A bientot !
Autre question, une fois le dossier telechargé (je me retrouve avec un fichier
backupDB.config, un fichier
backupDB.functions et un fichier
backupDB) qu'est-ce que je fais de tous ces fichiers, ou je les mets sur mon site ??? Serait-il possible que quelqu'un me détaille le plus possible ce qu'il faut faire comme cela a été fait pour l'outil
sqlgzdum ???
Ensuite, quelle action dois-je faire pour effectuer une sauvegarde une fois l'outil installé ???
Comment je recupere cette sauvegarde sur mon disque dur ???
Enfin, comment reinstaller cette sauvegarde quand j'en aurais besoin ???
Voila voila, vous l'aurez sans doute compris je suis loin d'etre un utilisateur expérimenté de tout ca et dès que les discussions deviennent un peu techniques (meme si elles ne vous le semblent pas... ;-]) je suis rapidement perdu ; alors n'hesitez pas a me repondre comme si j'etais un gamin de 6 ans.... ;-] Histoire de ne pas avoir a vous redemander des détails...
Merci beaucoup pour l'aide que je ne tarderais pas a recevoir (ca s'est toujours tres bien passé sur ce site alors je suis confiant !)
A tres bientot
URBUT.Full