SORU
24 ŞUBAT 2011, PERŞEMBE


Bağlantı/postgresql oturumu öldürmek

Nasıl benim postgresql bağlantıları öldürebilir miyim?

rake db:drop çalışıyorum ama alıyorum:

ERROR:  database "database_name" is being accessed by other users
DETAIL:  There are 1 other session(s) using the database.

ps -ef | grep postgres a görüyorum işlemleri kapatma denedim ama bu da işe yaramıyor:

kill: kill 2358 failed: operation not permitted

CEVAP
24 ŞUBAT 2011, PERŞEMBE


Sürüm 8.4 olarak, pg_terminate_backend() bağlantı öldürmek için kullanabilirsiniz. Süper kullanıcı olmak için bu işlevi kullanın. Bu tüm işletim sistemlerinde aynı şekilde işler.

SELECT 
    pg_terminate_backend(procpid) 
FROM 
    pg_stat_activity 
WHERE 
    -- don't kill my own connection!
    procpid <> pg_backend_pid()
    -- don't kill the connections to other databases
    AND datname = 'database_name'
    ;

Bu sorguyu yürütmeden önce, 13 ** sahip olduğunuz ayrıcalıklar, yeni bağlantı önlemek için BAĞLAYIN:

REVOKE CONNECT ON DATABASE dbname FROM PUBLIC, username;

9.2 olarak procpid pıd ile değiştirilir

SELECT 
    pg_terminate_backend(pid) 
FROM 
    pg_stat_activity 
WHERE 
    -- don't kill my own connection!
    pid <> pg_backend_pid()
    -- don't kill the connections to other databases
    AND datname = 'database_name'
    ;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eddie Bravo

    Eddie Bravo

    17 EKİM 2006
  • Phandroid

    Phandroid

    26 Ocak 2009
  • SignatureSeries

    SignatureSer

    24 Aralık 2006