정말 간만에 일과 관련된 포스팅 되겠다.
사실 오라클은 업무용으로 설정되어 있는 녀석들만 쓰다보니 설정이라든지 관리에 대해서 주인장 역시 초보와 마찬가지인 상황이었는데, 갑작스레 이녀석이 다시 주인장의 인생에 태클을 걸어오는 바람에 최초의 9i 설치 포스팅후 다시 설치로 돌아간 포스팅 되겠다.

사실 시도는 oracle 11g r2를 가지고 시도했었고, 현재시점에서 최신버젼은 11g r2이다. 하지만, 설치상에 오류를 만났고, 주인장에게 주어진 시간도 시간이거니와, 아무리해도 안되는 부분(ㅠ,.ㅠ)이 생겨서 급하게 11g r1으로 변경한 케이스이다.

우선 기쁜소식은 9i때 처럼 gui환경에서 인스톨러 띄우는것이 그닥 어렵지 않아졌다는것. 게다가 지긋지긋하던 link에러도 주인장의 설치 방법에서는 나오지 않았다는 것이나. 역시나 오라클은 배신을 하지않고, 설치과정에서 사람 진을 빼먹는 프로그램임을 다시 한번 느끼게 되었다.

설치 오에스는 centos 5.4 server gui 로 sun virtual box에서 설치.
우선 메모리 설정부분에서 1024 이상으로 설치 해야 한다, 오라클이 물리적 메모리 크기로1024를 요구 하기 때문인데, 이것보다는 약간 크게 잡도록 한다. (요즈음 메모리야 1기가 이상이잖아요~~ 왜들 이러세요 메모리 증설 할때 1G 올린다고 큰맘 먹는 사람들처럼~)

원격에서 X-window환경을 위하여 원격지 컴퓨터에 Xming 설치후 VM에 접근하여 x-window어플리케이션이 동작하는지 확인후 진행하였다.

우선 설치전에 해야 할것들이 있다.
사실 주인장은 이부분에서 많이 감동을 먹었는데, 이부분에서 뭔가 잘못되더라도 인스톨러에서 체크를 해준다는것. 예전에는 이러한 체크없이 인스톨러가 에러메시지를 뿜으면서 종료를 강요했었었다.

계정 설정.
#(당연하지만, 이게 앞에 있으면 root shell)
#groupadd oinstall
#groupadd dba
#useradd -m -g oinstall -G dba oracle
#passwd oracle.

계정 설정은 끝. 다음은 커널 인자들을 설정해야 한다.
#vi /etc/sysctl.conf
- 이하 파일 내용
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
- 파일 편집 끝.

#/sbin/sysctl -p
로 설정된 값을 확인한다. 이 값들은 인스톨러에 의해서 체크 되므로, 숫자에 너무 민감하지 않아도 된다.

계정 제한.
#vi /etc/security/limits.conf
- 이하 파일내용
oracle        soft        nproc        2047
oracle        hard       nproc        16384
oracle        soft        nofile         1024
oracle        hard       nofile         65536
- 파일 편집 끝.

#vi /etc/pam.d/login
- 이하 파일내용
session        required        /lib/security/pam_limits.so
- 파일 편집 끝.

필요 프로그램 설치
오라클 설치를 위해서 필요한 프로그램들을 설치한다. 각각의 설치는 yum을 이용한다.

-install gcc-3.4.6
-install glibc-devel-2.3.4
-install glibc-headers-2.3.4
#yum install gcc

-install gcc-c++-3.4.6
-install libstdc++-devel-3.4.6
#yum install gcc-c++

-install compat-libstdc++-33-3.2.3
#yum install compat-libstdc++-33

-install elfutils-libelf-devel-0.97
#yum install elfutils-libelf-devel

-install libaio-devel-0.3.105
#yum install libaio-devel

-install sysstat-5.0.5
#yum install sysstat

-install unixODBC-2.2.11
#yum install unixODBC

-install unixODBC-devel-2.2.11
#yum install unixODBC-devel

-install pdksh-5.2.14
#yum install pdksh

호스트 설정.
오라클 인스톨러가 네트워크 설정 마법사를 이용할때 필요하다. 자신의 아이피를 호스트 파일에 등록시키면 되는데, 한마디로 hostname을 이용해서 얻은 호스티명으로 핑을 던졌을때 자신의 아피가 나오면 오케이 (어째 더 힘든가..ㅡㅡㅋ)
#vi /etc/hosts

설치
다운로드 받은 오라클 설치 파일을 압축해제하고, 실행권한과 소유권한을 준후 설치를 시작한다.
설치는 오라클 계정으로 접속해서 진행한다. 이예제에서는 /download 디렉토리에 오라클 설치파일을 두었다.

#cd /download
#unzip linux-11gR1-database_1013.zip
#chown -R orcle.oinstall ./database

인스톨러 시작.
#xhost +
새로운 putty창을 열고 오라클 계정으로 로그인 후 인스톨러 구동.
$(아시다 시피 이것은 사용자 계정 shell)
$cd /download/database
$./runInstaller

인스톨러를 이용한 설치진행.
- 이부분은 거의 대부분을 default로 진행 했다. 뭐 특별히 설명을 안해도 될정도로 잘되어 있기는 하지만, 이부분에서 ORACLE_HOME 환경변수라든지 나오는 정보에 대해서는 메모를 해두는것이 좋을듯 하다.

설치 종료후 점검.
설치가 완료된 상태에서는 데이터 베이스도 올라와 있고 모든것이 잘되는 듯 싶지만, 주인장의 경우 설치된 VM을 리부팅 하고나면 완전히 이야기가 달라졌다. 이후 상황은 주인장에게만 나타났을수도 있는 과정으로 VM을 리부팅하고나서 oracle계정으로 접속, 오라클사에서 제공하는 클라이언트인 sqldeveloper를 이용하여 접속이 되는 과정까지 이다.

환경변수 설정.
오라클 계정의 환경변수를 설정해준다.
$vi .bash_profile
- 이하 파일내용
ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
export ORACLE_HOME
ORACLE_SID=orcl
export ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin
- 파일내용 끝.

오라클 DB 시작.
리스너를 시작한다.
$lsnrctl start
오라클 sqlplus 프롬프트로 접근.
$sqlplus /nolog
SQL>(아시다 시피 오라클 sqlplus 프롬프트입니다.)
SQL>connect orcl as sysdba
password :
- 기본으로 설치 했기 때문에 기본 데이터 베이스가 orcl로 되어 있는 상태.
SQL>startup (시작)
SQL>shutdown immediate (종료)

오라클 db를 시작하고 원격지에서 접근이 되는지 확인하면 되겠다.

헌데 여기서부터 주인장의 구글 삽질기가 시작되니. startup을 시키기 위해 명령을 내리고 엔터키를 치는 순간 나타나는 메시지 게다가 하나를 해결하면 또 나타나고 또 나타나고... 결국 각 메시지 에 대해서 아래와 같이 처리하여, 원격지에서 접속 성공.

-ora-01078 failure in processing system parameters
$cp /home/oracle/app/oracle/product/11.1.0/db_1/dbs/init.ora \ /home/oracle/app/oracle/product/11.1.0/db_1/dbs/initORCL.ora (한줄에 쓰기)
$vi initORCL.ora
-파일 내용 시작
db_name=orcl
-파일 내용 끝.

-ora-00371 not enough shared pool memory
$vi initORCL.ora
-파일 내용 시작
shared_pool_size = 102341017
-파일 내용 끝.

-ora-00205 error in identifying control file
$vi initORCL.ora
-파일 내용 시작
control_files=(/home/oracle/app/oradata/orcl/control01.ctl, \ /home/oracle/app/oracle/oradata/orcl/control02.ctl, \ /home/oracle/app/oracle/oradata/orcl/control03.ctl) (한줄에 쓰기)
-파일 내용 끝.

-ora-00201 control file version 11.1.0.0.0 incompatible with ORACLE version
$vi initORCL.ora
-파일 내용 시작
compatible = 11.1.0.0.0
-파일 내용 끝.

결국은 initORCL.ora 파일 문제 였던것. 이 예제에서 사용된 path등은 기본설치를 했다는 가정에서 쓰여졌으므로 설치 위치를 조정한 사람은 알아서 수정해야 한다.

이렇게해서 우야둥둥 오라클은 설치.

ps. 끼아악...포스팅 해놓고 보니 9i 설치할때 포스팅이 무려 3년 전이네요 @,.@ 그동안 난 뭘 한거쥐..ㅠ,.ㅠ
2010/02/04 20:18 2010/02/04 20:18

예전에 오라클 8.1.5를 리눅스 상에서 깔기위해 엄청난 삽질을 했었던 기억이 있다.
그때는 리눅스에서도 IT라는것에도 초짜임에 분명했지만, 되지도 않는 영어를 가지고 외국문서들을 찾아가면서 근 2~3주의 시간을 들여 설치에 성공했었을때의 기쁨은 아직도 잊지 못하고 있다. 특히나 그당시 오라클을 깔기 위해서 과정이 별다른 실수없이 진행을 하더라도 반나절 이상이 걸리는 작업이기에 사소한 환경설정에도 손을 벌벌 떨었던 기억이 난다.

어찌되었던 이번에 다시 오라클을 대면하게 되었다. 8.1.5는 이미 지원이 중단된지 오래. 게다가 9i 조차 구버젼으로 otn에서 별도의 링크를 타고 들어가 받을수 있게 되어 있었다.

뭐 일단 기본문서를 기반으로 설치시작...
하지만 주르륵 떨어지는 에러 메시지들...
아핫!!! 변하게 없구나 오라클...ㅠ,.ㅠ

다음은 간단 오라클 설치기.

우선은 http://www.puschitz.com/InstallingOracle9i.shtml 링크의 문서를 기반으로 진행한다. 오라클을 설치하고자 했던 사람이라면 모두 한번쯤은 봤을 문서.

1. 오라클 다운로드.
   - OTN에서 다운로드 받는다.
2. 압축해제.
   - gunzip lnx_9204_disk1.cpio.gz 하면 cpio 파일이 나온다.
   - cpio -idmv < lnx_9204_disk1.cpio 하면 Disk1 이란 디렉토리가 만들어진다.
   - 추후 오라클 계정을 만든후 이들 파일에 오라클 계정이 접근할수 있도록 소유권을 수정해 놓는다.
3. 메모리설정.
   - 문서상의 메모리설정은 참조.
   - 기본적으로
         echo `expr 1024 \* 1024 \* 1024` > /proc/sys/kernel/shmmax
      로 공유메모리 영역만을 늘려주었다.
4. 설치를 위한 패키지 확인.
   - 여러가지가 있지만 전체설치를 했을경우 나머지는 패스. 단 아래의 두가지 패키지가 없다.
         compat-oracle-rhel4-1.0-5.i386.rpm
         compat-libcwait-2.0-2.i386.rpm
   - 이것은 오라클 패치 p4198954_21_LINUX.zip 파일을 받아보면 안에 존재하는데 오라클 패치가 metalink에서 회원제로 운영되기때문에 (라이센스가 있는 회사의 코드를 회원가입시 요구) 구하기가 힘들것이다.
  - 2006/12/19 추가: http://oss.oracle.com/projects/compat-oracle/files/RedHat/에서 p4198954_21_LINUX.zip 자료를 받을수 있을것이다.
  - 위의 패키지가 없을경우 설치중 링크 에러 및 인스톨러가 돌아가지 않는다.
5. 계정설정.
   - 오라클 계정을 만든다.
6. 오라클 설치 디렉토리
   - 설치 디렉토리를 -p 옵션을 사용하여 만든다.(ex: mkdir -p /oracle)
   - 만들어진 디렉토리의 소유자를 위에서 만든 오라클 계정으로 한다.
7. 오라클 환경변수 설정.
   - 환경변수를  .bash_profile에 추가한다. 단 X-window상에서 인스톨러를 구동시키는데 이경우 환경변수 반영이 안된다. 따라서 source .bash_profile 를 실행하여 환경변수를 반영하도록 하자. 일반 터미널 환경에서는 환경변수가 제대로 반영되지만 실수를 줄이기 위해 항상 환경변수가 제대로 반영되었는지 확인하도록 한다. (ex: echo $ORACLE_HOME)
   - 환경변수의 내용은 위의 문서를 참조하자.
8. 오라클 계정으로 로그인
   - 이제 오라클 계정으로 X-window를 실행한다. 필자의 경우 원격에서 설치를 진행하여야 했기때문에 Xming이란 유틸리티를 사용하여 원격에서 X-Window로 접속후 작업을 진행 했다.
    - 압축을 풀어놓은 곳에서 ./runInstaller를 실행하여 GUI환경에서 설치를 진행한다.
9. 설치의 진행.
    - 이때부터 위의 문서와 내용이 틀려지는데 결국 오라클의 patch를 구하지 못해 그냥 GUI 환경에서 에러를 무시하고 설치를 진행하게 되었다. 하지만 운영상의 큰문제점은 없고 ems tool이 설치시 에러를 보고 한다.
    - 보통 리눅스 사용자라면 터미널에서의 작업이 많으므로 이는 무시하고 그대로 진행한다.
10. 설치 마무리 및 테스트.
    - 설치가 종료되면 GUI인스톨러는 맨 처음으로 돌아간다 여기에서 EXIT를 선택하여 설치를 마친다.
    - 설치가 제대로 되었는지 확인하기위해 오라클 데이터 베이스를 시작하고 멈춰 보도록 하자.
11. 오라클 데이터 베이스 시작과 종료.
    - 8 대 버젼과 다르게 프롬프트가 sqlplus로 통합되었다. 우선 시스템 계정으로 로그인 하자.
        sqlplus /nolog
        conn / as sysdba
    - startup 명령으로 오라클 데이터 베이스를 시작한다.
    - shutdown 명령으로 오라클 데이터 베이스를 종료한다.
12. 추가적인 작업.
    - 우선 사용자를 만들자 sqlplus에서 SQL문을 사용하여 사용자를 만들수 있다.
    - 리스너를 설정하여 외부에서 원격으로 데이터 베이스가 접속되는지 확인할수 있다.
       이를 위해서는 리스너에 관한 자료들을 참조하자. 하지만 기본적인 설정만으로도 대부분 잘 동작한다.

너무 간단하게 설명한듯 하지만 위의 링크에 상세한 내용이 있으므로 충분하다고 생각이된다.
간만에 삽질에 마음이 뿌듯....오라클 설치가 많이 쉬워지기는 했지만 여전히 시스템 관리자들에게는 너무 힘들지 않을까 하는 생각이 든다. (일반적인 접근성이 떨어진다는 뜻.....)
2006/11/16 14:54 2006/11/16 14:54