Home | 문태준 | 시스템어드민 메일링 | Sys Admin 세미나
Skip to end of metadata
Go to start of metadata

PostgreSQL 관련자료

사이트 http://postgresql.org
매뉴얼 http://www.postgresql.org/docs/manuals/
8.1 A4 PDF 매뉴얼 8.1.17 html 매뉴얼

PostgreSQL 설치하기

dbms 설치

설치 OS centos 5.x
postgresql-server rpm 설치 (postgresql-server-8.1.11-1.el5_1.1)

/etc/init.d/postgresql start 해줌

처음 설치시 데이타 디렉토리는 기본으로 /var/lib/pgsql/data 가 되며 /var/lib/pgsql 디렉토리는 postgres 사용자, postgres 그룹만 읽고 쓸 수 있는 권한이 됨.

/var/lib/pgsql 디렉토리를 /data/pgsql 로 바꾸고 원래의 경로에는 심볼릭 링크를 걸어줌

dbms 관리

user 생성

-P 옵션은 패스워드 입력을 물어봄. -e 는 createuser 에서 생성하는 명령을 화면에 보여줌

사용자 삭제시는 dropuser use_name 하면 됨

db 생성

-E (또는 --encoding) 옵션에 UNICODE를 지정해주어야 UTF-8을 사용할 수 있음
-O (또는 --owner) 옵션은 해당 db를 소유하는 사용자를 지정함
-e 옵션은 생성하는 명령을 화면에 보여줌

삭제할 경우에는 dropdb db_name 하면 됨

dbms 접근제한 설정하기

/var/lib/pgsql/data/pg_hba.conf 파일에 있는 다른 줄은 주석처리하고 아래 내용만 넣음.
local 은 로컬에서의 접속을 지정하며 host 를 이용하여 ip를 이용해서 제한을 할 수 있음.

처음 설치 후 postgresql 을 띄우면 다음과 같이 설정이 되어 있다.

아래는 특정 ip 대역에서 사용자 인증을 통하여 접속하도록 설정하는 예제이다.

기본은 로컬호스트 유닉스 소켓으로만 접속할 수 있기 때문에 네트워크 설정을 변경해주어야 한다. 아래와 같이 접속할 호스트를 지정하면 접속이 안된다.

/var/lib/pgsql/data/postgresql.conf 에서 postgresql 버전에 따라서 조금씩 다르다.
7.4 버전은 tcpip_socket 를 true 로 설정해준다.
tcpip_socket = true

8.1 버전은 listen_addresses 에 * 표시를 해준다.
listen_addresses = '*'

/etc/init.d/postgresql restart 해줌

netstat 에서 5432 포트가 뜨는 것을 확인할 수 있음.

이제 원격에서 접속확인. 아래에서 wikidb는 호스트명에 등록을 하여 사용하는 경우임

참고로 서버가 아닌 다른 클라이언트에서 접속을 하려면 postgresql rpm 을 사전에 먼저 설치해야 한다.

접근설정 참고

접근할 host 를 지정하여 패스워드로 접속할 수 있도록 하였다.
wiki1, wiki2 에서 접속이 가능하고 testlink 서버에서 접속이 가능하도록 설정을 하였다.

방화벽 설정

방화벽 장비 또는 OS의 방화벽을 사용하는 경우 해당 호스트에 대해서 5432 port 를 열어주어야 함

DBMS 시스템 성능 조정

/var/lib/pgsql/data/postgresql.conf 설정내용 변경.
max_connections 늘리고 메모리 할당 늘렸으며 synchronization 을 비동기 방식으로 변경함.

max_connections : 100 -> 250 변경
fsync : on -> off 로 변경
기타 변경사항이 있으며 이 부분은 향후 확인

백업

man page 에서 pg_dump 예제임

EXAMPLES
To dump a database:

To reload this database:

To dump a database called mydb that contains large objects to a tar file:

To reload this database (with large objects) to an existing database called newdb:

전체 DB를 한꺼번에 옮길 경우에는 pg_dumpall 백업프로그램을 이용하는 것이 편리하며 유저, 그룹에 대한 정보도 옮겨준다.

백업하기

복구하기

추가 팁

관리용 계정에 대한 비밀번호 설정. 필수는 아님

로그보기

client_min_messages = notice 을 설정하여 클라이언트에서 접근하는 로그를 살펴봄

/var/lib/pgsql/data/postgresql.conf 에서 아래 설정을 변경하면 되는데 다시 살펴봐야 함

Labels
  • No labels