database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 9549 게시물 읽기
No. 9549
Postgresql Query 종료 방법 문의
작성자
이성필(splee75)
작성일
2015-05-14 21:47ⓒ
2015-05-14 21:48ⓜ
조회수
10,874

 안녕하세요. 다시 궁금한 것이 있어서 글을 올립니다.

 
 
 
Postgresq을 운영하다 cancel 혹은 terminate 하고 싶은 쿼리가 있을 때 아래의 두가지 함수를 이용합니다.
 
    pg_terminate_backend
 
    pg_cancel_backend
 
문제는... 위의 두 함수로도 종료가 되지 않는 쿼리가 존재할 때가 간혹 있습니다.
rollback을 수행해서 cancel 이나 terminate가 느린 건가... 확인을 해보지 못했지만... 그렇지는 않은 것 같습니다.
(30분 정도 기다리다가 위의 두함수를 실행했는데... 프로세스가 1일 넘게 종료되지 않았습니다. disk io 나 lock 문제 역시 확인했지만 아니었습니다.)
 
이럴때 os 에서 해당 pid를 kjill -9 로 종료하면 여러 문서나 web 페이지에서 언급하듯이 Postgresql이 자동으로 restart 해버립니다. 
 
 
위의 두 함수로도  cancel 이나 terminate 가 안되는 경우에 Postgresql 이 restart 를 피하면서 목적을 달성할 수 있는 방법이 있는지 궁금합니다.
 
이 글에 대한 댓글이 총 3건 있습니다.

kill -8 pid 로 처리해보세요.

소스를 보면, SIGFPE 시그널에 대해서는 세션만 정리하도록 되어 있음으로,

SIGTERM 보다는 불안정하지만 일단 세션만은 정리할 수 있습니다.

 

 

김상기(ioseph)님이 2015-05-18 13:11에 작성한 댓글입니다.

 말씀해 주신 방법으로 테스트를 해보았습니다.

세션만 잘 종료되는 경우도 있고, postgresql이 restart 하는 경우도 있고, 종료가 안되는 경우도 있네요..

이 결과의 차이가 무엇인지 알게 되면 다시 댓글로 결과를 공유하겠습니다.

감사합니다.

이성필(splee75)님이 2015-05-22 11:46에 작성한 댓글입니다.

kill -8 에서도 db restart를 하던가요?

종료가 안되는 경우는 완벽하게 OS 입장에서 소켓 close 작업에서 중지된 경우인데, 이부분은 방법이 없습니다.

 

제가 본 상황에서는 8번 시그널(SIGFPE) 경우는 대부분 자기 세션만 정리가 되던데, 혹 db restart 까지 가는 상황이 보이면 공유해주세요. 저도 궁금하네요.

 

김상기(ioseph)님이 2015-05-27 01:10에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
9554checkpoint 작업 시 cpu 100% 가 지속되는 문제 [2]
dalky
2015-05-29
10372
9553pg_dump 후 다른 스키마로 restore 하는 법 [3]
정성헌
2015-05-27
9825
9550postgreSQL DB 용량을 제한할 수 있는지 궁금합니다. [3]
박종혁
2015-05-15
10348
9549Postgresql Query 종료 방법 문의 [3]
이성필
2015-05-14
10874
9548[해결] table create 가 안됩니다. [9]
이성필
2015-04-29
14357
9547pgpool-II 구성중에 질문드립니다. [3]
한승현
2015-04-28
14611
9546이전 까지의 누적 횟수? 구하기 쿼리 [1]
김재영
2015-04-24
10352
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.054초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다