PostgreSQL을 통한 프로세스 확인 및 처리 kill
4517 단어 PostgreSQLSQLtech
확인과kill과정을 남기는 방법을 잊기 어렵다.
대상
컨디션
프로세스 확인
저도 SQL 해설을 썼는데 관심 있으면 참고할 수 있어요.
sql
select
sel.pid as プロセス ID,
sel.start as 開始時刻,
sel.sql as 実行 SQL
from
(
select
pg_stat_get_backend_pid(sgbi.bid) as pid,
pg_stat_get_backend_activity_start(sgbi.bid) as start,
pg_stat_get_backend_activity(sgbi.bid) as sql
from
(
select
pg_stat_get_backend_idset() as bid
) as sgbi
) as sel
where
sel.sql <> '' -- 現在実行中の SQL が存在する場合のみ取得
-- and
-- sel.procpid ='' -- プロセス ID が特定できればここで指定
order by
pid desc; -- プロセス ID 順にソート
;
SQL의 설명통계 정보 함수를 사용하여 각 정보를 얻다.
중점 부분을 발췌하여 해설을 진행하다.
행수
코드
설명
8
pg_stat_get_backend_pid
백엔드 ID 번호와 연관된 프로세스 ID 가져오기
9
pg_stat_get_backend_activity_start
백엔드 ID 번호와 연관된 프로세스 시작 시간 가져오기
10
pg_stat_get_backend_activity
백엔드 ID 번호 가져오기
14
select pg_stat_get_backend_idset
백엔드 ID 번호와 연결된 실행 SQL 가져오기
프로세스 호출 방법
킬의 방법은 두 가지가 있다.
킬을 할 수 있다는 점에서는 같지만 행동이 다르니 주의하세요.
pg_cancel_백킹으로.
실행 중인 SQL을 취소합니다.
아직 세션이 있기 때문에 데이터베이스에 더 이상 연결할 필요가 없다.
sql
SELECT pg_cancel_backend(int:プロセス ID);
프로세스 ID: 프로세스 확인을 통해 얻은 프로세스 IDpg_terminate_백킹으로.
세션을 분리합니다.
세션이 닫혔습니다. 데이터베이스에 다시 연결해야 합니다.
sql
SELECT pg_terminate_backend(int:プロセス ID);
프로세스 ID: 프로세스 확인을 통해 얻은 프로세스 ID
Reference
이 문제에 관하여(PostgreSQL을 통한 프로세스 확인 및 처리 kill), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/kabostra/articles/1c2ddb7a39f0db텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)