Oracle 11gR2 Silent Install on RHEL5

Setup

설치에 필요한 파일

  • Oracle 11gR2 (11.2.0.1) 설치 파일 (/app)
    • linux_11gR2_database_1of2.zip
    • linux_11gR2_database_2of2.zip

그룹, 사용자 생성

groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
passwd oracle

SELINUX 확인

vi /etc/selinux/config

SELINUX=permissive # 또는 disable로 수정

Oracle 11gR2 압축 해제

mkdir -p /app/oracle
cd /app
unzip linux_11gR2_database_1of2.zip && unzip linux_11gR2_database_2of2.zip
chown -R oracle.oinstall /app

필수 패키지 권장사항 확인

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}(%{ARCH})\n' binutils \
compat-libstdc++ \
elfutils-libelf \
elfutils-libelf-devel \
elfutils-libelf-devel-static \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
kernel-headers \
libgomp \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
numactl-devel \
sysstat \
unixODBC \
unixODBC-devel
binutils-2.17.50.0.6-26.el5(i386)
package compat-libstdc++ is not installed
elfutils-libelf-0.137-3.el5(i386)
elfutils-libelf-devel-0.137-3.el5(i386)
elfutils-libelf-devel-static-0.137-3.el5(i386)
gcc-4.1.2-55.el5(i386)
gcc-c++-4.1.2-55.el5(i386)
glibc-2.5-123(i686)
glibc-common-2.5-123(i386)
glibc-devel-2.5-123(i386)
glibc-headers-2.5-123(i386)
ksh-20100621-20.el5(i386)
kernel-headers-2.6.18-398.el5(i386)
libgomp-4.4.7-1.el5(i386)
libaio-0.3.106-5(i386)
package libaio-devel is not installed
libgcc-4.1.2-55.el5(i386)
libstdc++-4.1.2-55.el5(i386)
libstdc++-devel-4.1.2-55.el5(i386)
make-3.81-3.el5(i386)
package numactl-devel is not installed
package sysstat is not installed
package unixODBC is not installed
package unixODBC-devel is not installed

확인 결과 compat-libstdc++, libaio-devel, numactl-devel, sysstat, unixODBC, unixODBC-devel 패키지가 설치되어 있지 않다.

cd /media/RHEL_5.11\ i386\ DVD/Server/

rpm -Uvh compat-libstdc++-*.rpm;rpm -Uvh libaio-devel-*.rpm;rpm -Uvh numactl-devel-*.rpm;rpm -Uvh sysstat-*.rpm;rpm -Uvh unixODBC-*.rpm --nodeps

Kernel Parameters 설정

# 해당 값이 없을 경우에는 생략.

vi /etc/profile

ulimit -S -c 0 > /dev/null 2 > &1

# 0을 unlimited로 변경

ulimit -S -c unlimited > /dev/null 2 > &1
vi /etc/sysctl.conf

# 아래 내용 추가
# 기본 값이지만, 시스템 상황에 따라 다른 설정 필요.
kernel.core_uses_pid = 1
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 /etc/security/limits.conf

# 아래 내용 추가
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 4096
oracle hard nofile 65536
oracle soft stack 10240
vi /etc/pam.d/login

# 아래 내용 추가
session    required     pam_limits.so

.bash_profile 파일 설정

  • Oracle11gR2부터는 Oracle Engine과 Oracle Database를 같은 장소에 설치하는 것을 권장하지 않는다.
  • Oracle11gR2부터는 Oracle 홈 디렉터리를 사용자 계정의 홈 디렉터리로 지정하는 것을 권장하지 않는다. 따라서 기존의 /home/oracle에 설치하는 것이 아닌 /app/oracle에 설치.
vi /home/oracle/.bash_profile

# 아래 내용 추가
export EDITOR=vi
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=testdb
export LANG=C
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORA_NLS10=$ORACLE_HOME/nls/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
# 변경 사항 적용
source /home/oracle/.bash_profile

/etc/hosts 파일 수정

127.0.0.1 localhost.localdomain localhost
192.168.0.60 rhel5.localdomain rhel5

Oracle 11gR2 (11.2.0.1) Installation

orainst.loc 파일 생성

vi /etc/oraInst.loc

# 아래 내용 추가
inventory_loc=/app/oraInventory
inst_group=oinstall
# 권한 변경
chown -R oracle.oinstall /app
chown oracle.oinstall /etc/oraInst.loc

response 파일 수정

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/11.2.0
ORACLE_BASE=/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=true
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0  # 여기서는 partitioning만 남기고 삭제
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.installExampleSchemas=true

11.2.0.1 설치

su - oracle
cd /app/database
./runInstaller -silent -responseFile /app/database/response/db_install.rsp
The installation of Oracle Database 11g was successful.
Please check '/app/oraInventory/logs/silentInstall2015-12-06_08-41-24AM.log' for more details.

As a root user, execute the following script(s):
        1. /app/oracle/product/11.2.0/root.sh

터미널을 새로 열어 root로 로그인 후 스크립트 실행.

su -
/app/oracle/product/11g/root.sh
Check /app/oracle/product/11.2.0/install/root_rhel5.localdomain_2015-12-06_08-56-37.log for the output of root script

설치 확인: $ sqlplus / as sysdba로 버전(11.2.0.1) 확인.

Create Database

response 파일 수정

su - oracle
vi /app/database/response/dbca.rsp

# 아래 내용 찾아서 수정
GDBNAME = "testdb"
SID = "testdb"
SYSPASSWORD = "oracle" (주석 해제)
SYSTEMPASSWORD = "oracle" (주석 해제)
CHARACTERSET = "AL32UTF8" (주석 해제)
NATIONALCHARACTERSET= "UTF8" (주석 해제)
SAMPLESCHEMA=TRUE (주석 해제)

데이터베이스 생성

cd $ORACLE_HOME/bin
dbca -silent -responseFile /app/database/response/dbca.rsp
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/app/oracle/cfgtoollogs/dbca/testdb/testdb.log" for further details.
sqlplus / as sysdba
select status from v$instance;
STATUS
------------
OPEN

STATUS가 OPEN 상태이면 정상.

Listener 설정

Listener 생성

cd $ORACLE_HOME/bin
./netca -silent -responseFile /app/database/response/netca.rsp

Listener 확인

lsnrctl status

Service가 로딩되면 정상이다.

정상적으로 작동되지 않는다면 아래의 절차를 따른다.

  1. /etc/hosts의 IP와 HOSTNAME을 확인한다.
  2. listener.ora 파일의 HOSTNAME 부분을 IP로 변경한다.
  3. listener reload 후, listener status 로 다시 확인한다.