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 PostgreSQL Discussion :

Soucis de restauration BDD.sql


Sujet :

Administration PostgreSQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Soucis de restauration BDD.sql
    Bonjour à toutes & tous,

    Avant d'aborder le petit soucis auquel je fais face, j'aimerai vous faire une bref introduction de ce qui fait tourner mon serveur PostgreSQL.
    L'Os utilisé est une Debian 8 Jessie mis à jour constamment, je possède la version 9.4 de PostgreSQL ( la dernière en date il me semble ), PgAdmin, PhppgAdmin, Webmin, tout une panoplie comme vous pouvez le constater pour mon OpenERP sous version 7 x)

    Passons à autre chose, j'ai fais face il y a quelque jours à un soucis assez méchant, un message d'erreur m'indiquant non stop une " connection refused port 5432 " & " permissions denied " et j'en passe, ce qui m'avait mis dans l'incapacité d'avoir accès a ma base de données, la grosse bêtise a été de ne pas avoir fait de sauvegarde préalable ... Enfin bref ! Après pleins de tripotage un peu partout, j'ai pu mettre en marche le service de PostgreSQL par le plus grand des hasards, j'en ai profité pour vite accéder à la base de données et l'a faire sortir de ce foutoir ! Le soucis étant que je ne suis pas sur de la bonne méthode d'importation de ma base. En effet je suis un TOTAL novice en PostgreSQL voir même en base de données, j'avais fais une petite recherche et je suis tombé sur une commande a taper ( psql " nom_de_la_bdd " > chemin.sql ) Donc après sa je me suis retrouvé avec une sauvegarde de ma BDD avec l'extension .SQL ! Sur le moment je m'en suis pas inquiété parce que j'étais soulagé d'avoir récupérer mon travail. Là ou ça devient problématique c'est qu'après avoir réinstaller depuis le début mon serveur, remis comme neuf etc, PostgreSQL, OpenERP installer et tout ça, je tente donc de RESTAURER ma base de donnée et c'est là que le problème apparaît ... La commande que j'ai utilisé est donc ; ( psql " NomDeLaNouvelleBDD " < "OuSeTrouveMaSauvegarde.SQL" ) et là ...Pleins de lignes qui apparaissent puis à un moment j'ai un enchaînement de INVALID COMMAND \N ... Quand je jette un coup d'oeil sur ma BDD " fraichement " sauvegarder via PgAdmin j'arrive a distinguer quelques mots que j'avais inscris ( facture, client, commande ... ) mais c'est incomplet il manque encore beaucoup de choses ...

    Je ne sais pas si ma sauvegarde est corrompue, je ne comprends pas pourquoi elle a été mal restaurer, peut-être le problème est dû à OpenERP et ses modules ... Est-ce quelqu'un aurait une idée du comment je pourrais restaurer ma sauvegarde proprement, qui pour rappel a été faite via la commande pgsl avec extension .SQL

    Merci encore pour vos réponses

  2. #2
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 370
    Points : 251
    Points
    251
    Par défaut
    Bonjour,

    Je pense que le problème viens du fait que ton dump est complet. Il contient entre autre les scripts de création des tables et les données.
    Lors de l'installation de ton ERP, il a probablement du déjà créer les tables...
    Ce que je fait en général, c'est d'installer l'ERP, de le laisser créer les tables. une fois que tout est fini, je supprime la base de donnée, je la crée de nouveau avec PGAdmin. La création doit se faire en précisant dans l'onglet définition, l'option Modèle=template0.
    ou par la commande SQL:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE DATABASE NomBase WITH ENCODING='UTF8' OWNER=postgres TEMPLATE=template0;
    Une fois cela fait, tu lances la commande de restauration que tu connais.
    J'ai pas encore bien compris pourquoi, mais si tu n'as pas de template0 de paramétré pour ta base, la commande suivante ne fonctionne pas???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    psql " nom_de_la_bdd " < chemin.sql
    cordialement,
    vandman

  3. #3
    Membre actif

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2011
    Messages
    370
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 370
    Points : 251
    Points
    251
    Par défaut
    Bonjour,
    Si non, tu peux exécuter ce script. tu réponds aux questions et ta base sera rechargé...

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    #!/bin/sh
     
    #vérifie que tomcat est arrété
    ServiceTomcat='tomcat7'
    if ps ax | grep -v grep | grep $ServiceTomcat > /dev/null
    then
        echo "$ServiceTomcat est en cours d'éxecution.\nVeuillez arreter tomcat via la commande en tant que root:\nservice tomcat7 stop"
        exit
    else
        echo "$ServiceTomcat n'est pas chargé, c'est tres bien."
    fi
     
    #vérifie qu'apache2 est arrété
    ServiceApache='apache2'
    if ps ax | grep -v grep | grep $ServiceApache > /dev/null
    then
        echo "$ServiceApache est en cours d'éxecution.\nVeuillez arreter tomcat via la commande en tant que root:\nservice tomcat7 stop"
        exit
    else
        echo "$ServiceApache n'est pas chargé, c'est tres bien."
    fi
    #Demande de toutes les informaions dont nous avons besoin
    echo -n "Entrez le nom d'utilisateur PostgreSQL [postgres] : "
    read UserPG
     
    #Vérification qu'un utilisateur à bien été renseigné pour la connection à PostgreSQL.
    UserPG=${UserPG:-postgres}
    echo "Bienvenu $UserPG\n"
    echo -n "Mot de passe : "
    read  PGpassword
     
    #Vérification qu'un mot de passe à bien été renseigné pour la connection à PostgreSQL.
    if [ -z "$PGpassword" ]; then
    	echo "Pas de mot de passe PostgreSQL définit\n"
    	exit 1	#exit shell script
    fi
    echo "Votre mot de passe à bien été pris en compte\n"
     
    echo -n "Ip ou non du serveur PostgreSQL  [localhost] ?"
    read PGhostname
    #Définit une IP ou un nom machine pour la connection à PostgreSQL, par défaut, localhost.
    PGhostname=${PGhostname:-localhost}
    echo "L'hôte ou l'IP PostgreSQL est $PGhostname\n"
     
    echo -n "Port du serveur PostgreSQL [5432] ? "
    read port_num
    #Définit un port pour la connection à PostgreSQL, Par défaut, 5432.
    port_num=${port_num:-5432}
    echo "Le port par défaut ($port_num) sera utilisé\n"
     
    #Nom de la base de donnée à restaurer
    echo -n "Nom de la base de donnée pour l'Appli?"
    read appli_db
    #Vérification qu'une base de donnée à bien été renseignée pour travailler dessus.
    if [ -z "$appli_db" ]; then
    	echo "Pas de base de donnée PostgreSQL définit\n"
    	exit 1	#exit shell script
    fi
    echo "La base de donnée PostgreSQL est $appli_db\n"
     
    #Nom du Schema à restaurer (en général, le nom du schema est identique au nom de la base de donnée)
    echo -n "Nom du schema à restaurer [$appli_db]?"
    read schema_db
    schema_db=${schema_db:-$appli_db}
    #Chemin absolu pou l'acces au dump à restaurer.
    echo -n "Chemin vers le dump à restaurer [$(pwd)] ? "
    read dump_location
    dump_location=${dump_location:-$(pwd)}
    echo "Le répertoir source de restauration est:\n $dump_location"
    #Nom du fichier dump à restaurer.
    echo -n "Nom du fichier dump à restaurer ? "
    read file
    if [ -z "$file" ]; then
    	echo "Pas de fichier renseigne\n"
    	exit 1	#exit shell script
    fi
    dump_location="$dump_location/$file"
    echo "Le chemin absolut du fichier de restauration est:\n $dump_location"
     
    DebutTraitement=$(date +%s)
    #Création du fichier permettant de s'identifier au serveur PostgreSQL.
    touch $HOME/.pgpass
    #Attribution des droits sur le fichier, pas d'autre choix que 0600, si non, ca ne fonctionne pas.
    chmod 0600 $HOME/.pgpass
    #Remplissage du fichier avec les bons parametres
    echo "$PGhostname:$port_num:$appli_db:$UserPG:$PGpassword" > $HOME/.pgpass
    #
    psql -h $PGhostname -p $port_num $appli_db -U $UserPG << EOF
    DROP SCHEMA IF EXISTS $schema_db CASCADE;
    EOF
    # Attention, EOF ne doit pas avaoir d'espace avant. si non, cela génèrera une erreur.
    sleep 3
    cat $dump_location | psql  -h $PGhostname -p $port_num $appli_db -U $UserPG
    psql -h $PGhostname -p $port_num $appli_db -U $UserPG << EOF
    EOF
    #Efface le mot de passe dans la variable et le fichier.
    PGpassword=""
    rm $HOME/.pgpass
     
    echo "Ne pas oublier de redémarer tomcat"
    echo "Ne pas oublier de redémarer Apache"
    FinTraitement=$(date +%s)
    TempsTraitement=$(($FinTraitement-$DebutTraitement))
    echo "la tache s'est terminé à :\n$(date '+%H:%M:%S')"
    heure=$(($TempsTraitement/3600))
    if [ "$heure" -le 1 ]; then
    	h="heure"
    else
    	h="heures"
    fi
    #echo $heure
    minute=$((($TempsTraitement-$heure*3600)/60))
    if [ "$minute" -le 1 ]; then
    	m="minute"
    else
    	m="minutes"
    fi
    #echo $minute
    seconde=$(($TempsTraitement-($heure*3600)-($minute*60)))
    if [ "$seconde" -le 1 ]; then
    	s="seconde"
    else
    	s="secondes"
    fi
    #echo $seconde
    echo "la tache s'est éxécuté en $heure $h $minute $m et $seconde $s"
    Avant de lancer ce script, vérifie que tu n'as pas de fichier .pgpass dans ton home, car celui-ci sera supprimé.

    Cordialement,
    vandman

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Merci encore de ton aide, et désolé de répondre aussi tardivement

    Je marque le sujet comme resolved !

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

Discussions similaires

  1. Restauration BDD SQL server sur nouvel ordinateur
    Par nagneau dans le forum Administration
    Réponses: 8
    Dernier message: 14/06/2017, 15h45
  2. Restauration BDD fichier SQL de 500Mo - SQLDumper
    Par lagrue dans le forum Administration
    Réponses: 5
    Dernier message: 14/03/2012, 12h45
  3. SQL 2005 / Script restauration BDD
    Par matnys dans le forum Administration
    Réponses: 1
    Dernier message: 04/11/2008, 00h57
  4. création/restauration bdd à partir fichier.sql
    Par theleek dans le forum Débuter
    Réponses: 1
    Dernier message: 14/01/2008, 14h57
  5. restauration BDD sous SQL 2000 Server
    Par ilyassou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/03/2007, 09h30

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