PostgreSQL - 윈디하나의 솔라나라

목차

개요

설치

소스설치

바이너리 설치

솔라리스 11.4 용 바이너리

PostgreSQL 사이트에서 제공했던 솔라리스 11용 바이너리는 솔라리스 11.3 SRU20 또는 솔라리스 11.4 이상을 필요로 한다. 11.2나 11.1 등 요구사항 이하의 솔라리스 11버전 에 설치해야 한다면, 소스설치하거나, 솔라리스 10용 바이너리를 사용할 수 있다.

실행

클라이언트

PostgreSQL 명령과 인증

PostgreSQL 을 처음 접할때 가장 혼동되는 것중 하나가, 예시된 명령에는 사용자이름, 패스워드, DB이름이 없는데도 PostgreSQL 에 접속되는거 같은데, 도대체 어느 계정으로 어느 DB에 어떤 권한을 가지고 어떻게 접속하는지 명확하지 않기 때문이다. "DB계정으로 SSH 접속해서 psql 만 치면 들어가져요."라고 답변 받고 잘 사용하다가 외부에서 접속하려 할때 부랴부랴 접속 세팅하는 경우를 보곤 했다. 이 문서를 읽을때에도 혼동되지 않도록 프롬프트를 잘 살펴보면서 읽자.

PostgreSQL 의 이념이 그렇다. 세팅해놓고 커맨드에서는 마치 계정에 특화된 유닉스 커맨드를 사용하듯 DB를 사용하면 된다. 이를 위해 PostgreSQL은 여러가지 기능을 지원한다. PGDATABASE, PGHOST, PGPORT, PGUSER, PGPASSWORD 등의 환경변수를 설정해 기본으로 사용할 접속정보를 지정할 수 있기 때문에, 더더욱 현재 접속하고 있는 롤과 데이터베이스를 확인해야 한다. 사용할 수 있는 환경 변수에 대한 설명은 Chapter 34. libpq - C Library - 34.14. Environment Variables를 읽어보자.


PostgreSQL 명령의 기본 인증

별도의 설정이나 옵션을 주지 않으면 PostgreSQL 명령은 프로세스의 Effective UserID를 기준으로 기본 사용자와 기본 DB를 정한다. 쉽게 말하면 --dbname, --username의 파라메터값이 유닉스 계정 이름이 된다. 현재 접속한 유닉스 계정 이름은 id(1)을 사용해 알아낼 수 있다.

windy@wl ~ $ id -un
windy

psql

패스워드 자동입력

pgBench

관리 프로그램

phpPgAdmin

pgAdmin

확장

Appendix F. Additional Supplied Modules의 주요 확장에 대해 설명한다.

PostGIS

PostgreSQL 의 대표적인 확장 모듈. GIS 정보를 다룰때 사용한다. PostGIS를 읽어보자. F.10. dblink는 원격 데이터베이스에서 쿼리를 수행하기 위한 모듈이다. 설치하려면 우선 SuperUser 권한을 가진 사용자로 DB에 Extension 을 설치하고 임의의 Schema 에 넣는다. DB 당 하나의 DBLINK 익스텐션만 설치할 수 있기 때문에 SCHEMA 도 한곳에만 가능하다. public 을 추천한다.
postgres@wl ~ $ sudo su - postgres psql --dbname windy

windy=# create extension dblink SCHEMA windy;
CREATE EXTENSION
아래와 같이 사용할 수 있다.
windy@wl ~ $ psql
windy=> select dblink_connect('MyDBLink', 'hostaddr=192.168.0.100 user=hana password=hana dbname=hana port=5432');

windy=> select * from dblink('MyDBLink', 'select user from userdb') as name (user varchar(100));

windy=> select dblink_disconnect('MyDBLink')

xml2 (XPath)

F.45. xml2는 XML 지원을 위한 API다. PostgreSQL 8.3부터 XML 을 사용할 수 있는데 이를 좀 더 확장해준다. 주로 XPath 관련 함수를 제공해준다.

pgcrypto

F.25. pgcrypto는 암호화 함수를 제공한다. 아래와 같이 사용할 수 있다.
postgres@wl ~ $ psql
postgres=# CREATE EXTENSION IF NOT EXISTS pgcrypto;
CREATE EXTENSION
postgres=# SELECT
    encode(
        encrypt(
            convert_to('sample text', 'utf8'),
                'key',
                'aes'
            ),
        'hex'
    );
              encode
----------------------------------
 f859f8abea6d78a58871a0f986a468bf
(1개 행)

postgres=# SELECT
    convert_from(
        decrypt(
            decode('f859f8abea6d78a58871a0f986a468bf','hex'),
            'key',
            'aes'
        ),
        'utf8'
    );
 convert_from
--------------
 sample text
(1개 행)

백업 및 복구

pg_dump 를 사용한 백업 및 복구

파일 시스템 백업 및 복구

CA 및 PTR

전문검색

RSS ATOM XHTML 5 CSS3