리눅스(CentOS5)에서 Oracle 11g Software 설치

참조 : http://ganiz.tistory.com/549

소개

이 문서는 오라클 11g(11.1)을 리눅스(CentOS-5)에 설치하는 방법을 살펴봅니다. CentOS 에 관해서는 http://www.centos.org/ 를 참조하세요. CentOS 의 규모와 품질에 대해 확신을 갖게 될 겁니다. 이 문서는 오라클의 [리눅스 x86 을 위한 빠른 설치 가이드<Quick Installation Guide for Linux x86>]을 사용합니다. 추가적인  정보를 얻을 수는 없지만, 오라클을 가능한 빨리 설치할 수 있습니다. 우리는 thecheapdba.com 에서 오라클7부터 시작하여 오라클 설치에 관한 다년간의 경험을 쌓았습니다. 당신이 뛰어난 성능을 지닌 신뢰할 수 있는 데이터베이스를 설치할 수 있는 가장 좋은 사례를 짚어보겠습니다. 우리는때때로 이 문서를 다시 확인하고, 편집하고, 더 좋은 사례를 발견하면 추가적인 포스트를 작성하겠습니다.

이 문서는 CentOS-5의 설치에 관해서는 다루지 않고 있습니다. 이에 관한 정보는 CentOS 웹 사이트 혹은 다른 리눅스 안내서들에서 얻을 수 있습니다. 우리는 어찌됐건 오라클이 설치될 수 있는 리눅스 환경이 설치되어 있다고 가정합니다.

우리의 목표는 오라클 설치 가이드를 처음부터 끝까지 읽지 않고도 오라클 11g 를 제대로 설치할 수 있는 방법을 단계별로 제공하는 것입니다. 우리는 그저 복사-붙여넣기만 해도 되는 명령어를 해당 결과와 함께 제공할 것입니다. 혹시 당신의 결과가 이 문서에서 제공하는 것과 다른 점이 발견된다면, 이전단계로 돌아가서 뭔가 잘못하진 않았는지 확인해 보면 됩니다.

이 문서는 오라클 설치 소프트웨어가 X윈도우 시스템에서 실행되고 있다고 가정합니다. 혹시 도움이 필요하시면 X 서버 문서를 읽어보세요. 우리는thecheapdba.com 에서 일반적으로 리눅스와의 인터페이스에 Cygwin(http://www.cygwin.com/)을 사용합니다. Cygwin 은 X윈도우 시스템을 가지고 있고,무엇보다도 무료입니다.

하드웨어 요구사항 점검

루트 사용자로 CentOS  로그인합니다.

오라클을 시스템에 설치하기 전에 루트 권한으로만 접근할 수 있는 몇몇 제반 사항이 있습니다. 루트 사용자로 로그인하세요. 이 문서에서다른 사용자로 전환할 때를 알려드리겠습니다.

메모리 용량

명령: grep -i memtotal /proc/meminfo

결과: 적어도 1GB는 되어야 합니다.

스왑 용량

명령: grep -i swaptotal /proc/meminfo

결과: memtotal이 2GB 보다 적다면 적어도 1.5 이상이어야 합니다.

         Memtotal 이 2~8GB 사이라면 memtotal 과 같은 값이어야 합니다.

         Memtotal 이 8Gb 이상이라면 .75 를 곱한 값 이상이어야 합니다.

프로세서 타입

명령: grep “model name” /proc/cpuinfo

결과: informational

가용 메모리와 스왑

명령: free

결과: informational

공유 메모리 가용량

명령: df -k /dev/shm

결과: informational

목적: 공유 메모리는 적어도 컴퓨터에서 실행되고 있는 각 오라클 인스턴스의 MEMORY_MAX_TARGET 과 MEMORY_TARGET 보다는 많아야 합니다.

/tmp  디스크 공간

명령: df -k /tmp

결과: should have at least 400MB available

오라클 바이너리를 위한 디스크 공간

명령: df -k

결과: 설치 방식에 따라 1.5GB 에서 3.5GB 정도의 공간을 필요로 합니다.

소프트웨어 요구사항 점검

설치된 리눅스의 버전

명령: cat /proc/version

결과: Linux version 2.6.18-8.1.15.el5 (mockbuild@builder6.centos.org)

         (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52))

         #1 SMP Mon Oct 22 08:32:04 EDT 2007

설치된 커널의 버전

명령: uname -r

결과: 2.6.18-8.1.15.el5

이하의 패키지들이 설치되어 있는지 여부 (CentOS-5 배포판 이상일 경우)

명령:rpm -q binutils \

            compat-libstdc++ \

            elfutils-libelf \

            elfutils-libelf-devel \

            glibc \

            glibc-common \

            glibc-devel \

            glibc-headers \

            gcc \

            gcc-c++ \

            libaio-devel \

            libaio \

            libgcc \

            libstdc++ \

            libstdc++ \

            make \

            sysstat \

            unixODBC \

            unixODBC-devel

결과: 일반적인 설치의 경우 몇몇 패키지들이 설치되어 있지 않은 것을 발견할 수도 있습니다. 아래의 명령어를 통해 빠진 패키지들을 조사할 수 있습니다. 물론 필요하다면 목록에 패키지를 추가하거나 삭제하는 것도 가능합니다.

yum list available “compat*” \

                   “elfutils*” \

                   “glibc*” \

                   “gcc*” \

                   “libaio*” \

                   “sysstat*” \

                   “unixODBC*”

동작 : 기본 설치에서 빠진 부분들은 아래의 명령어를 통해 설치할 수 있습니다.

yum -y install compat-libstdc++-296.i386 \

               compat-libstdc++-33.i386 \

               elfutils-libelf-devel.i386 \

               glibc-devel.i386 \

               glibc-headers.i386 \

               gcc.i386 \

               gcc-c++.i386 \

               libaio-devel.i386 \

               sysstat.i386 \

               unixODBC.i386 \

               unixODBC-devel.i386

오라클 사용자와 그룹 생성

Oinstall  dba그룹 만들기

명령: /usr/sbin/groupadd oinstall

         /usr/sbin/groupadd dba

오라클 사용자 만들고 암호 변경하기

명령: /usr/sbin/useradd -g oinstall -G dba -s /bin/bash oracle

         /usr/bin/passwd oracle

Nobody 사용자가 존재하는지 검사하기

명령: /usr/bin/id nobody

결과: 이 사용자는 대부분의 경우 CentOS 설치시에 자동으로 만들어집니다.

동작 : 만약 해당 사용자가 없을 경우 아래의 명령을 통해 사용자를 추가합니다.

         /usr/sbin/useradd nobody

커널 매개변수  설정

다음의 커널 매개변수들은 검증이 필요하며, 변경이 가능합니다. 아래에 제시된 명령을 이용하여 특정한 커널 세팅을 볼 수 있으며, 만일해당 설정이 아래 표에 제시된 권장 사항보다 낮게 설정되어 있다면 변경할 수 있습니다.

/etc/sysctl.conf 파일을 변경하고 서버를 재시동하는 것으로 설정을 변경할 수 있습니다. 아래의 결과들은 우리의 서버에서 확인한 것들이므로 당신의 설정과 같지 않을 수도 있습니다.

shmmni

4096

shmall

2097152

shmmax

2147483648

semmsl

250

semmns

32000

semopm

100

semmni

128

file-max

65536

ip_local_port_range

1024 – 65000

rmem_default

1048576

rmem_max

1048576

wmem_default

262144

wmem_max

262144

명령: /sbin/sysctl -a | grep kernel.sem

결과: kernel.sem = 250        32000   100     128

명령: /sbin/sysctl -a | grep kernel.shm

결과: kernel.shmmni = 4096

         kernel.shmall = 268435456

         kernel.shmmax = 4294967295

명령: /sbin/sysctl -a | grep file-max

결과: fs.file-max = 102440

명령: /sbin/sysctl -a | grep ip_local_port_range

결과: net.ipv4.ip_local_port_range = 32768    61000

명령: /sbin/sysctl -a | grep rmem_default

결과: net.core.rmem_default = 109568

명령: /sbin/sysctl -a | grep rmem_max

결과: net.core.rmem_max = 131071

명령: /sbin/sysctl -a | grep wmem_default

결과: net.core.wmem_default = 109568

명령: /sbin/sysctl -a | grep wmem_max

결과: net.core.wmem_max = 131071

아래는 예제 /etc/sysctl.conf 파일입니다. 이것은 단지 예제용이며, 이 것을 /sbin/sysctl 명령에 반영해서는 안됩니다. 반드시 필요하다고 생각되는 줄 만을 추가하고, 어떤 값도 기본 설정에서 지정한 것보다 낮게 변경해서는 안됩니다.

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 65536

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 = 262144

오라클 사용자의  제한 설정

아래의 내용을 /etc/security/limits.conf  추가합니다.

oracle soft nproc  2047

oracle hard nproc  16384

oracle soft nofile 1024

oracle hard nofile 65536

아래의 내용을 /etc/pam.d/login  추가합니다.

session required /lib/security/pam_limits.so

session required pam_limits.so

아래의 내용을 /etc/profile  추가합니다.

if [ $USER = “oracle” ]; then

  if [ $SHELL = “/bin/ksh” ]; then

    ulimit -p 16384

    ulimit -n 65536

  else

    ulimit -u 16384 -n 65536

  fi

fi

오라클 소프트웨어를 설치할 디렉토리 생성

충분한 디스크 공간을 가지고 있는지 확인하고 설치할 디렉토리를 선택합니다.

명령: df -k

결과: 충분한 공간을 가진 마운트 지점을 고릅니다. 우리는 /opt 를 골랐다고 가정하겠습니다.

하위 디렉토리를 생성하고 오라클 사용자를 위한 권한을 설정합니다.

아래의 디렉토리는 오라클 설치에 공통적으로 사용됩니다. 우리는 /opt 에 모든 디렉토리를 생성했고, 해당하는 경로나 혹은 그 하위 경로를 사용하는 다른 어플리케이션은 없는 상태입니다. 이것은 아래의 명령어들로 권한을 변경하려고 할 때 굉장히 중요한 사항입니다.

명령: mkdir -p /opt/app/oracle/product/11.1.0

         chown -R oracle:oinstall /opt/app

         chmod -R 775 /opt/app

오라클 유저로 변경

이제 루트 사용자로 할 일은 모두 마쳤습니다. 오라클 사용자로 변경해서 실제로 오라클을 설치해야 할 시간입니다.

명령: su – oracle

아래의 내용을 $HOME/.bash_profile  추가합니다.

umask 022

 

 

 설정을 반영하기 위해 오라클의 bash_profile  실행합니다.

명령: . ./.bash_profile

오라클 사용자가 X 윈도우 시스템을 사용할  있는지 확인합니다.

우리는 이 문서의 초입에서 말했듯이 당신이 X윈도우 시스템을 어떻게 설치하는지 알고 있다고 가정합니다. Xterm 명령이 동작하는지, X터미널이 올라오는지 확인해 주세요. 원한다면 X 터미널은 닫아도 상관 없습니다.

설치를 위해 오라클 환경을 설정합니다.

다음 명령어들을 통해 설치 전 준비단계에서 오라클의 환경을 설정/해제할 수 있습니다.

명령: export ORACLE_BASE=/opt/app/oracle

         export ORACLE_SID=orcl

         unset  ORACLE_HOME

         unset  TNS_ADMIN

오라클 설치 프로그램을 시작합니다.

이 문서는 당신이 오라클 소프트웨어를 네트워크를 통해 다운 받고 압축을 풀었다고 가정합니다. 우리는 /opt 에 압축을 풀었습니다. 아래의 명령은 해당 마운트 지점에서 오라클 설치 프로그램을 시작할 수 있게 해 줍니다.

명령: cd /opt/database

         ./runInstaller

이 지점에서, 오라클은 아마 몇가지 운영체제에 관한 소소한 체크를 하고 오라클 설치 화면을 띄울 것입니다. 우리의 특별한 설정은 이시점에서 별다른 오류를 내뱉지 않을 것입니다. 하지만 간혹 뭔가 나타날 수도 있는데, 도움이 될 수도 있는 말을 첨언하자면, 때때로 오라클 설치 프로그램은 많은 리눅스 시스템의 초기 설정에 대해 불평을 한다는 것입니다. 만약 이런 경우가 생긴다면 설치 프로그램을 시작할 때 추가적인 설정을 주는 것으로 이 문제를 회피할 수 있습니다. 이 방법은 되도록 마지막 수단으로 사용해 주세요.

명령: ./runInstaller -ignoreSysPrereqs

이 지점에서부터 우리는 한 번에 하나씩 오라클의 전체 설치에 관한 내용을 결정하는 질문들을 만나게 됩니다.

설치 방식 선택

이 화면은 ‘적어도’ 라는 말을 마구잡이로 뱉어내고 있습니다. 우리는 이 단계에서 어떤 데이터베이스도 만들지 않을 겁니다. 권장사항이긴 하지만, 전혀 필요가 없으니까요. 우리는 데이터베이스 구획을 만드는데 데이터베이스 생성 보조도구(DBCA – Database Create Assistant)를 사용하는게 더 좋고, 설치 과정을 혼란스럽게 하고 싶지 않으니까요.

1.    기본 설치를 선택합니다.

1.    Oracle Base 가 ‘/opt/app/oracle’인지 검사

2.    Oracle Home 이 ‘/opt/app/oracle/product/11.1.0/db_1’ 인지 검사

3.    설치 타입이 ‘Enterprise Edition’인지 검사

4.    dba그룹이 ‘dba’인지 검사

2.    Create Starter Database” 체크 해제

3.    Advanced Installation” 체크 해제

4.    <NEXT> 클릭

인벤토리  자격증명 디렉토리 지정

1.    이벤토리 디렉토리 경로가 ‘/opt/app/oraInventory’ 인지 검사

2.    설치 그룹명이 ‘oinstall’인지 검사

3.    <NEXT> 클릭

제품별 점검

이 화면에서, 설치 프로그램은 시스템 환경을 검사하고 발견한 문제들을 보고합니다. 별 문제가 없다면 모든 항목에서 ‘Succeeded’ 상태를 받을 겁니다. 스크롤하면서 무엇이 잘못되지는 않았는지를 확인하고, 화면 아래의 상태바에 아래 메시지가 나오는지 확인합니다.

‘Check complete. The overall result of this check is: Passed’

1.    모든 상태를 확인

2.    <NEXT> 클릭

요약

이 화면은 수행될 설치과정의 개요를 보여줍니다. 항목들을 클릭해서 어떤 제품의 어떤 버전이 설치되는지 확인해 보는 것도 흥미로운 일이 될 수 있을 겁니다.

1.    ‘Global Settings’ 를 확인합니다.

2.    ‘Space Requirements’를 확인합니다.

3.    <NEXT> 클릭.

설치

이 화면은 무엇이 설치되고 있는지 상태를 알려줍니다.  모든 시스템 설정이 적절하게 되어 있고 모든 패키지가 제대로 설치되어 있다면아무런 오류 없이 처리가 완료됩니다. 상태바는 어떤 것이 설치되고 있는지 개략적으로 알려줍니다. 하지만 어떤 상태바를 보더라도 진짜로 얼마나 오래 걸릴 지는 알 수가 없습니다.

1.    특정 제품이 설치되는 시간을 살펴보세요. 만약 너무 오랜 시간이 걸린다면(10분 이상) 설치 전 과정에서 패치를 해야 할 수도있습니다. 설치 프로그램을 중단하지는 마시고, 오라클 설치, 혹은 실제 설치되고 있는 제품의 버그나 패치가 필요한지 살펴보세요.

2.    환경 설정 스크립트를 실행합니다.

1.    터미널 창을 하나 더 엽니다.

2.    루트 사용자로 로그인합니다.

3.    /opt/app/oraInventory/orainstRoot.sh 를 실행합니다.

4.    /opt/app/oracle/product/11.1.0/db_1/root.sh 를 실행합니다.

1.    기본값인 /usr/local/bin 를 수락합니다.

5.    <OK> 클릭

3.    <EXIT> 클릭

4.    <YES> 클릭

정리

1.    만약 오라클 소프트웨어를 네트워크에서 내려받았다면 이제 .zip 파일과 압축을 풀어놓은 디렉토리들을 삭제해도 됩니다. 해당명령어는 여기 적지 않겠습니다. 혹시라도 잘못된 디렉토리에서 실행했다간 비참한 결과를 보게 될 테니까요.

2.    아래의 내용을 $HOME/.bash_profile 파일에 추가합니다. 이 작업은 오라클 바이너리가 데이터베이스를 생성하거나 네트워크를설정하거나 일반적인 오라클 환경을 관리할 수 있도록 합니다.

export ORACLE_HOME=/opt/app/oracle/product/11.1.0/db_1

export PATH=$ORACLE_HOME/bin:$PATH