Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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.
Julien.
https://rjuju.github.io/
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
Pages : 1