Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 07/01/2019 10:59:41
- chris
- Membre
reindexdb : ERROR: could not open relation with OID 2721209393
Bonjour.
Lors d'une reindexation d'une instance (version 9.1) par un reindexdb --all, j'ai ce genre de message :
reindexdb: reindexing of database "XXXXXX" failed: ERROR: could not open relation with OID 2721209393
Ce ne pas la 1ere fois, mais avec des OID différents
question 1)
est-ce que ce message peut arriver si pendant la reindexation, une table est supprimée. L'idée serait que Postgres liste toutes les tables qu'il doit reindexer, puis parcourt sa liste en prenant les tables les unes après les autres pour les reindexer. Si une table est supprimée, lorsque PG arrive à cette table, boum message d'erreur. Est-ce que cela pourrait être l'explication ?
question 2)
est-ce que la reindexation s'arrête à la 1ere erreur : c'est l'impression que j'ai dans les logs, le message d'erreur est systematiquement le dernier dans les logs. alorq qu'avant j'ai bien les NOTICE: table "public.XXXX" was reindexed
Merci pour vos éclaircissements et bonne année à tous.
Chris
Hors ligne
#2 07/01/2019 12:32:12
- gleu
- Administrateur
Re : reindexdb : ERROR: could not open relation with OID 2721209393
De ce que je peux voir sur une 9.1.24 (la dernière 9.1), il construit une liste de tables, puis traite chaque table les unes après les autres, chacune dans sa transaction. De ce fait, toutes les tables déjà réindexées gardent le bénéfice de cette réindexation (pas de ROLLBACK global). Par contre, il s'arrête à la première table en erreur. La suppression de la table pendant le REINDEX (en fait, entre le moment où il crée la liste et le moment où il va vouloir réindexer la table supprimée) causera le message d'erreur que vous indiquez.
Guillaume.
Hors ligne
#3 07/01/2019 14:16:57
- chris
- Membre
Re : reindexdb : ERROR: could not open relation with OID 2721209393
Merci pour cette réponse rapide et complète. Dommage qu'il n'y ait pas d'option pour dire au reindex de continuer en cas d'erreur.
Hors ligne