Win32용 PostgreSQL 사용하기
작성자: 김상기(ioseph)
다음 압축을 풀고, 설치파일을 실행하면, 일반적인 설치화면이 나타나며, 그 다음부터는 여느 프로그램 설치방법 처럼 디렉토리를 지정하고, 설치할 프로그램을 선택하고, 그 다음 작업들을 진행하면 된다.
한가지 주의할 점은 한국어 문제를 원할히 해결하기 위해서 로케일은 C로 데이터베이스 기본 인코딩은 SQL_ASCII로 지정하고 설치하면 됩니다.
데이터베이스 서버를 윈도우즈 서비스로 등록해서 운영하고자 한다면, 다음 몇가지 규칙이 지켜져야한다.
unicode 데이터베이스일 경우 psql 오류 피하기.
윗 pginstaller 에서 제공하는 설치파일로 설치할 경우, 기본적으로 psql 프로그램의 메시지가 한글로 보이는데, 이것이 unicode 인코딩의 데이터베이스일 경우에는 여러 가지 작업들에서 문자코드 변환을 못해서 오류를 일으킨다. 해결 방법은
Welcome to psql 8.0.0rc2, the PostgreSQL interactive terminal.
사용법: copyright 저작권 정보
h SQL 명령어 도움말
? 내장 명령어 도움말
g 또는 명령 끝에 ; 쿼리 실행
q 마침
template1=# c mydb
"mydb" 데이터베이스로 접속했습니다.
mydb=# encoding uhc
mydb=# show client_encoding;
client_encoding
-----------------
uhc
(1건 있음)
처럼 클라이언트 인코딩을 uhc (확장완성형) 코드로 지정하면 된다.
pgAdmin III에서 몇몇 기능을 제대로 이용하기 위한 postgresql.conf 파일 수정
stats_command_string = true
stats_block_level = true
stats_row_level = true
이 세줄의 값이 기본값에서 윗 처럼 바뀐다. 하나는 서버 상태를 모니터링 하는 대화상자의 결과를 제대로 보이기 위함이고, 다른 둘은 각 객체들의 사용량 통계자료를 제대로 보기 위함이다. (서버 부하를 줄이고자 한다면 이런 기능은 꺼두는 것도 좋은 방법이다)
postgresql.conf 파일에서
log_destination = 'eventlog'
부분을 지정해준다.
그다음, PostgreSQL 프로그램이 설치된 디렉토리의 lib 디렉토리 안에 있는 pgevent.dll 파일을 regsvr32 프로그램을 이용해서 등록해 둔다. cmd 창에서
C:WINDOWS>cd "Program FilesPostgreSQL8.0.0-rc2lib"
C:Program FilesPostgreSQL8.0.0-rc2lib>c:windowssystem32regsvr32.exe pgevent.dll
다음 서버를 재가동하고, 이벤트로그의 응용프로그램 코너를 보면 로그가 그쪽으로 저장됨을 살펴 볼 수 있다.
autovacuum 기능을 서비스로 등록해서 사용하기.
bin 디렉토리에 보면, pg_autovacuum.exe 파일을 찾을 수 있을 것이다. 이것은 8.0 버전에서 새롭게 추가된 auto vacuum 기능을 제공해 주는 것으로, 서버 데몬 프로그램처럼 항상 실행되어 있으면서 수시로 서버 상태를 체크해서 vacuum 작업이 필요하다고 판단되면 스스로 그 작업을 진행하는 프로그램이다.
자세한 사용법은 cmd 프로프트에서 pg_autovacuum -h 명령으로 도움말을 살펴볼 수 있다.
여기서는 이 프로그램을 윈도우즈 서비스로 등록해서 더이상 신경 안쓰는 방법을 소개하겠다.
서비스로 등록하는 옵션은 -I
pg_autovacuum -I -U postgres -P 0000
명령을 사용한다. 서비스를 삭제하려면, -R
이때, -U 옵션은 디비 서버에 접속할 PostgreSQL 슈퍼유저이름이고, -P 옵션은 그 사용자의 비밀번호이다. 기본적으로 저렇게 호출되면, 로컬호스트의 디비서버로 접속한다.
이로써 win32 기반에서 PostgreSQL 서버를 사용하는 방법은 개략적으로나마 살펴보았다.
예전 유닉스 환경에서 사용보다 한결 쉬워졌다. 그리고 기능도 많이 확장되었다.