설치과정과 겪은 문제점을 쭉 적어 보겠습니다.
==================================
테스트 컴의 사양 :
P/III 550 dual / 512M
RedHat 6.2 // Kernel 2.2.18
===================================
설치과정 :
1. su / 해서 root 로 로그인 합니다.
useradd /D /usr/local/pgsql postgres
이것은 postgres 라는 DBA 의 계정을 만들어 주기위한 동작입니다. 이미 생성되어 있는 경우라면 당연히 필요없는 과정입니다.
2. postgresql/7.1RC2.tar.gz 소스를 받아서 /usr/local/src 디렉토리 아래에 풀어 줍니다.
3. cd postgresql/7.1RC2
4. ./configure 를 실행합니다. 다음과 같이 줄수 있는 옵션은 다 줘 봤습니다.
./configure \
//enable/locale \
//enable/recode \
//enable/multibyte \
//enable/unicode/conversion \
//with/maxbackends=256 \
//with/tcl \
//without/tk \
//with/tclconfig=/usr/lib \
//with/tkconfig=/usr/lib \
//with/perl \
//with/python \
//with/openssl \
//enable/odbc \
//with/CXX \
//with/gnu/ld \
//enable/syslog
참고로 //with/java 는 ant 가 설치되어 있어야만이 줄수 있더군요. 그래서 제외시켰습니다. (JDBC 를 설치해 주는 옵션 같았습니다.)
5. make
약 2/3분 정도 걸린 것 같은데 정확한 기억은 나질 않는군요.
6. make install
/usr/local/pgsql 에 바이너리를 설치합니다.
7. cd doc
make install
이것은 man page 와 document 를 설치하기 위한 것입니다.
8. chown /R postgres.postgres ~postgres
9. su / postgres
10. initdb /E EUC_KR
11. vi data/postgresql.conf
이것은 postgresql.conf 라는 파일을 수정하기 위한 것입니다. 이곳에서 postgresql 의 기본적인 설정을 해 주게 되어 있습니다. 개인적으로는 다음 한줄만 적어 줬습니다.
tcpip_socket = true
이것은 인터넷을 통한 원격접속이 가능하도록 해 주겠다는 것입니다.
12. bin/pg_ctl start
이렇게 해서 정상적으로 기동이 되어야 합니다. 일반적으로 그렇다는 것입니다. 물론 처음에 실패하는 경우도 있을수 있는데 이럴 경우에는 PGDATA/PGLIB 등의 환경변수가 제대로 설정되었는지 잘확인해 보시기 바랍니다.
=====================
설치후 겪은 문제점 :
1. 설정파일이 변경되었다는 것에 혼란을 느꼈다. 설정파일을 보면 postgresql.conf 라는 파일과 postmaster.opts 라는 파일 두가지가 있다. 파일의 이름을 보면 하나는 postgresql 의 전반적인 설정 같고, 하나는 postmaster 의 옵션을 지정해 주는 파일인 것 같은데 이것은 실제적으로 거의 같은 의미를 가지므로 postgres 와 postmaster 라는 프로그램이 비록 하나의 파일이지만 (postmaster 는 postgres 라는 프로그램의 symbolic link 입니다) 실제로 동작시에는 파일의 이름에 따라서 다르게 동작한다는 것을 알고 있기 전에는 헤깔릴 수 있는 설정이라고 할 수 있습니다.
2. pg_dump 로 백업 받아 두었던 파일을 restore 시키는 과정에서 일부 테이블이 restore 되지가 않았습니다. 그래서 해당 테이블은 따로 pg_dump /t table_name /d 옵션을 주어서 INSERT 명령어 형식으로 덤프를 다시 받아서 restore 를 시켰습니다. 다행히 성공적으로 restore 가 되더군요. 하지만 이런 작업은 사실 COPY 명령어로 resotre 시킬때 보다는 엄청난 시간을 요할 수 있으므로 어찌 되었던 일종의 버그라고 생각할 수 있을 것 같습니다.
|