PostgreSQL 9.2.4 Released (주요!)

클라이언트가 서버로 연결 할 때 지정하는 데이터베이스 이름이 ‘-‘문자로 시작하는 경우 서버에 치명적인 문제점이 생길 수 있는 보안 버그 패치입니다.
클라이언트 접속이 방화벽으로 지정한 인증된 접속만을 허용하는 경우라면 그나마 안전하겠지만, 그렇지 않다면, 취약점을 이용해 서버를 망치는 공격이 언제 들어올지 모를일입니다.
가능하다면, 꼭 업그레이드 하시길 바랍니다.
9.2.x에 국한된 것이 아니라, 9.1, 9.0, 8.4 버전 모두입니다.
또한 GiST 인덱스 관련 자잔한 문제점들을 개선했습니다. 업데이트 한다면, 서버 재실행 뒤 반드시 GiST 인덱스들은 다시 만들어 주어야한답니다.
그외 자잔한 패치들이 적용되었습니다.
자세한 내용은 http://www.postgresql.org/docs/9.2/static/release-9-2-4.html 참조하세요.

Posted by ioseph

2013/04/05 02:29 2013/04/05 02:29
Response
0 Trackbacks , 0 Comments
RSS :
http://postgresql.kr/blog/rss/response/7

Trackback URL : http://postgresql.kr/blog/trackback/7

PostgreSQL 9.2.2 배포되었습니다.

지난 주말에, 9.2 버전의 패치 버전이 릴리즈 되었습니다.


첫머리에 언급한 것은 concurrently 옵션을 주고 만든 모든 인덱스를 다시 만들어라는 이야기였습니다.

(서비스 운영 중에, 테이블 잠금 없이 인덱스를 만들고자 할 때, 이 옵션을 주고 만들거든요.)

이 버그 수정은 9.1, 9.0, 8.4 모두 해당됩니다.

그외 리플리케이션 기능에서 자잔한 문제점들을 수정했고,

GIN, Gist 인덱스를 사용하고 있다면, 이들도 함께 다시 만들어라고 하네요.


굵직한 버그 수정이 없는 것(?)으로 보아, 9.2 버전도 이제 실무환경에서 사용할 수 있을 만큼 삭혀졌나봅니다.


거기다 이제 8.3 버전의 back patch 서비스를 중지한다고 하네요.

8.3 버전을 사용하고 있다면, 데이터베이스 업그레이드를 이제 신경 써야할 것 같습니다.


자세한 내용은 릴리즈 노트를 읽어보세요.

http://www.postgresql.org/docs/current/static/release-9-2-2.html

Posted by ioseph

2012/12/10 11:04 2012/12/10 11:04
Response
2 Trackbacks , 0 Comments
RSS :
http://postgresql.kr/blog/rss/response/6

Trackback URL : http://postgresql.kr/blog/trackback/6

Trackbacks List

  1. Tracked from GS test dem 2013/04/02 22:15 Delete

    The Korean PostgreSQL Community

  2. http://www.elmcitycarclub.com/groups/vital-details-of-usb-an-intro

    Tracked from http://www.elmcitycarclub.com/groups/vital-details-of-usb-an-intro 2013/05/02 08:49 Delete

    The Korean PostgreSQL Community

pg_top

출처 ) http://wwdj.wijndaele.com/how-to-monitor-postgresql-processes/

HOW TO MONITOR POSTGRESQL PROCESSES

pg_top is ‘top’ for PostgreSQL. It is derived from Unix Top. Similar to top, pg_top allows you to monitor PostgreSQL processes. It also allows you to:

  • View currently running SQL statement of a process.
  • View query plan of a currently running SQL statement.
  • View locks held by a process.
  • View user table statistics.
  • View user index statistics.

You can download it here…

How to install it :

  • tar xvzf pg_top-3.6.2.tar.gz
  • yum install postgresql-devel
  • yum install ncurses-devel
  • ./configure
  • make

A quick example :

  • ./pg_top -U username-d database -h localhost -W

More information :

  • ./pg_top –help

Screenshots

An interestesting slideshare :

Posted by max

2012/11/09 15:28 2012/11/09 15:28
Response
3 Trackbacks , 0 Comments
RSS :
http://postgresql.kr/blog/rss/response/5

Trackback URL : http://postgresql.kr/blog/trackback/5

Trackbacks List

  1. GS test demo

    Tracked from GS test demo 2013/04/02 22:20 Delete

    The Korean PostgreSQL Community :: pg_top

  2. bankirai

    Tracked from bankirai 2013/04/28 15:34 Delete

    The Korean PostgreSQL Community

  3. bep hong ngoai

    Tracked from bep hong ngoai 2013/05/12 20:26 Delete

    The Korean PostgreSQL Community

오라클 sdo_geometry 자료형에 대해서는
페이지를
sdo_geometry 자료형을 PostgreSQL 자료형으로 변환 하는 원문은
페이지를
PostGIS 관련 문서는
페이지들을 참조로 작성될 것입니다.

Oracle sdo_geometry 자료형 구조


PostgreSQL용 오라클 호환 sdo_geometry

먼저 위에서 언급한 대로 일단 똑같은 mdsys.sdo_geometry 자료형을 하나 만든다.

CREATE DOMAIN mdsys.sdo_elem_info_array AS numeric[];
CREATE DOMAIN mdsys.sdo_ordinate_array AS numeric[];
CREATE TYPE mdsys.sdo_point_type AS (x numeric, y numeric, z numeric);
CREATE TYPE mdsys.sdo_geometry AS (
 sdo_gtype numeric, 
 sdo_srid numeric,
 sdo_point mdsys.sdo_point_type,
 sdo_elem_info mdsys.sdo_elem_info_array,
 sdo_ordinates mdsys.sdo_ordinate_array);
이 자료형은 PostgreSQL 표준 복합 자료형이 됨으로, 입출력 또한 그대로 하면 된다.

dblink를 이용한 자료 옮기기

먼저 오라클에서 sdo_geometry 자료를 PostgreSQL 입력 포멧으로 바꾸기 위해서, 위에서 언급한 사이트에서 제공한 패키지를 약간 수정해서 만든다.
CREATE OR REPLACE PACKAGE pg_user_geom_util AS
-- copyright (c) 2012, Nicander Ltd
-- url: http://www.tolon.co.uk/2012/09/geometry-objects-across-dblink/
-- modified by ioseph
     
    -- Translates a geometry object into a string representation 
    -- for storage and transport. See also StringToGeom.
    FUNCTION GeomToString(pGeom IN mdsys.sdo_geometry ) RETURN VARCHAR2 DETERMINISTIC;
     
END pg_user_geom_util;

CREATE OR REPLACE PACKAGE BODY ADMCHOI.pg_user_geom_util AS
-- copyright (c) 2012, Nicander Ltd
-- url: http://www.tolon.co.uk/2012/09/geometry-objects-across-dblink/
-- modified by ioseph
 
-- Gets the next token in a separated list. See StringToGeom for an example.
PROCEDURE get_token( iStart   IN NUMBER,
           sPattern in VARCHAR2,
           sBuffer  in VARCHAR2,
           sResult  OUT NOCOPY VARCHAR2,
           iNextPos OUT NOCOPY NUMBER ) IS
  nPos1 number;
  nPos2 number;
BEGIN
  nPos1 := Instr(sBuffer, sPattern, iStart);
  IF nPos1 = 0 then
  sResult := rtrim(ltrim(substr(sBuffer, iStart, LENGTH(sBuffer) - iStart)));
  ELSE
  sResult  := Rtrim(Ltrim(Substr(sBuffer, iStart, nPos1 - iStart)));
  iNextPos := nPos1 + 1;
  END IF;
END;
 
--------------------------------------------------------------------------------
   
FUNCTION NumberToString(pNumber IN NUMBER) RETURN VARCHAR2 IS
BEGIN
  IF (pNumber IS NULL) THEN
    RETURN '';
  ELSE
    RETURN TO_CHAR(pNumber);
  END IF;
EXCEPTION
  WHEN OTHERS THEN
    RETURN '';
END;




function emptytonull(pString in varchar2) return varchar2 is
begin
  return case when pString = '' then 'null' else pString end;
end;
   
--------------------------------------------------------------------------------
   
FUNCTION StringToNumber(pString IN VARCHAR2) RETURN NUMBER IS
BEGIN
    RETURN TO_NUMBER(pString);
EXCEPTION
  WHEN OTHERS THEN
    RETURN NULL;
END;
   
--------------------------------------------------------------------------------
   
  -- String format is as follows:
  --
  -- ,,,,
  --
  -- Where:
  --  := 
  --  := 
  --  := NULL | SDO_POINT_TYPE, OPTIONAL_NUMBER, OPTIONAL_NUMBER, OPTIONAL_NUMBER
  --  := NULL | SDO_ELEM_INFO_ARRAY, NUMBER, {OPTIONAL_NUMBER, ...}
  --  := NULL | SDO_ORDINATE_ARRAY, NUMBER, {OPTIONAL_NUMBER, ...}
  --
  --  := NULL | NUMBER
  -- entries in curly braces are repeated from n times
FUNCTION GeomToString(pGeom IN mdsys.sdo_geometry ) RETURN VARCHAR2 DETERMINISTIC IS
  vString VARCHAR(32767);
  vCount NUMBER;
BEGIN
  -- GTYPE
  vString := NumberToString(pGeom.SDO_GTYPE);
   
  -- SRID
  vString := vString || ',' || NumberToString(pGeom.SDO_SRID);
   
  -- POINT
  IF (pGeom.SDO_POINT IS NULL) THEN
    vString := vString || ',';
  ELSE
    vString := vString || ',"(' || NumberToString(pGeom.SDO_POINT.X) || ',' || NumberToString(pGeom.SDO_POINT.Y) || ',' || NumberToString(pGeom.SDO_POINT.Z) || ')"';
  END IF;
   
  -- ELEM_INFO
  IF (pGeom.SDO_ELEM_INFO IS NULL) THEN
    vString := vString || ',';
  ELSE
    vCount := pGeom.SDO_ELEM_INFO.COUNT;
    vString := vString || ',"{';
    FOR i IN 1..vCount LOOP
      if i > 1 then
        vString := vString || ',';
      end if;    
      vString := vString || emptytonull(NumberToString(pGeom.SDO_ELEM_INFO(i)));
    END LOOP;
    vString := vString || '}"';
  END IF;
   
  -- ORDINATES
  IF (pGeom.SDO_ORDINATES IS NULL) THEN
    vString := vString || ',';
  ELSE
    vCount := pGeom.SDO_ORDINATES.COUNT;
    vString := vString || ',"{';
    FOR i IN 1..vCount LOOP
      if i > 1 then
        vString := vString || ',';
      end if;
      vString := vString || emptytonull(NumberToString(pGeom.SDO_ORDINATES(i)));
    END LOOP;
    vString := vString || '}"';
  END IF;
   
  RETURN '(' || vString || ')';
END;
END pg_user_geom_util;
이것을 가지고, 옮겨감.
문제는 어떻게 옮겨갈 것인가인데, PosgreSQL 쪽에서는 oracle_fdw 뿐인듯하다.

PostGIS 기반 자료형들


PostgreSQL에서 sdo_geomery 자료를 PostGIS  자료로 바꾸기


PostGIS 자료형 입출력


PostGIS 인덱스 사용하기



Posted by ioseph

2012/10/24 02:47 2012/10/24 02:47
Response
6 Trackbacks , 0 Comments
RSS :
http://postgresql.kr/blog/rss/response/4

Trackback URL : http://postgresql.kr/blog/trackback/4

Trackbacks List

  1. GS test demo

    Tracked from GS test demo 2013/04/02 00:30 Delete

    The Korean PostgreSQL Community

  2. fingertip towels

    Tracked from fingertip towels 2013/04/27 07:09 Delete

    The Korean PostgreSQL Community

  3. fwtovoltaika

    Tracked from fwtovoltaika 2013/04/29 21:37 Delete

    The Korean PostgreSQL Community

  4. ??????as? a?t?????t??

    Tracked from ??????as? a?t?????t?? 2013/05/04 11:39 Delete

    The Korean PostgreSQL Community

  5. http://www.hangoutpad.com

    Tracked from http://www.hangoutpad.com 2013/05/11 14:42 Delete

    The Korean PostgreSQL Community

  6. linked internet site

    Tracked from linked internet site 2013/05/13 01:31 Delete

    The Korean PostgreSQL Community

준비

도입배경

PostgreSQL 데이터베이스 서버의 메이져 버전 업그레이드 작업은 전통적으로 pg_dump - pg_restore 명령을 이용해서 데이터베이스 전체를 덤프하고, 그것을 새 버전에서 복원하는 방식으로 진행했습니다.
이 작업은 다른 RDBMS 업그레이드에 비해 꽤나 번거로운 작업이었습니다.  그래서, dump - restore 작업 없이 메이져 버전을 바꿀 방법을 찾던 중, 데이터파일을 직접 변경하는 프로그램을 만들어보자는 취지 아래 이 pg_upgrade 프로그램이 9.0 버전부터 확장 프로그램으로 포함되기 시작했습니다.

pg_upgrade 설치

이 프로그램의 소스 코드는 공식 배포판의 정규 코드들이 있는 src 디렉토리에 있지 않고, 아직까지는 contrib 디렉토리에 포함되어있습니다.  (즉, 아직까지는 공식 배포판 안에 포함되기에는 범용적이지 못하거나, 튼튼하지 않다는 이야기입니다.)

PostgreSQL 배포판을 바이너리 설치 파일로 설치를 했다면, 이미 bin 디렉토리 내에 있을 수도 있으며, 없다면, contrib 확장 모듈, 프로그램을 따로 패키징 해서 배포할 수 있으니, 그것을 찾아서 설치하면 됩니다.

소스코드에서 직접 컴파일 해서 사용한다면, contrib 디렉토리 안에 있는 확장 모듈이나, 확장 프로그램 설치와 동일한 벙법으로 설치 하면 됩니다.

$ cd PG_SOURCE/contrib/pg_upgrade
make all && make install

OS 입장에서 준비해야 할 사항

pg_upgrade 프로그램은 기존 자료는 그대로 두고 그것을 바탕으로 새 자료를 만드는 방식으로 진행됩니다. 즉, DB 서버가 운영되고 있는 호스트의 디스크 공간이 현재 사용하고 있는 데이터 클러스터 공간과 함께 새 데이터 클러스터로 쓸 공간이 그만큼 있어야합니다.

또한 PostgreSQL 배포판의 옛 버전과, 새 버전 모두 설치 되어있어야합니다. 만일 OS 표준 패키지로 설치를 했다면, PostgreSQL 버전을 업그레이드하면서, 기존 버전을 덮어 쓰는 경우도 있기 때문에, 반드시 확인을 해야합니다.  여기서는 소스에서 직접 컴파일 해서 사용하는 경우로 글이 작성되기 때문에, 다음과 같이 배포판을 설치했습니다.

/usr/local/pgsql91 (기존 PostgreSQL 설치 디렉토리)
/usr/local/pgsql92 (새 PostgreSQL 설치 디렉토리)

사용법


마무리


Posted by ioseph

2012/10/08 10:49 2012/10/08 10:49
Response
3 Trackbacks , 0 Comments
RSS :
http://postgresql.kr/blog/rss/response/2

Trackback URL : http://postgresql.kr/blog/trackback/2

Trackbacks List

  1. GS test demo

    Tracked from GS test demo 2013/04/02 22:16 Delete

    The Korean PostgreSQL Community

  2. explain

    Tracked from explain 2013/05/02 02:01 Delete

    The Korean PostgreSQL Community

  3. laptop

    Tracked from laptop 2013/05/12 01:52 Delete

    The Korean PostgreSQL Community

PostgreSQL 9.2.1 배포되었습니다.

지난 9월 10일 9.2 메이져 버전 배포되되고,  불과 보름만에 나온 패치 버전입니다.

(최근 패치버전 릴리즈 패턴 가운데 보기 드물게 짧은 기간의 패치네요.)


리플리케이션 쪽이나, 트랜잭션 로그 기반 복구 작업에서 오동작을 할 가능성이 발견되어 급하게 나온 패치판입니다.

9.2.0 버전을 쓰고 있었다면, 데이터베이스 전체 reindex 작업을 해주는 것이 안전 할 것 같습니다.

(물론 실무에 바로 사용되지 않았으리라 보고)


거기다, 초기 매이져 버전 릴리즈 다음 첫 패치판 답게 굵직굵직한 문제점들을 수정했네요.

group by 쪽 실행계획이 엉뚱하게 만들어지는 것, where ... in (..) 구문에서 오동작을 하는 것들 수정하고,

plperl 쪽 장애 예방을 했습니다.


자세한 이야기는 배포판 릴리즈 노트를 참조 하면 될 듯 하고요.

http://www.postgresql.org/docs/9.2/sta ··· 2-1.html 

Posted by ioseph

2012/10/08 10:19 2012/10/08 10:19
Response
1 Trackbacks , 0 Comments
RSS :
http://postgresql.kr/blog/rss/response/1

Trackback URL : http://postgresql.kr/blog/trackback/1

Trackbacks List

  1. types of construction wood

    Tracked from types of construction wood 2013/05/06 04:48 Delete

    The Korean PostgreSQL Community


최근배포판

RSS News Change
    블로그 이미지

    한국 PostgreSQL 사용자들을 위한 정보 공유 블로그

    - ioseph

    Archives

    Recent Comments

    Site Stats

    Total hits:
    13951
    Today:
    22
    Yesterday:
    36