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

PostgreSQL Discussion :

Base corrompu ?


Sujet :

PostgreSQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 61
    Points
    61
    Par défaut Base corrompu ?
    Bonjour,

    J'ai un gros pb sur un serveur sur la base "postgres" :

    symtomes:

    je peux me connecter sur cette base mais a chaque \d :
    ERREUR: n'a pas pu accéder au statut de la transaction 1634692198
    DETAIL: n'a pas pu ouvrir le fichier « pg_clog/0616 » : Aucun fichier ou répertoire de ce type

    des que je fait un /etc/init.d/postgresql-8.1 restart
    2008-08-25 16:45:04 CEST ERREUR: n'a pas pu accéder au statut de la transaction 1634692198
    2008-08-25 16:45:04 CEST DÉTAIL: n'a pas pu ouvrir le fichier « pg_clog/0616 » : Aucun fichier ou répertoire de ce type


    a priori il a "perdu" le fichier pg_clog/0616
    comment le réinitialiser ?

    C'est un serveur de prod 8.1.11 sous debian etch

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 61
    Points
    61
    Par défaut base "postgres"
    A la création d'un serveur il y a création de la base "postgres"

    est ce que quelqu'un sait si on peut le supprimer ?
    (c'est ma base foireuse )
    Merci

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 61
    Points
    61
    Par défaut drop database postgres
    Je confirme on peut supprimer la base "postgres"

    moi qui pensais que c'etait le méta modele

    donc mon pb est résolue puisque le pg_clog/0616 était celui

    de la base postgres. Pour info j'ai lu que cela arrive quand on ne fait

    pas de vaccum. C'est bien la seule base sur laquelle je ne fais pas de

    vaccum quotidien. Tout ceci n'est pas tres rassurant quand meme.

    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 61
    Points
    61
    Par défaut server hs
    la machine est HS.

    c'est a dire que le système est mort, c'est probablement due

    au disque dur. (plus de boot, bootstrap mort, aucune fichier de log modifié

    par le boot (constatation via un mode rescue))

    Postgres n'y est donc pour rien

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Bonjour
    Votre FS Debian est en ETX3 , XFS ou REISERFS ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 61
    Points
    61
    Par défaut EXT3
    Les deux disques en raid1 sont en EXT3

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 245
    Points : 262
    Points
    262
    Par défaut
    Il faut essayer l'utilitaire fsck pour supprimer les inodes
    defectueuses et tenter ainsi une récuperation.
    Pour information (sujet Postgresql) le XFS et le REISERFS sont 40% plus rapides que le EXT3
    J'ai recuperé un systeme reiserfs que j'ai planté avec une emulation qemu
    sur XP avec l'utilitaire reiserfsck , le systeme de fichiers a parfaitement ete reparé.Je pense que pour le EXT3 il y a plus de chance de reussir
    ce genre de réparation.
    (il faut faire une sauvegarde en single avant)
    Bon courage..

  8. #8
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Tu ne peux pas faire un pg_dump pour tout exporter tes données ?
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 61
    Points
    61
    Par défaut
    Merci a tous,


    Je n'ai pas eu le temps de vous répondre avant.
    Il y a un dump quotidien (A faire par tous, et tous les jours)
    C'est un enchainement assez fâcheux qui est survenue:

    - Le serveur principal plante HD HS
    - montage du serveur principal en mode rescue
    - transfert de la sauvegarde 3 Go sur un serveur de secours
    (l'espace de sauvegarde de l'hébergement est HS depuis 1 mois
    "On va bientôt règler le pb")
    - formatage et réinstallation du serveur principal (le pourquoi serai long a
    expliquer )
    - plantage par ma faute du serveur de secours : a 5h30 du matin
    lancement d'un fsck sur un disque monté. (C'est a l'instant du <enter> que les sueurs froides parcourent votre dos) en essayant de comprendre ce qui a bien pu se passer sur le serveur principal
    - récupération trés chanceuse des données clients via fsck sans monter les
    disques
    - réinstallation de l'application sur le serveur principal
    - réservation d'un nouveau serveur chez un autre hébergeur avec une
    machine qui fonctionne et un espace de sauvegarde
    - résiliation du contrat du premier hébergement
    (sauvegarde ko depuis 1 mois, la panne du serveur est toujours un mystère)

    Voila


    Conclusion :
    - faire des sauvegardes quotidiennes
    - jamais bosser sur l'unique serveur OK au delà des douze coups de minuit
    et surtout pas de fsck sur un disque monté
    - changer d'hébergeur si le serveur a des ¨PB et que la sauvegarde est KO

    Merci bustaf pour
    XFS et le REISERFS sont 40% plus rapides que le EXT3
    je vais rester en EXT3 pour l'instant, c'est un config particulière
    500 bases avec 33 tables et peu de données

    et merci a tous


    Mon script de sauvegarde muti-base :
    toutes les bases sont sauvegardés tous les jours:
    une version écrasée chaque jour dans /all
    une version avec suffix du type mabase__20080907_231101.dump
    le mois courant est conservé
    les mois précédents sont effacées a l'exception du 1 et 15 du mois

    si cela peut aider...

    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
     
    # ###################################
    # Script de sauvegarde
    # ###################################
     
    SUFFIX=__`date '+%Y%m%d_%H%M%S'`.dump
    BACKUP_PATH=/backup/db
    BASETYPE=postgres
     
    JOURCOURANT=`date '+%d'`
    MOISCOURANT=`date '+%m'`
    ANNEECOURANT=`date '+%Y'`
     
     
     
    if  [ ! -d "$BACKUP_PATH/$BASETYPE" ]; then
               mkdir $BACKUP_PATH/$BASETYPE
    fi
     
     
    # boucle sur toutes les bases
    DATABASES=`/usr/bin/psql -Upostgres -h127.0.0.1  -A -t -c "select datname from pg_database where datname not in ( 'template0', 'template1', 'postgres') " template1`
    for DATABASE in $DATABASES
        do
     
            if  [ ! -d "$BACKUP_PATH/$BASETYPE/$DATABASE" ]; then
              mkdir $BACKUP_PATH/$BASETYPE/$DATABASE
            fi
     
            # creation de la sauvegarde
            /usr/bin/pg_dump -f$BACKUP_PATH/$BASETYPE/$DATABASE/$DATABASE$SUFFIX -Upostgres -h127.0.0.1 -D -F p   $DATABASE
            /usr/bin/pg_dump -f$BACKUP_PATH/$BASETYPE/all/$DATABASE.dump -Upostgres -h127.0.0.1 -D -F p   $DATABASE
            gzip $BACKUP_PATH/$BASETYPE/$DATABASE/$DATABASE$SUFFIX
     
            # suppression des sauvegardes de + 1 mois sauf 01 et 15
            REP=`ls $BACKUP_PATH/$BASETYPE/$DATABASE/`
            for FIC in $REP
              do
                # annee
                ANNEE=${FIC##$DATABASE}
                ANNEE=${ANNEE##__}
                ANNEE=${ANNEE:0:4}
     
                MOIS=${FIC##$DATABASE}
                MOIS=${MOIS##__}
                MOIS=${MOIS:4:2}
     
                JOUR=${FIC##$DATABASE}
                JOUR=${JOUR##__}
                JOUR=${JOUR:6:2}
     
               # si JOUR = 01 continue
               if [ $JOUR -eq 01 ]; then
                    continue
               fi
     
     
               # si JOUR = 01 continue
               if [ $JOUR -eq 15 ]; then
                    continue
               fi
     
               # si MOIS = MOISCOURANT  continue
               if [ $MOIS -eq $MOISCOURANT ]; then
                     continue
               fi
     
               rm  $BACKUP_PATH/$BASETYPE/$DATABASE/$FIC
              done
        done
    echo

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 100
    Points : 61
    Points
    61
    Par défaut Suite
    Quelque saurait il a quoi correspond

    La limite de réinitialisation de l'ID de transaction est 1074725371, limité par la base de données « mabases »


    message survenant pendant des REINDEX DATABASE mabases ?

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

Discussions similaires

  1. Pour info uniquement ; récupération de base corrompue réussie
    Par jose.ignacio.agata dans le forum Contribuez
    Réponses: 2
    Dernier message: 18/12/2007, 11h39
  2. Access 2 : base corrompue
    Par bdf94 dans le forum Access
    Réponses: 4
    Dernier message: 21/09/2007, 16h13
  3. [table] Base Corrompue
    Par sumtech dans le forum Access
    Réponses: 7
    Dernier message: 11/06/2007, 11h48
  4. ouvrir une base corrompue
    Par fredoh dans le forum Access
    Réponses: 3
    Dernier message: 19/12/2005, 17h56
  5. [crash] base corrompue
    Par Naudin dans le forum Access
    Réponses: 13
    Dernier message: 10/10/2005, 10h40

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