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 24/10/2016 08:04:13

mortimer.pw
Membre

Orphan temp table

Bonjour à tous,

Je suis sur un moteur 9.3.2 sous RedHat 4.1.2.

Suite à analyse des logs, j'ai des messages :
2016-10-24 08:25:09 EAT [4507]: [1-1] user=,db=  LOG:  autovacuum: found orphan temp table "pg_temp_14"."tmpctrl" in database "geo"
2016-10-24 08:25:09 EAT [4507]: [2-1] user=,db=  LOG:  autovacuum: found orphan temp table "pg_temp_11"."tmpctrl" in database "geo"
2016-10-24 08:26:09 EAT [4558]: [1-1] user=,db=  LOG:  autovacuum: found orphan temp table "pg_temp_14"."tmpctrl" in database "geo"
2016-10-24 08:26:09 EAT [4558]: [2-1] user=,db=  LOG:  autovacuum: found orphan temp table "pg_temp_11"."tmpctrl" in database "geo"
2016-10-24 08:27:09 EAT [4649]: [1-1] user=,db=  LOG:  autovacuum: found orphan temp table "pg_temp_14"."tmpctrl" in database "geo"
2016-10-24 08:27:09 EAT [4649]: [2-1] user=,db=  LOG:  autovacuum: found orphan temp table "pg_temp_11"."tmpctrl" in database "geo"

En regardant les objets de la base, j'ai un paquet de pg_temp_??? et pg_toast_temp_??? (environ une vingtaine de chaque) :
geo=# \dnS
        List of schemas
        Name        |  Owner   
--------------------+----------
geo                | postgres
information_schema | postgres
jrn_local          | postgres
pg_catalog         | postgres
....
....
pg_temp_11         | postgres
pg_temp_14         | postgres
....
....
pg_toast           | postgres
....
....
pg_toast_temp_11   | postgres
pg_toast_temp_14   | postgres
....
....
public             | postgres
(41 rows)

Est-ce qu'il suffit de supprimer ces schémas ?
Y-a-t'il un risque (base en prod) ?

Comment ces schémas arrivent-ils ?
Pourquoi des pg_temp et des pg_toast_temp ?
Je sais qu'il y a eu quelques plantages du serveur, mais PostgreSQL redémarre toujours correctement (après suppression du postmaster.pid).

D'avance merci pour les réponses.

Hors ligne

#2 24/10/2016 08:25:52

rjuju
Administrateur

Re : Orphan temp table

Bonjour,


ces objets sont créés automatiquement par postgres lorsqu'il utilise des objets temporaires. Autovacuum lorsqu'il traite une base vérifie que la connexion associée à l'objet temporaire existe encore, et si ce n'est pas le cas (en cas de précédent crash par exemple), il affiche un message indiquant que l'objet associé est maintenant orphelin. Vous pouvez les supprimer manuellement, mais une erreur manuelle est toujours possible, et l'autovacuum finira par les supprimer de toutes façons, lorsqu'il fera un VACUUM FREEZE (traitement anti wraparound).  Ne rien faire est à mon avis la meilleure solution.

Hors ligne

#3 24/10/2016 09:19:46

mortimer.pw
Membre

Re : Orphan temp table

Ne rien faire, ça me va :-), merci Julien.

Hors ligne

Pied de page des forums