Sauvegarde automatique de la base SQL

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Petit script qui permet de faire des sauvegardes régulières et automatiques de la base SQL du site. Le script gère également la destruction de sauvegardes trop anciennes.

Voici un script écrit par Matthieu Onfray dont le site a disparu et dont je ne fais que transmettre l’œuvre.

Objectif :
« Export_base » permet de programmer la sauvegarde automatique de la base SQL du site à intervalle régulier. Il gère également la destruction de sauvegardes trop anciennes. Le fichier sauvegardé est utilisable directement avec SQL, ou une interface plus conviviale telle que phpMyAdmin.

Par exemple, le script sauvegarde la base tous les deux jours et détruit toutes les sauvegardes vieilles de plus de 10 jours.

Note : Ce script ne sauvegarde pas les fichiers du serveur FTP , il s’occupe uniquement de la base SQL de votre site internet (les tables utilisés par spip et également les autres tables s’il y a lieu).

Installation :
-  Télécharger les fichiers « export_base.php », « export_base2.php » et « export_base_conf.php » sur le serveur.

-  Ajouter le code suivant dans « ecrire/index.php3 » juste après la ligne include (« inc.php3 »).
De plus il faudra penser à refaire cette modification à chaque mise à jour de votre version de spip.

//MODIF SILICIUM
if (($connect_statut == "0minirezo") || ($connect_statut == "1comite"))
{
	if (empty($HTTP_COOKIE_VARS["addon_sauver_base_auto"]))
	{
		//sauver la base
		include("export_base2.php");
		if ($fin_sauvegarde_base) setcookie("addon_sauver_base_auto","ok");
		if ($sauver_base) 
		{
			if (!$fin_sauvegarde_base) echo "Problème de sauvegarde de la base $base<br>";
			if ($ecrire_succes && $fin_sauvegarde_base) echo "
			<script language=\"javascript\">
			<!--
			alert(\"Sauvegarde de la base effectuée avec succès !\", \"Maintenance\");
			//-->
			</script>
			";
		}
	}
}
//FIN MODIF

Configuration :
Toute la configuration se fait en modifiant les paramètres dans le fichier « export_base_conf.php ». De nombreuses options sont disponibles, notamment l’endroit où sera placée la sauvegarde. Le fichier peut également être envoyé par email.

À noter :
Un résumé de la configuration peut être affiché en pointant son navigateur sur le fichier « export_base.php ».

Dernière modification de cette page le 24 janvier 2007

Discussion

5 discussions

  • Joseph Tux

    Bonjour,
    L’utilité d’un tel plugin est évidente. Bravo

    Est-ce que ce script déjà ancien ( en php3 ) est parfaitement sûr pour une installation avec php5 sur une base MySQL5 ?

    Répondre à ce message

  • 1

    J’ai installé la contrib et paramétré export_base_conf pour une sauvegarde « a la connection d’un
    rédacteur » ... La sauvegarde semble s’effectuer :

    -  Création fichier correspondant my102090_17_02_2006.gz dans le repertoire
    data (750k)

    -  Message m’indiquant « sauvegarde de la base correctement effectuée »

    Mais j’ai également le message suivant
    Warning : mysql_fetch_array() : supplied argument is not a valid MySQL result
    resource in
    /home/httpd/vhosts/monsite.com/httpdocs/spip/ecrire/export_base2.php on line
    208

    Une idée ?

    Je n’ai pas encore testé la restauration en utilisant le fichier créé

    • DumbaDonf

      J’ai le même probleme : Warning : mysql_fetch_array() : supplied argument is not a valid MySQL result resource in as-tu trouver une solution depuis toutes ces années ?

    Répondre à ce message

  • 4

    Voilà le message d’erreur que j’obtiens en testant la restauration (alors que j’effectue la manip avec la même version) :

    Attention ! Le fichier intra56_4_08_2005.gz correspond à une autre version de SPIP que celle que vous avez installée. Vous allez au-devant de grosses difficultés : risque de destruction de votre base de données, dysfonctionnements divers du site, etc. Ne validez pas cette demande d’importation.

    Une idée ?

    • Il semblerait que tu cherches à restaurer la base d’une ancienne version de SPIP et, comme il te l’est précisé, c’est excessivement déconseillé. Le problème ne vient pas du systême de sauvegarde automatique mais des éventuelles modifications de la base SQL que la nouvelle version de SPIP a pu faire durant la mise à jour.

      Mon conseil, si tu as ABSOLUMENT besoin de restaurer ta base SQL :
      -  Assure-toi que tu as une copie de tes fichiers SPIP *ancienne version* et de tes squelettes.
      -  Efface la base SQL en utilisant la commande de SPIP (« Admin_Effacer.php3 »).
      -  Efface tous les fichiers SPIP sur ton serveur FTP.
      -  Copie les fichiers ORIGINAUX de l’ancienne version de SPIP.
      -  Remplis toute la procédure d’initialisation. Cela va recréer une base SQL.
      -  Copie tes fichiers squelettes.
      -  Restaure à partir du fichier de sauvegarde.

      Je dois te dire que cette procédure est TRES périlleuse. Elle a fonctionné pour moi dans le passé.

      J’espère que ça t’aide.

    • Sauf que je n’ai pas changé de version de SPIP (je fais juste un test de votre contrib), la meilleure preuve c’est qu’en faisant le dump classique de SPIP je parviens à faire après un restore sans problème...

    • Oui mais là on parle d’export par phpmyadmin et non par SPIP. On parle d’une sauvegarde de base de donnée complète et non uniquement des tables SPIP. Pour restaurer une base sauvegardée avec cette contribution, il faut utiliser un outil comme phpmyadmin (fourni par la plupart des hébergeurs) et importer le fichier compressé dedans.

      @+
      Paul Sanches
      http://www.netdeveloppeur.com

    • Puisque ce script sauvegarde l’ensemble des tables de la base de données, serait-il possible de l’utiliser pour sauvegarder les données de mon forum phpbb ?

      Ce serait super... !

      buy phentermine

    Répondre à ce message

  • Bonjour merci pour tout

    petite precision

    Télécharger les fichiers « export_base.php », « export_base2.php » et « export_base_conf.php » sur le serveur.

    l’install des fichiers doit se faire dans le repertoire « ecrire ».

    Eric

    Répondre à ce message

  • S. Bourdon

    Puisque ce script sauvegarde l’ensemble des tables de la base de données, serait-il possible de l’utiliser pour sauvegarder les données de mon forum phpbb ?

    Ce serait super...!

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom