2014년 2월 1일 토요일

UBUNTU12.04 64bit에 오라클 11g R2설치

Ubuntu 12.04 64bit 에 오라클 11g R2 설치

일단 설치를 진행하기 전에 확실히 해야 할 것들이 있다.

1. 웬만하면 오라클설치가 지원되는 Linux 배포판을 사용하는게 정신건강에 좋다.
2. 절대 Production System으로서 Ubuntu/Oracle 콤보를 사용하지 말길 바란다.

자 확실히 했다면 이제 오라클 설치를 해보자.


================================================================================
1. 사전 작업들
================================================================================
  • 우분투 12.04 64bit 설치(모든 종류의 우분투계열 12.04 64bit 에 적용가능하다.)
  • 오라클홈페이지에서 Linux 64비트용 Oracle 받기


================================================================================
2. 우분투 설정 변경
================================================================================
  • Oracle 설치에 필요한 그룹 및 oracle 계정 생성
   1:  sudo groupadd oinstall
   2:  sudo groupadd dba
   3:  sudo mkdir -p /opt/oracle
   4:  sudo useradd -g oinstall -G dba  -d /opt/oracle -s /bin/bash oracle
   5:  sudo passwd oracle
   6:  sudo chown -R oracle:oinstall /opt/oracle
   7:  sudo echo "oracle ALL=(ALL) ALL" >> /etc/sudoers


  • 커널 파라미터 변경

/etc/sysctl.conf 의 맨 아래 부분에 다음의 내용을 추가한다.

   1:  #
   2:  # Oracle 11g
   3:  #
   4:  kernel.sem = 250 32000 100 128
   5:  kernel.shmall = 2097152
   6:  kernel.shmmni = 4096
   7:  # Replace kernel.shmmax with the half of your memory in bytes
   8:  # if lower than 4Go minus 1
   9:  # 1073741824 is 1 GigaBytes
  10:  kernel.shmmax=1073741824
  11:   
  12:  # Try sysctl -a | grep ip_local_port_range to get real values
  13:  net.ipv4.ip_local_port_range = 9000  65500
  14:   
  15:  net.core.rmem_default = 262144
  16:  net.core.rmem_max = 4194304
  17:  net.core.wmem_default = 262144
  18:  net.core.wmem_max = 1048576
  19:   
  20:  # Max value allowed, should be set to avoid IO errors
  21:  fs.aio-max-nr = 1048576
  22:  # 512 * PROCESSES / what really means processes ?
  23:  fs.file-max = 6815744 
  24:   
  25:  # To allow dba to allocate hugetlbfs pages
  26:  # 1001 is your oinstall group, id. grep oinstall /etc/group will give this value
  27:  vm.hugetlb_shm_group = 1001

여기서 주의할 점은 아까 추가한 oinstall 그룹의 그룹아이디가 1001 이 아닌 경우에 vm.hugetlb_shm_group의 값을 해당 그룹아이디로 수정 해 주어야 한다.

수정이 되었으면 아래의 명령을 실행하여 시스템에 반영한다.
   1:  sudo sysctl -p

이제 oracle 계정의 제한들을 수정한다.
/etc/security/limits.conf 맨 아래에 다음과 같은 내용을 추가한다.

   1:  # Oracle
   2:  oracle           soft    nproc   2047
   3:  oracle           hard    nproc   16384
   4:  oracle           soft    nofile  1024
   5:  oracle           hard    nofile  65536
   6:  oracle           soft    stack   10240

/etc/pam.d/login 파일에 아래와 같은 내용이 포함되어 있는지 확인한다. 없으면 추가한다.
   1:  session    required   pam_limits.so
/etc/profile의 맨 아래에 다음의 내용을 추가한다.
   1:  if [ $USER = "oracle" ]; then
   2:          if [ $SHELL = "/bin/ksh" ]; then
   3:                ulimit -p 16384
   4:                ulimit -n 65536
   5:          else
   6:                ulimit -u 16384 -n 65536
   7:          fi
   8:  fi 


================================================================================
3. 필요 패키지 추가
================================================================================

아래 명령을 실행하여 패키지들을 최신의 상태로 만든다.
   1:  sudo apt-get update
   2:  sudo apt-get dist-upgrade

아래 명령을 실행하여 필요한 패키지들을 설치 한다.
   1:  sudo apt-get install alien autoconf automake autotools-dev binutils bzip2 doxygen elfutils expat gawk gcc gcc-multilib g++-multilib ia32-libs ksh less lesstif2 lesstif2-dev lib32z1 libaio1 libaio-dev libc6-dev libc6-dev-i386 libc6-i386 libelf-dev libltdl-dev libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 libpth-dev libpthread-stubs0 libpthread-stubs0-dev libstdc++5 lsb-cxx make openssh-server pdksh rlwrap rpm sysstat unixodbc unixodbc-dev unzip x11-utils zlibc build-essential

아래 명령들을 실행하여 필요 패키지를 설치한다.
   1:  mkdir /tmp/libstdc++5
   2:  cd /tmp/libstdc++5
   3:  wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_i386.deb
   4:  wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.3/libstdc++5-3.3-pic_3.3.6-8ubuntu1_amd64.deb
   5:  sudo dpkg --force-architecture -i libstdc++5_3.3.6-17ubuntu1_i386.deb
   6:  sudo mv /usr/lib/libstdc++.so.5* /usr/lib32/
   7:  sudo dpkg -i libstdc++5-3.3-pic_3.3.6-8ubuntu1_amd64.deb

Oracle을 설치하려면 XWindow가 필요하기 때문에 Ubuntu Server의 경우 아래의 명령을 실행하여 gnome을 설치한다.
   1:  sudo apt-get install ubuntu-desktop

모두 설치되었으면 재부팅을 한다.



================================================================================
4. 설치시 오류에 대한 대비
================================================================================

아래의 명령들을 실행해 준다.
   1:  sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
   2:  sudo ln -sf /bin/bash /bin/sh
   3:  sudo ln -s /usr/bin/awk /bin/awk
   4:  sudo ln -s /usr/bin/rpm /bin/rpm 
   5:  sudo ln -s /usr/bin/basename /bin/basename
   6:  sudo ln -s /lib/x86_64-linux-gnu/libgcc_s.so.1 /lib64/.
아래의 명령들을 실행 해 준다.
   1:  su - oracle
   2:  cd
   3:  touch oraerr.sh
   4:  chmod +x oraerr.sh
/opt/oracle/oraerr.sh 에 아래와 같은 내용을 넣어준다.
   1:  sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
   2:  sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk
   3:  sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk
   4:  sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/bin/genorasdksh
   5:  sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk

아래 명령을 실행해 실행가능한 파일로 만든다.
   1:  chmod +x oraerr.sh

아래 명령을 실행해 준다.
   1:  touch .bashrc
   2:  ln -s .bashrc .bash_profile

/opt/oracle/.bashrc 파일에 다음과 같은 내용을 넣어준다.

   1:  # set file creation mask
   2:  umask 022
   3:   
   4:  # setting up oracle environment variables
   5:  ORACLE_BASE=/opt/oracle/oracle11g
   6:  ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
   7:  LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
   8:  PATH=$ORACLE_HOME/bin:$PATH
   9:  export ORACLE_BASE ORACLE_HOME LD_LIBRARY_PATH PATH

아래 명령을 실행해 oracle 환경변수를 지정해 준다.

   1:  cd
   2:  . .bashrc



================================================================================
6. Oracle 설치
================================================================================

자, 이제 본격적으로 오라클 설치를 진행해 보자.
oracle 계정으로 로그인하고, 터미널을 하나 연다.

미리 받아놓은 오라클 설치파일의 압축을 풀어준다.

   1:  unzip linux.x64_11gR2_database_1of2.zip
   2:  unzip linux.x64_11gR2_database_2of2.zip
아래의 명령들을 실행하여 oracle 설치를 시작한다.
   1:  cd /opt/oracle/database/
   2:  export LANG=C
   3:  ./runInstaller

설치 중간에 필요한 라이브러리들을 못찾는다고 불평을 하지만, “ignore all” 을 체크하고 넘어간다.

설치시 오류가 발생한다. 원래 날 수 밖에 없는 것이니 겁먹지 말고, 설치화면은 그대로 두고,
터미널을 하나 열어 아래의 명령을 실행한다.
   1:  cd
   2:  ./oraerr.sh

그렇다 아까 만들어놓은 스크립트를 실행하는 것이다. 실행이 끝났으면 다시 설치화면으로 돌아와서,
그 오류 화면에서 “retry”를 눌러준다.
그러면 나머지 모든 설치과정이 아무 문제없이 진행될 것이다.



================================================================================
7. 결론.
================================================================================

굳이 이렇게 설치할 필요가 있을까?
하지만, 우분투를 쓰고 있으면서 오라클도 쓰고 싶다면 머, 그냥 이렇게라도 설치를 해야 하겠지..
그래도 되도록이면 지원되는 리눅스 배포판을 사용하는 것이 정신건강에 좋다.

추가로 참고 URL  http://ioriy2k.pe.kr/archives/656

http://dimpl.tistory.com/8 에서 퍼왔습니다.

댓글 없음:

댓글 쓰기