Re: Cerrar conexiones activas de otros usuarios

From: "Felipe E(dot) Barousse" Boué <fbarousse(at)piensa(dot)com>
To: pgsql-es-ayuda-owner(at)postgresql(dot)org
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Cerrar conexiones activas de otros usuarios
Date: 2007-09-04 23:05:49
Message-ID: 1188947149.1950.14.camel@monster.piensa.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Amigos:

No se respecto a "EMS" que según Felix es un "sistema
privativo" (propietario, quiero entender). El tema es que en PostgreSQL
puedes "matar" una sesión específica de un usuario por medio del PID
(process id) que le asignó el sistema operativo a dicha conexión.

Como ejemplo:
Obtengo los procesos de postgres activos, dentro del "psql" ejecuto el
comando:

select * from pg_stat_activity;

Que a su vez regresa:
select * from pg_stat_activity;
datid | datname | procpid | usesysid | usename |
current_query | waiting | query_start |
backend_sta
rt | client_addr | client_port
----------+---------------+---------+----------+----------+---------------------------------+---------+-------------------------------+--------------------
-----------+-------------+-------------
16387 | ezine | 6689 | 16384 | nobody | <IDLE>
| f | 2007-09-03 09:05:11.854127-05 | 2007-05-17 04:36:32
.525318-05 | | -1
16388 | server0 | 19717 | 10 | postgres | select *
from pg_stat_activity; | f | 2007-09-04 17:52:14.320863-05 |
2007-09-04 17:52:10
.931459-05 | | -1
Y mas líneas como estas....

Si quiero matar al proceso 6689 (que está como IDLE en este ejemplo),
puedo ejecutar desde psql el comando:

select pg_cancel_backend(6689);

Por supuesto, cuidado al matar procesos de Postgresql, tienes que
realmente saber que estas haciendo !!!!!
(--- Conste que NO soy responsable del uso de este comando en tu
instalación ---)

Mas información al respecto en:

http://www.postgresql.org/docs/8.2/interactive/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL-TABLE

Espero esta informacion sea de utilidad, un saludo.

--
Ing. Felipe Barousse Boué.
Piensa Technologies - Bufete Consultor de Mexico
www.piensa.com
"Sistemas de Información y Tecnología para la Cadena de Suministro"

On Tue, 2007-09-04 at 16:08 -0300, pgsql-es-ayuda-owner(at)postgresql(dot)org
wrote:

> Date: Tue, 4 Sep 2007 10:09:51 -0500
> From: "felix gonzales" <jfgonzales(at)gmail(dot)com>
> To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
> Cc: "Calabaza Calabaza" <calalinux(at)gmail(dot)com>,
> pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: Cerrar conexiones activas de otros usuarios
> Message-ID:
> <83d648ba0709040809v1615699fwa0fe684b5533c9aa(at)mail(dot)gmail(dot)com>
>
> disculpa lo tarde de la respuesta, pero me ausente por unos dias de la
> lista..
>
> te comento q el EMS en su versión profesional tiene la opción "Estado
> del
> Servidor" donde se pueden apreciar las conexiones activas de tu
> servidor,
> en realidad lo q muestra es la actividad del usuario.
> según he visto, hace algo como esto:
>
> SELECT
> pg_stat_activity.*,(regexp_replace(text("client_addr"),'/.*','')||':'||text('client_port'))
> as addr FROM pg_stat_activity
>
> el refresco de esta consulta la hace cada cierto tiempo, la sentencia
> q
> envia para "matar" la actividad no se puede ver ya q el EMS es cerrado
> como
> todo sistema privativo.
>
>
>
> El día 30/08/07, Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió:
> >
> > felix gonzales escribió:
> > > con el administrador EMS for postgres lo puedes hacer..
> >
> > Interesante ... ¿y como lo hace? Seguramente requiere que instales
> una
> > funcion equivalente a la que yo digo que hay que crear.
> >
> > --
> > Alvaro Herrera
> > http://www.PlanetPostgreSQL.org/
> > "El miedo atento y previsor es la madre de la seguridad" (E. Burke)
> >
>
>
>
> --
> Felix Gonzales
>
>
> [Attachment of type text/html removed.]
>

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-09-04 23:08:54 Re: Preguntas intransigentes
Previous Message Miguel Angel . 2007-09-04 22:55:55 Preguntas intransigentes