Re: Removiendotablas temporales

From: Raúl Andrés Duque <raulandresduque(at)hotmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>, "Robert Diaz" <robert(dot)diaz(at)smartmatic(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Removiendotablas temporales
Date: 2006-12-20 10:38:22
Message-ID: BAY135-DAV94CA79F07C784C9D24B39BACF0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Un vaccum full las borra?

Atentamente,

RAUL DUQUE
Bogotá, Colombia

----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>
To: "Robert Diaz" <robert(dot)diaz(at)smartmatic(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, December 19, 2006 11:58 PM
Subject: Re: [pgsql-es-ayuda] Removiendotablas temporales

> Por favor conserva el Cc: de la lista en tus respuestas.
>
> Robert Diaz wrote:
>> Disculpa alvaro, pero inclusive reinicie los servicios de base de datos y
>> tampoco borro dichas tablas temporales. Estoy pensando en una solucion
>> que
>> consiste en realizar un pg_dump, borrar la base de datos y restaurarla
>> nuevamente a ver si con ello cosigo recuperar el espacio tomado por
>> dichas
>> tablas.
>
> No, reiniciar el servidor no borra esos archivos. Y lo que propones no
> es una solucion sino un parche.
>
> Como ya dije, lo que si los borra es que alguien se conecte reutilizando
> el ID de sesion que se estaba utilizando al momento de crear esas tablas
> temporales, y cree una tabla temporal (este ultimo paso es necesario
> aparentemente).
>
> Como saber cual es el ID de sesion apropiado:
>
> select nspname
> from pg_class, pg_namespace
> where pg_class.relnamespace = pg_namespace.oid and nspname like
> 'pg_temp%';
>
> Te dara algo como pg_temp_23. (si te da mas de uno, haz lo siguiente
> para cada uno de ellos). Luego abre 23 conexiones y crea una tabla
> temporal en la conexion 23. Puedes saber que conexion es cada una con
> esto:
>
> select backendid
> from pg_stat_get_backend_idset() backendid
> where pg_stat_get_backend_pid(backendid) = pg_backend_pid();
>
> (me sorprende pero no encuentro otra manera de obtener el backend id)
>
> En ese momento (al crear la tabla temporal, la cual puede estar vacia)
> las tablas temporales anteriores se borraran.
>
>
> Que significa esto? Significa que en general, en un ambiente de
> produccion no debes preocuparte por esto, porque eventualmente alguien
> se conectara y los archivos se borraran automaticamente.
>
> --
> Alvaro Herrera Valdivia, Chile ICBM: S 39º 49' 18.1", W 73º 13'
> 56.4"
> "No reniegues de lo que alguna vez creíste"
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 7: no olvides aumentar la configuración del "free space map"
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario 2006-12-20 12:01:58 Re: Como se que me he equivocado?
Previous Message José Manuel Ruiz 2006-12-20 08:53:51 Re: Optimizaciones Dual Core y RAM