OEL5에 Oracle11g 설치(Silent mode)

1. 설치과정 전체요약

OEL5 설치->오라클 11g 다운로드 -> 오라클 환경설정 및 응답파일 설정 -> 오라클 설치 -> DB 생성

2. OEL5 설치
여기서는 리눅스의 설치는 생략한다. 다만 오라클을 /app 에 설치할 예정이
므로 파티션 분할 시 /app 디렉토리에 충분한 용량(10g 이상)을 할당하도록 한다. 또한 패키지 설치 시 개발도구에 모든 옵션을 체크해서 설치하도록 한다.

3. 오라클 11g 다운로드
오라클 및 관련 파일들은 설치CD, 공식사이트 및 구글 검색을 통해서 구할 수 있다. 필요파일은 다음과 같다.

  가. 오라클 11g
  나. 관련 라이브러리(아래 관련 rpm 패키지들은 모두 설치 CD에 포함되어 있다. 상위 버전도 무관)
        – binutils-2.15.92.0.2
        – compat-libstdc++-33-3.2.3
        – compat-libstdc++-33-3.2.3 (32 bit)
        – elfutils-libelf-0.97
        – elfutils-libelf-devel-0.97
        – expat-1.95.7
        – gcc-3.4.6
        – gcc-c++-3.4.6
        – glibc-2.3.4-2.41
        – glibc-2.3.4-2.41 (32 bit)
        – glibc-common-2.3.4
        – glibc-devel-2.3.4
        – glibc-headers-2.3.4
        – libaio-0.3.105
        – libaio-0.3.105 (32 bit)
        – libaio-devel-0.3.105
        – libaio-devel-0.3.105 (32 bit)
        – libgcc-3.4.6
        – libgcc-3.4.6 (32-bit)
        – libstdc++-3.4.6
        – libstdc++-3.4.6 (32 bit)
        – libstdc++-devel 3.4.6
        – make-3.80
        – numactl-0.6.4.x86_64
        – pdksh-5.2.14
        – sysstat-5.0.5

4. 오라클 환경설정

위 파일들을 아래와 같은 경로에 복사 후 작업하도록 한다.
설치파일 및 관련 라이브러리 경로 : /app

# groupadd -g 5000 dba
# groupadd -g 5001 oinstall
# groupadd -g 5002 oper
# useradd -g oinstall -G dba,oper oracle
# passwd oracle

그룹 및 계정 생성

# vi /etc/profile

# No core files by default
ulimit -S -c unlimited > /dev/null 2>&1

위 처럼 수정

# vi /etc/security/limits.conf

oracle    soft    nproc    2047
oracle    hard    nproc    16384
oracle    soft    nofile    1024
oracle    hard    nofile    65536
oracle    soft    stack    10240

오라클 계정 메모리 사용량 제한

# vi /etc/sysctl.conf

fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

위 처럼 커널 파라미터 수정(일부 내용은 중복된 것이 있으니 잘 살펴보고 기존 것은 주석처리 하도록 한다)

# sysctl -p
커널 파라미터 적용

# vi /home/oracle/.bash_profile

export EDITOR=vi
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11g
export ORACLE_SID=testdb
export LANG=C
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

oracle 계정 환경변수 설정(파일 마지막에 추가)

# vi /etc/pam.d/login

session    required     pam_limits.so

사용자 인증에 관한 부분 설정

# cd /app
# rpm -Uvh libaio-devel-0.3.106-5.i386.rpm
# rpm -Uvh numactl-devel-0.9.8-11.0.1.el5.i386.rpm
# rpm -Uvh sysstat-7.0.2-3.el5_5.1.i386.rpm
# rpm -Uvh unixODBC-2.2.11-7.1.i386.rpm
# rpm -Uvh unixODBC-devel-2.2.11-7.1.i386.rpm

rpm -qa 명령어로 추가 설치가 필요한 관련 라이브러리 설치
위 라이브러리는 모두 설치 CD에 포함되어 있음(아래 파일에 별도 압축, 필요시 다운)
1545017135.zip

# cd /app
# unzip p10098816_112020_LINUX_1of7.zip \
&& unzip p10098816_112020_LINUX_2of7.zip \
&& unzip p10098816_112020_LINUX_3of7.zip \
&& unzip p10098816_112020_LINUX_4of7.zip \
&& unzip p10098816_112020_LINUX_5of7.zip \
&& unzip p10098816_112020_LINUX_6of7.zip \
&& unzip p10098816_112020_LINUX_7of7.zip
# chown -R oracle.dba /home/oracle /app

설치 프로그램 압축 풀기 및 소유권 변경

# vi /etc/oraInst.loc

inventory_loc=/app/oraInventory
inst_group=oinstall

oraInventory 위치 및 그룹지정

# chown oracle.dba /etc/oraInst.loc

소유권 변경

# vi /app/database/response/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/app/oraInventory
SELECTED_LANGUAGES=en,ko
ORACLE_HOME=/app/oracle/product/11g
ORACLE_BASE=/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=true
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.2.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES

응답파일을 위와 같이 설정

5. 오라클 설치
콘솔에서 oracle 계정으로 접속한다.(X Windows 환경으로 접속)

주의사항
: Oracle Universal Installer(OUI)는 silent mode로 설치를 수행하더라도 내부적으로는 X
Window Connection이 필요하다. 따라서 원격에서 ssh 접속하여 오라클 설치 시 아래와 같은 추가 설정이 필요하다.

콘솔에서 오라클 계정으로 접속 후 아래 명령어 입력(X windows 환경으로 로그인)
$ xhost +

원격 접속 클라이언트에서 아래 명령어 입력(putty 등으로 로그인)
$ export DISPLAY=:0.0

$ cd /app/database/
$ ./runInstaller -silent -force -waitforcompletion -responseFile
/app/database/response/db_install.rsp

root 권한으로 아래 명령어를 실행시켜 준다.
#
/app/oracle/product/11g/root.sh

$ sqlplus / as sysdba
오라클이 정상적으로 설치되었는지 확인한다.


6. DB 생성
콘솔에서 오라클 계정으로 접속 후 작업한다.(X windows 환경)

$ vi /app/database/response/dbca.rsp

GDBNAME = “testdb”
SID = “testdb”
SYSPASSWORD = “oracle”
SYSTEMPASSWORD = “oracle”
CHARACTERSET = “KO16MSWIN949”
NATIONALCHARACTERSET= “UTF8”

자신의 상황에 맞게 응답 파일을 설정한다.

$  dbca -silent -responseFile /app/database/response/dbca.rsp

$ sqlplus / as sysdba
SQL > select status from v$instance;
“OPEN”이라는 상태가 보이면 정상적으로 DB가 생성된 것이다.

You may also like...

2 Responses

  1. 말해보세요:

    오라클설치할때 오류가나요 어떻게 해결해요?
    CAUSE: Some of the optional prerequisites are not met. See logs for details. /app/oraInventory/logs/installActions2012-07-27_11-35-34AM.log
    ACTION: Identify the list of failed prerequisite checks from the log: /app/oraInventory/logs/installActions2012-07-27_11-35-34AM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
    You can find the log of this install session at:
    /app/oraInventory/logs/installActions2012-07-27_11-35-34AM.log

    이런오류가납니다 도와주세요 ㅠㅠㅠ

    • 주인장 말해보세요:

      안녕하세요.
      답변이 늦었습니다. 아마도 해결하셨을 것이라 생각됩니다만, 그래도 답변을 달자면 다음과 같습니다.

      보내주신 오류는 오라클 설치 시 만족해야할 환경설정을 만족하지 못해서 나오는 것으로 판단됩니다.

      설치로그에서 만족하지 못하는 부분을 살펴보고, 오라클에서 요구하는 조건(메모리 크기, 커널 파라미터 등)을 만족시키고 다시 설치하시면 되겠습니다.

      만일 테스트 목적이고, 통과하지 못지 못하는 부분이 메모리라면 사용자 확인에 체크하고 설치를 그대로 진행하셔도 무관합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다