PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 23/11/2010 18:28:49

sylvinhio
Membre

Erreur lecture bloc table

Bonjour à tous,

J'essaye d'exécuter une opération de maintenace sur une base de données PostgreSQL.
Je suis dans un environnement Windows (XP).

J'obtiens le message d'erreur suivant :

ERREUR : n'a pas pu lire le bloc 3261 de la relation base/109755/110543 : Invalid argument


A quoi est due cette erreur ?

Merci par avance de votre aide.

Cordialement

Sylvinhio

Hors ligne

#2 23/11/2010 18:32:08

Marc Cousin
Membre

Re : Erreur lecture bloc table

À une table corrompue (ce qui n'est pas censé arriver).

À priori, il manque des blocs à la fin de cette table. Que s'est il passé pour en arriver là ?


Marc.

Hors ligne

#3 23/11/2010 18:33:58

sylvinhio
Membre

Re : Erreur lecture bloc table

Je n'en ai aucun idée...

Je retourne la question smile
Comment ceci peut-il arriver se produire ?

Merci de ton aide

Hors ligne

#4 23/11/2010 18:36:57

Marc Cousin
Membre

Re : Erreur lecture bloc table

Ça peut se produire suite à un crash machine, si le paramètre fsync est à off, par exemple, ou si on a un disque dur qui ment sur les écritures (et se contente de les mettre en cache). Ou un bug du système de fichiers. Ou quelqu'un qui restaure un fichier dans la base, fichier qui se retrouve incohérent avec les index bien sûr à partir de ce moment là.

Il y a pas mal de causes possibles, mais le plus vraisemblable est le système qui ment sur les écritures, surtout avec ce qui doit être un PC du bureau sous XP.


Marc.

Hors ligne

#5 23/11/2010 18:44:14

sylvinhio
Membre

Re : Erreur lecture bloc table

"Ou quelqu'un qui restaure un fichier dans la base, fichier qui se retrouve incohérent avec les index"

Nous avons dans notre application un système de sauvegarde / restauration de la base.
Ceci est peut être dû à celà...

Peux-tu m'en dire plus sur ce cas d'erreur ?

Hors ligne

#6 23/11/2010 18:48:26

Marc Cousin
Membre

Re : Erreur lecture bloc table

C'est simple: on ne peut pas restaurer individuellement un fichier de la base. Ils ont une cohérence entre eux, tout doit être restauré ensemble.

Par ailleurs, on ne peut pas sauvegarder la base simplement en sauvegardant ses fichiers, sauf si elle est éteinte, ou qu'on respecte la procédure de sauvegarde à chaud décrite dans la documentation.


Marc.

Hors ligne

#7 23/11/2010 18:50:35

sylvinhio
Membre

Re : Erreur lecture bloc table

Quand tu parles de fichiers, c'est de fichiers physiques ?

Moi je parle de sauvegarde / restauration par les commandes dump et restore...

Hors ligne

#8 23/11/2010 18:56:31

Marc Cousin
Membre

Re : Erreur lecture bloc table

Ah, si c'est par pg_dump, aucun souci non. C'est effectivement dans le cas de sauvegarde des fichiers physiques (c'est ce qu'on utilise quand on veut sauvegarder des très grandes bases).


Marc.

Hors ligne

#9 23/11/2010 19:02:57

sylvinhio
Membre

Re : Erreur lecture bloc table

Bon, merci pour toutes ces informations...

Bonne continuation

Hors ligne

Pied de page des forums