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

Administration MySQL Discussion :

mysqldump ne sauvegarde pas toutes les tables.


Sujet :

Administration MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    bibliothécaire
    Inscrit en
    Septembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bibliothécaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2012
    Messages : 27
    Points : 20
    Points
    20
    Par défaut mysqldump ne sauvegarde pas toutes les tables.
    Bonjour.

    Sur une machine sous Debian à laquelle je n'ai pas accès à distance et sur laquelle j'ai une base de 17Mo en localhost je voudrais automatiser la sauvegarde de la base de données mysql périodiquement.
    Je le fais régulièrement avec phpmyadmin quand je passe au local de la bibliothèque où se trouve la base et je m'envoie par mail un fichier localhost.sql qui contient la base et ses 231 tables.

    En attendant j'essaie en ligne de commande avec mysqldump avant d'automatiser avec cron.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqldump -u root -pxxx --opt biblio_prayssas > biblio_prayssas.sql
    Mais ça ne me sauvegarde que 145 tables sur 231 et à l'importation sur mon ordi personnel je suis obligé de créer la base biblio_prayssas d'abord pour importer les tables dedans ensuite.

    Avez-vous des pistes ? Merci.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    La sauvegarde de MySQL n'est pas pratiquable à chaud. Cela fait parties des nombreuses anomalies bogues et incohérences qui existe dans cet ersatz de SGBDR !

    A lire sur le sujet : http://blog.developpez.com/sqlpro/p9...oudre_aux_yeux

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    SQLPro, pour la version entreprise il y a MySQL Enterprise Backup qui semble proposer une option comme apply-log :
    apply-log

    Brings the InnoDB tables in the backup up-to-date, including any changes made to the data while the backup was running.
    Peut être qu'il est possible depuis peu de faire des backup à chaud avec la version entreprise, en tout cas ça ressemble déjà plus à un backup à chaud.

    Sinon mysqldump permet de faire un dump (consistent avec l'option --single-transaction) mais ce n'est pas un outil qui permet une vrai stratégie de sauvegarde à chaud comme pourrait l'entendre un DBA dans le monde des SGBDR commerciaux (et probablement aussi PG ou d'autres).

  4. #4
    Membre à l'essai
    Homme Profil pro
    bibliothécaire
    Inscrit en
    Septembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bibliothécaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2012
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    J'ai essayé avec l'option --single-transaction mais j'ai toujours 145 tables sauvegardées au lieu de 231. Enfin c'est ce dont je me rends compte à l'importation via phpmyadmin.

    Ce qui m'étonne c'est qu'après une sauvegarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ mysqldump -u root -pxxx --opt --host=localhost --log-error=log --verbose ma_base > ma_base.sql
    la commande suivante me rend

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ grep "Retrieving table structure for " log | wc -l
    231
    Donc, en principe 231 tables ont été sauvegardées. Sauf que fichier sql pèse 14,9 Mo au lieu de 17,1 et qu'à l'importation je ne retrouve pas mes 231 tables

    Toutes les tables sont de type MyIsam.

    J'en discute aussi sur un forum debian et la liste de diffusion du logiciel PMB dont la table est issue. Apparemment mysqldump ne pose de problème à personne d'autre.

  5. #5
    Membre à l'essai
    Homme Profil pro
    bibliothécaire
    Inscrit en
    Septembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : bibliothécaire
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2012
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    J'ai la réponse.
    Il faut réimporter la base en ligne de commande et pas avec phpmyadmin...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql -u root -pxxxx ma_base < ma_base.sql

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Oups, je viens de me rendre compte que je me suis trompé de post, désolé.
    --single-transaction c'est pour du Innodb et pas myisam
    Apparemment mysqldump ne pose de problème à personne d'autre.
    mysqldump est très bien pour réaliser un dump de la base (mais pas pour des sauvegardes à chaud qui était le sujet sur lequel je croyais poster...)
    et à l'importation sur mon ordi personnel je suis obligé de créer la base biblio_prayssas d'abord pour importer les tables dedans ensuite.
    C'est normal si le dump ne concerne qu'une base :
    http://dev.mysql.com/doc/refman/5.1/...-drop-database
    --add-drop-database

    Add a DROP DATABASE statement before each CREATE DATABASE statement. This option is typically used in conjunction with the --all-databases or --databases option because no CREATE DATABASE statements are written unless one of those options is specified.
    Pour le problème du nombre de table, pas d'idée surtout si tu passes par la ligne de commande, désolé.

    [edit] ah ben voilà, avec phpmyadmin il peut y avoir ce genre de problème...

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 204
    Points : 89
    Points
    89
    Par défaut
    J'en profite pour ajouter une information concernant la restauration de données à l'aide de mysql, en effet un bug existe (cf. http://bugs.mysql.com/bug.php?id=42996).

    Si tu essaye de restaurer une base de données supprimée à l'avance (ou n'existant plus), et que ton dump possède la ligne CREATE DATABASE, il arrive des fois où elle ne se créée pas et tu recevra donc un message DATABASE Xx doesn't exist. Il est donc nécessaire de la créer manuellement (ou via un script ou autre) avant de la restaurer.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/10/2010, 22h47
  2. Réponses: 4
    Dernier message: 08/11/2007, 12h47
  3. Réponses: 11
    Dernier message: 04/05/2006, 11h50
  4. Sélection de toute les tables d'une base
    Par lord_paco dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 21/07/2003, 14h56

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