IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

sauvegarde base MYSQL via script PHP


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juin 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juin 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut sauvegarde base MYSQL via script PHP
    Bonjour,

    j'ai un facturier en PHP avec une base de données qui tourne avec Wamps serveur.
    Je réalise une sauvegarde journalière de ma base via PHP avec ce bout de code. Le tout fonctionnait très bien sauf que....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $dossier='data_sauv/';
    $file_name='backup_facturier-deconect.sql';
    system("..\..\..\..\wamp\bin\mysql\mysql5.1.33\bin\mysqldump -h $host -u $user -B $base > $dossier$file_name");
    Normalement la sauvegarde compte 32 tables.
    Je viens de voir que depuis le 16 septembre mes sauvegardes ne comptent plus que 13 tables complètes.
    Les données de la 14ème table s'arrêtent au 14 septembre (manque donc 1 mois) et toutes les tables suivante sont manquante.

    Quelqu'un aurait il une piste?
    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juin 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juin 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    Problème toujours pas résolu

    Le soucis provient, je pense de ma table journal.
    Le dernier enregistrement sauvegardé possède l'ID9400 alors qu'il semble que la table soit incrémenté jusqu'à 9647 (voir code ci-dessous)

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE IF NOT EXISTS `journal` (
      `ID_journal` mediumint(10) unsigned NOT NULL AUTO_INCREMENT,
      `date` datetime DEFAULT NULL,
      `action` varchar(25) NOT NULL,
      `num_devis` varchar(10) NOT NULL,
      `commentaire` varchar(255) NOT NULL,
      PRIMARY KEY (`ID_journal`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COMMENT=`historique` AUTO_INCREMENT=9647 ;

    J'ai donc essayé de voir directement dans wamps la table et plus précisément la fin......
    pas possible de voir la fin de la table car un clic sur >> pour y accéder affiche directement sur la structure de la table.

    La solution serait peut être de vider la table, d'y remettre les 9400 ligne de la sauvegarde et de voir ce qui se passe
    mais là je connaitrais jamais la raison de mon problème.

  3. #3
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juin 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juin 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    j'ai enfin résolue mon problème. Eh oui je suis novice donc ça met du temps.
    Le problème venait bien de la table journal. La ligne 9401 était hs.
    Le message que j'avais dans wamp était : Table is marked as crashed and should be repaired
    Via l'interface de wamp j'ai réparé la table. Tout semble ok. Il manque juste la ligne 9401.

    Maintenant je voudrais comprendre pourquoi c'est arrivé et comment s'en prémunir.
    Vous allez surement me dire en fessant des sauvegardes régulière.... oui, sauf que si une table est crashed ça arrête la sauvegarde à cet endroit et il manquera les tables suivantes dans la sauvegarde.
    Les sauvegardes faite seront donc incomplète sans qu'on s'en aperçoive et ce jusqu'au jour ou on en a besoin. Pas très cool.

    Comment être sur que la base de données est saine avant de faire la sauvegarde?
    Comment être sur que les sauvegardes faite sont bien complètes ? 

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un article sur le contrôle regulier préventif des données :
    http://dev.mysql.com/doc/refman/5.7/...-schedule.html

  5. #5
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juin 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juin 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    Merci pour l'info.
    Je vais tenté de comprendre ce qu'ils disent et voir ce que je vais pouvoir faire.
    En prog, je suis novice, autodidacte et pas spécialement anglophone donc pas toujours évident.
    Lol

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    En résumé ils conseillent de lancer périodiquement (avec un cron par exemple sur un système linux) une vérification des tables.
    Il faut bien sûr ensuite prendre le temps de regarder s'il y a des alertes ou des erreurs.

  7. #7
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juin 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juin 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    Oui c'est ce que j'ai pu comprendre. Pas de cron pour moi.
    J'ai peut être trouvé, mysqlcheck fait un contrôle des tables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("..\..\..\..\wamp\bin\mysql\mysql5.1.33\bin\mysqlcheck -A --user=$user --password=$passe");
    Je viens de faire un test, maintenant je vais voir comment récupérer le résultat du test.
    Si ok, je fait ma sauvegarde.
    Si pas ok, alerte.

  8. #8
    Membre du Club
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juin 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juin 2010
    Messages : 88
    Points : 53
    Points
    53
    Par défaut
    Bonjour,
    Après avoir cherché un peu, si avant de faire une sauvegarde j'appelle mysqlcheck avec l'option auto-repair et optimize je devrais avoir une base de donnée toujours ok, non ?
    Y a il un risque pour la base de faire ainsi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    system("..\..\..\..\wamp\bin\mysql\mysql5.1.33\bin\mysqlcheck -h $host -B $base --silent --auto-repair --optimize --user=$user --password=$passe");
     
    system("..\..\..\..\wamp\bin\mysql\mysql5.1.33\bin\mysqldump -h $host -u $user -B $base > $dossier$file_name");

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 22
    Dernier message: 20/07/2010, 16h43
  2. Réponses: 1
    Dernier message: 26/01/2010, 00h06
  3. [MySQL] Recherche BDD MySQL via script PHP
    Par poitierjohan dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/10/2007, 13h12
  4. [MySQL] Récupération d'image dans 1 base mysql via php
    Par jomannix dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/05/2007, 13h54
  5. importer base mysql et script php...
    Par kenken38 dans le forum Administration
    Réponses: 8
    Dernier message: 04/05/2006, 18h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo