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 9418 게시물 읽기
No. 9418
encoding 과 관련된 pg_stat_activity 관련 질문입니다.
작성자
김민석
작성일
2014-03-12 13:08ⓒ
2014-03-12 13:10ⓜ
조회수
10,464

 안녕하세요. 

인코딩과 관련하여 의아한 사항이 있어 질문드려 봅니다.

현재 클러스터(개발) 내에 약 20개의 DB 를 서로 다른 인코딩 타입으로 운영하고 있습니다.

여차여차 하여 모니터링 SQL 을 작성하고 있는데요. 

pg_stat_activity 를 이용하여 backend 별로 세션정보를 수집하려 합니다.

여기서 문제는 default DB 인 postgres DB 가 EUC-KR로 생성되어 있으며, 업무DB는 UTF8로 운영되고 있습니다.

결국 postgres DB 로 접속하여 pg_stat_activity를 select 하는 시점에 업무DB상에서 코멘트 따위에 EUC-KR 에서 처리될 수 없는 문자열이 들어올 경우

문자열이 깨져서라도 들어오면 좋으련만 오류가 발생되어 현재는 수집자체가 불가능한 상황으로 보입니다.

개인적으로 볼때는 버그가 아닐까 판단됩니다만... 혹여 피해갈 수 있는 방법이 있거나 패치내용을 놓치고 있나 싶어 이렇게 올려봅니다.

고맙습니다.

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

 버그라기 보다는 어쩔 수 없는 한계인 것 같네요. 

utf8 문자세트가 euc-kr 문자세트의 슈퍼세트이기 때문에, 

euc-kr 환경에서 utf8 DB의 내용을 보겠다는 것은 무리인 듯합니다. 

 

그 반대로, pg_stat_activity 를 사용하는 쪽이 utf-8이고, 

실 사용 DB가 euc-kr인 경우 일단 pg_stat_activity 쿼리가 실패를 하지는 않지만, 

pg_stat_activity.query 내용이 비정상적이긴 하네요. 

이부분은 버그로 봄이 맞을 것 같습니다. 

이 부분은 멀티바이트 문자세트를 사용하는 개발자가 수정해야 문제가 풀릴 것 같습니다. 

 

일단 이 문제를 피해갈 수 있는 방법은 pg_stat_activity를 사용하는 데이터베이스의 문자세트를 

utf-8로 만드는 방법 밖에는 없어보입니다. 

set client_encoding 문제로도 해결이 나질 않네요. 

 

좋은 보고네요. 

김상기(ioseph)님이 2014-03-14 10:17에 작성한 댓글입니다.

pg_stat_activity가 실행되는 DB 를 UTF8로 변경하는 방법으로 우회했습니다.

고맙습니다.

김민석님이 2014-03-14 12:06에 작성한 댓글입니다.
이 댓글은 2014-03-14 12:14에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
9421통계정보 백업 및 복구. [1]
김승규
2014-03-18
10832
9420Data Insert시 또다른 DB에 Data 입력 [2]
이상택
2014-03-18
10611
9419index를 어떻게 해야할지요.. [1]
JungHo Kim
2014-03-13
10657
9418encoding 과 관련된 pg_stat_activity 관련 질문입니다. [2]
김민석
2014-03-12
10464
9416필드 수와 내용부분 칼럼의 분리 [2]
S.K.
2014-03-10
10536
9415select (select '컬럼') from 테이블; 컬럼을 테이블 컬럼인식방법 아시는분? [5]
김현진
2014-03-06
11291
9414디비 속도좀 봐주세요. [4]
iyob
2014-03-05
10936
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다