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 :

Problème avec Sauvegarde/restauration base de données via php


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2010
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2010
    Messages : 105
    Par défaut Problème avec Sauvegarde/restauration base de données via php
    Bonjour,
    je suis sous window avec wampsserver.

    depuis plus de 1 an je réalise régulièrement des sauvegardes de ma base de donnée via ce bout de code et je n'ai rencontré aucun problème jusqu'a hier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("..\..\..\wamp\bin\mysql\mysql5.6.17\bin\mysqldump -h localhost -u root -B facturier > $dossier$file_name", $return);
    La table concerné est ma table journal.
    Le code obtenu avec la sauvegarde pour la srtucture de la table est :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    DROP TABLE IF EXISTS `journal`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `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 AUTO_INCREMENT=5744 DEFAULT CHARSET=latin1 COMMENT='liste des envoie de mails réalisés depuis le facturier';
    /*!40101 SET character_set_client = @saved_cs_client */;


    Extrais des lignes avec problème.
    La sauvegarde c'est arrêté au milieu de la table jounal
    IL manque les 18 dernières tables et la fin de la table journal.
    ...
    ...
    (1256,'2015-03-10 18:01:43','Identification','','Connexion réussie niveau 2'),
    (1257,'2015-03-10 19:03:35','Identification','','Déconnexion réuvX$\r');
    ...
    

    Extrais des lignes avant problème.
    La sauvegarde est complète. Toutes les tables après journal y figurent.
    Le dernier ID de la table journal est 7862
    ...
    ...
    (1256,'2015-03-10 18:01:43','Identification','','Connexion réussie niveau 2'),
    (1257,'2015-03-10 19:03:35','Identification','','Déconnexion réussie'),
    ...
    
    Ma question :
    Comment la ligne ID 1257 peut changer sachant qu'il n'y a pas de mise à jour sur cette table.

    Merci

  2. #2
    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
    Par défaut
    Il peut y avoir un bug matériel ou logiciel.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2010
    Messages : 105
    Par défaut
    Merci de prendre du temps avec mon problème.
    J'étais absent quelques jours d'ou ma réponse tardive.

    j'ai fais une réparation de la table journal via l'interface de mysql.
    Ça fonctionne de nouveau mais il faut que je comprenne pourquoi ce problème et surtout comment être informé que j'ai une table avec un problème.
    Ci dessous les divers logs du jour si ça peux te donner une idée.

    1) Je pensais que avec le code utilisé pour sauvegarder ma base elle était optimisé et réparé à chaque sauvegarde ?

    2) Comment être sur que la sauvegarde est complète et fonctionnel ?

    3) Es ce que le code que j'ai pour optimiser et réparer la base avant de la sauvegarder ne fonctionnerait pas ?
    Je dis ça car via l'interface de mysql la réparation à fonctionné sans problème alors que la réparation ne s'est pas faite lors des sauvegardes.



    Méthode employé pour la sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //répare optimise la base de donnée
    system("..\..\..\..\wamp\bin\mysql\mysql5.6.17\bin\mysqlcheck -h $host -B $base --silent --auto-repair --optimize --user=$user --password=$passe");	
     
    //sauvegarde de la base de données	
    system("..\..\..\..\wamp\bin\mysql\mysql5.6.17\bin\mysqldump -h $host -u $user -B $base > $dossier$file_name", $return);




    Message suite à l'analyse via l'interface mysql de table journal avant réparation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    facturier.journal 	check 	error 	Wrong bytesec: 34-231-239 at linkstart: 57348
    facturier.journal 	check 	error 	Corrupt


    message suite à la réparation de la table via l'interface mysql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Table 	Op 	Msg_type 	Msg_text
    facturier.journal 	repair 	info 	Wrong bytesec:  34-231-239 at 57348; Skipped
    facturier.journal 	repair 	warning 	Number of rows changed from 5757 to 1445
    facturier.journal 	repair 	status 	OK

    Message d'erreur dans la table apach-error-log le jour ou le problème est apparu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysqldump: Error 1194: Table 'journal' is marked as crashed and should be repaired when dumping table `journal` at row: 1099


    Message d'erreur dans la table mysql-log le jour ou le problème est apparu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    160330  1:33:09 [Note] Event Scheduler: Purging the queue. 0 events
    160330  1:33:10 [ERROR] wampmysqld: Error writing file '.\mysql-bin.001365' (Errcode: 13)
    160330  1:33:10 [ERROR] wampmysqld: Can't sync file '.\mysql-bin.001365' to disk (Errcode: 9)
    160330  1:33:10 [ERROR] Error writing file 'mysql-bin' (errno: 9)
    160330  1:33:10  InnoDB: Starting shutdown...
    160330  1:33:10  InnoDB: Operating system error number 21 in a file operation.
    InnoDB: Some operating system error numbers are described at
    InnoDB: http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.html
    InnoDB: File name .\ib_logfile0
    InnoDB: File operation call: 'Windows aio'.
    InnoDB: Cannot continue operation.
    160330 15:14:04  InnoDB: Started; log sequence number 0 46409
    160330 15:14:04 [Note] Recovering after a crash using mysql-bin
    160330 15:14:04 [Note] Starting crash recovery...
    160330 15:14:04 [Note] Crash recovery finished.
    160330 15:14:06 [Note] Event Scheduler: Loaded 0 events
    160330 15:14:06 [Note] wampmysqld: ready for connections.
    Version: '5.1.33-community-log'  socket: ''  port: 3306  MySQL Community Server (GPL)
    160330 15:14:45 [Note] wampmysqld: Normal shutdown

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    Y a pas eu de disfonctionnement de l'application ? J'ai eu un jour un problème de table crashée et mon appli web était inutilisable

    Pour la ligne qui est censée réparer et optimiser la table, y aurait pas une histoire de droit ? Peut être que tu te connecte avec mysql en root et que ton script de sauvegarde utilise les accès d'un utilisateur.

    2) Comment être sur que la sauvegarde est complète et fonctionnel ?
    En la testant, tout simplement. Perso, une fois par mois je remonte l'ensemble des backups que j'ai (je bosse dans une petite boite, j'ai une procédure carrée, des vms toutes prêtes, du coup je fais ca en quelques minutes) pour vérifier qu'il fonctionne. Pas très long, et au moins je suis sûr de mon coup.

    Après s'agissant d'un simple backup sql, tu dois facilement pouvoir scripter un upload de la sauvegarde sur un serveur de test et exécuter quelques requêtes pour vérifier que toutes les tables soient présentes et que certains enregistrements soient conformes.

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/06/2008, 21h08
  2. Problème avec Textbox liée à base de données
    Par chrislcf dans le forum ASP.NET
    Réponses: 3
    Dernier message: 28/05/2008, 11h08
  3. Réponses: 1
    Dernier message: 05/03/2008, 17h52
  4. problème de sauvegarde sur base de données
    Par thunderpat dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/12/2007, 15h10
  5. Problème de sauvegarde de bases de données
    Par Gwipi dans le forum Administration
    Réponses: 2
    Dernier message: 09/09/2005, 08h30

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