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 5871 게시물 읽기
No. 5871
PostgreSQL을 사용하는데요..IDLE문제....로....
작성자
이상석(redfox43)
작성일
2005-02-04 18:49ⓒ
2005-02-04 18:50ⓜ
조회수
3,016

postgeSQL로 처음으로 서비스를 올려보았습니다.

속도나 안정성 및 여러가지 맘에 들더군요

그런데 서비스를 시작한지 5일정도 되었는데요...

알수없는게 하나있습니다.

pid가 몇개씩 보이는데 그 아이디에 아무런 액션이 없는게 문제입니다.

가끔씩 이런게 50개 가까이 떠있다가 사라지기도 하고 한동안 머물러 있기도 합니다.

물로 pgadmin접속시에도 한두개 뜨고 이 아이디중 하나만 지우면

나머지가 다 없어지는 경우가 생기더군요.

왜 이런 상태가 발생하는지 도통 알수가 없네요

 

ID PID User Query StartTime
1 7761 photo 2005-02-04 18:11:58.576676+09
2 7764 photo 2005-02-04 18:11:59.583842+09
3 26229 photo select * from phn_info where seq='O' and (code01 = '200306130005' or code02 = '200306130005' or code03 = '200306130005' or code04 = '200306130005') order by no desc limit 20 offset 0 2005-02-04 18:46:50.596669+09
4 26230 photo LOCK TABLE phn_info 2005-02-04 18:46:50.671108+09


 

이렇게 보이는데요 Query가 없는게 많이 보이면 리스트나 뷰가 늦게 보이는 현상이 발생합니다.

이게 생기는 이유와 처리방법을 알고 싶습니다.

도움을 주세요~~

^.^ 곧 설이 다가옵니다 즐거운 설되시구요 05년 복 많이 받으시길 바랍니다. 그럼 이만...

이 글에 대한 댓글이 총 2건 있습니다.

어떤 환경에서 저런 사태가 나왔는지에 대한 설명이 없어, 그냥 추측해 보면,

 

가장 먼저 쉽게 추측할 수 있는 것이 php 환경에서 pg_pconnect 를 쓸 경우겠지요. 웹블로우져에서 설령 DB관련 모든 작업이 끝났다 하더라도 웹서버에서 계속 연결을 유지하고 있습니다.

이 문제로 인한 idle 세션이 많아지는 경우가 있겠지요.

(가장 대표적인 경우)

 

다음은 응용프로그램에서 db 연결을 종료하는 시점이 이상한 경우가 있을 수 있겠지요.

웹 프로그램 같은 경우라면, 프로그램 시작에서 무조건 db 연결을 하고는 그 중간에 루프문으로 온갖 복잡한 db랑 상관 없는 일을 하고, 끝나는 경우가 있습니다.  또는 db에서 웹서버 쪽으로 자료는 다 가져왔는데, 웹서버 쪽에서 그 가져온 자료를 가공하는 동안 계속 연결을 유지하고 있다면, idle 세션으로 되겠지요.

이런 경우는 대부분 웹프로그램 로직의 문제입디다.

이런 경우의 가장 대표적인 것이 웹 다운로드 관련 입니다. 다운로드 인증을 체크하기 위해 db에 접속해 놓고는 해당 파일을 클라이언트가 다 받을 때까지 웹서버는 db 서버에 접속해 있는 경우. 초보 웹 프로그래머가 쉽게 범하는 실수지요.

 

다음은 연결이 trust 로 잡혀있어, 외부 해킹프로그램들이 임의로 접속했는 경우가 있을수도 있겠지요. :)

 

김상기(ioseph)님이 2005-02-05 03:10에 작성한 댓글입니다.
이 댓글은 2005-02-05 03:11에 마지막으로 수정되었습니다.

혹시 db connection close를 하지 않아서 아닐까요? php같은 경우는 따로 close를 하지 않아도 php가 알아서 close를 해준다고 하지만 예전에 보니 pgsql에서 close가 잘 안되는 문제가 있었던 것 같더군요. 해결이 되었다는 소리를 듣긴 했지만 확인은 못해봤구요.

어떤 이유에서이든 close를 하지 않고 웹 어플리케이션이 끝나면 서버측에서는 한동안 연결을 끊지 않고 기다리다가 time out이 되면 끊어지니 비슷한 상황이 생길 것 같습니다.

박성철(gyumee)님이 2005-02-05 14:21에 작성한 댓글입니다.
이 댓글은 2005-02-05 14:22에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
5874데이터베이스 복구에 대해 질문.. [1]
초짜
2005-02-05
2494
5873DSN DB 서버 바꾸면서,... [2]
김상기
2005-02-05
2518
5872질문2개 : 8.0.1 을 W2K 에 설치시 한글관련 설정, DB백업 [3]
김이수
2005-02-05
3964
5871PostgreSQL을 사용하는데요..IDLE문제....로.... [2]
이상석
2005-02-04
3016
5869PostgreSQL 백업/복구 방법 [3]
초짜
2005-02-04
10595
5867출력결과테이블 아래 [1][2][3]...[10] 어떻게 해야하져?? [1]
헬프미
2005-02-04
1993
5866server 추가가 안되요 ㅠㅠ [4]
chobo
2005-02-02
2544
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다