PostgreSQL에서 활성 연결을 나열하는 방법은 무엇입니까?


150

PostgreSQL에 주어진 데이터베이스에 대한 활성 연결을 선택하는 명령이 있습니까?

psql데이터베이스에 대한 활성 연결 이 있기 때문에 데이터베이스 중 하나를 삭제할 수 없으므로 연결이 무엇인지 (어떤 컴퓨터에서)보고 싶습니다.



큰! 나는 (나쁘게) 검색하고 아무것도 찾지 못했습니다. 유휴 연결을 닫으려면 어떻게해야합니까?
스피커

답변:


264

오, 방금 PostgreSQL 포럼에서 해당 명령을 찾았습니다.

SELECT * FROM pg_stat_activity;

14
하나의 데이터베이스 로만
user2182349

1
특정 지원 서비스에서 활성 데이터베이스 연결을 얻으려면 어떻게해야합니까?
GunasekaranR

그리고 실행 후 pg_terminate_backend내 앱이 여전히 DB에 대해 쿼리를 실행할 수 있지만 pg_Stat_activity에서 새 연결을 볼 수 없습니까?
takacsot

38

다음은 postgres DB에서 활성 연결 / 쿼리를 제공합니다

SELECT 
    pid
    ,datname
    ,usename
    ,application_name
    ,client_hostname
    ,client_port
    ,backend_start
    ,query_start
    ,query
    ,state
FROM pg_stat_activity
WHERE state = 'active';

이미 실행 된 연결 / 쿼리를 얻기 위해 active 대신 'idle'을 사용할 수 있습니다.


1
유휴 상태는 연결이 활성화 되었습니까? 연결을 해제해도 여전히 유휴 상태로 표시됩니까?
Shivam Kubde

1
예 @ShivamKubde이지만 '유휴'로 위의 쿼리에는 '활성'연결 만 표시되므로 WHERE ...절을 제거하고 활성 또는 유휴 상태 인 연결을 확인하려면 열 stateSELECT절에 추가하십시오
Mariano Ruiz

6
SELECT * FROM pg_stat_activity WHERE datname = 'dbname' and state = 'active';

이후로는 pg_stat_activity어떤 상태를 갖는 모든 데이터베이스의 접속 통계를 포함하거나 idle또는 active데이터베이스 이름 및 연결 상태는 원하는 출력을 얻을 수있는 쿼리에 포함되어야한다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.