본문 바로가기
일하는 중에

Oracle 10g Installation on Cent OS

by likebnb 2010. 6. 1.

하드웨어와 운영체제 플랫폼이 이젠 거의 64비트로 전환된 듯 하다.
요 며칠 새로운 프로젝트에 사용할 데이터베이스 서버를 구축하면서 간단하게 그 과정을 요약 정리해봤다.


0. 준비물
oracle_database_10gR2, Cent OS 5.x

1. 리눅스 설치 후 패키지 추가 설치
gcc-3.2.2-38
make-3.79.1-407
binutils-2.12.90.0.15-50
openmotif-2.2.2-124
libaio-0.3.105-2



* 해당 패키지가 없는 경우 설치 방법(기본적으로 yum 유틸리티를 사용할 수 있다는 전제 필요)
yum install openmotif
yum install libaio



2. 오라클을 위한 계정과 그룹 생성
groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
id oracle
passwd oracle



3. 디렉토리의 생성
mkdir -p /opt/oracle
mkdir -p /opt/oradata
chown -R oracle:oinstall /opt/oracle /opt/oradata
chmod -R 775 /opt/oracle /opt/oradata



4. 리눅스 커널 매개변수의 설정
cat /etc/sysctl.conf
# 커널 버전 2.6.18 이상 부터는 아래 두 줄 주석 처리
#kernel.shmall = 2097152
#kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
# 커널 버전 2.6.18 이상 부터는 아래 한 줄 주석 처리
#fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
EOF



* 커널 매개변수 적용
/sbin/sysctl -p



5. oracle 계정의 쉘 리미트 수정
cat /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF



cat /etc/pam.d/login
session required /lib/security/pam_limits.so
EOF



6. oracle 계정의 환경변수 지정
vi .bash_profile

export LANG="c" # 한글 깨짐으로 영문 설치 필요 시
export ORACLE_BASE=/opt/oracle
export ORACLE_SID=spelix
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export TMPDIR=$ORACLE_BASE/tmp
export TMP=$ORACLE_BASE/tmp
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export NLS_LANG=American_america.KO16KSC5601
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/sbin:/usr/ccs/bin:.:$PATH
export SHLIB_PATH = $ORACLE_HOME/lib:$ORACLE_HOME/lib32:/usr/lib

# ----------------------------------------------
# runInstaller의 기동을 위해
# root권한으로 "xhost + " 를 실행하면 호스트와 관계 없이 X Server에 접속 가능
# ----------------------------------------------
# RedHat Enterprise LINUX 4일 때 다음 적용
#export LD_ASSUME_KERNEL=2.4.19; export LD_ASSUME_KERNEL
# ----------------------------------------------



7. 버전 종속성 관련 예외

RHEL4 관련 주의 사항: Oracle Universal Installer는 설치 전에 운영체제의 버전을 점검하고
지원 가능 여부를 검증합니다. Oracle Database 10g 10.1.0.3의 Installer는 RHEL4가 지원 가능한 버전임을 인식하지 못합니다.
이 경우, runInstaller를 실행하기 전에 아래 작업을 수행해야 합니다.


cp /etc/redhat-release /etc/redhat-release.orig
cat /etc/redhat-release EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF



8. 설치 완료 후 오라클 서비스 기동 스크립트
* /etc/oratab -- 수정, 해당 인스턴스 자동 시작 허용

* 오라클 데몬 기동을 위한 스크립트
cat /etc/init.d/oracled
#!/bin/bash
#
# Run-level Startup script for the Oracle Instance and Listener
#
# chkconfig: 345 91 19
# description: Startup/Shutdown Oracle listener and instance

ORA_HOME="/opt/oracle/oracle/product/10.2.0/db_name"
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORA_HOME/bin/dbstart -o ! -d $ORA_HOME ]
then
   echo "Oracle startup: cannot start"
   exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in

start)
   # Oracle listener and instance startup
   echo -n "Starting Oracle: "
   su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl start"
   su - $ORA_OWNR -c $ORA_HOME/bin/dbstart
   touch /var/lock/subsys/oracle
   echo "OK"
;;

stop)
   # Oracle listener and instance shutdown
   echo -n "Shutdown Oracle: "
   su - $ORA_OWNR -c "$ORA_HOME/bin/lsnrctl stop"
   su - $ORA_OWNR -c $ORA_HOME/bin/dbshut
   rm -f /var/lock/subsys/oracle
   echo "OK"
;;

reload
restart)
   $0 stop
   $0 start
;;
*)
   echo "Usage: $0 start
   stop
   restart
   reload"
   exit 1
   esac
   exit 0
EOF

* 서비스를 등록
ln -s /etc/init.d/oracled /etc/rc.d/rc2.d/S99oracled
ln -s /etc/init.d/oracled /etc/rc.d/rc3.d/S99oracled
ln -s /etc/init.d/oracled /etc/rc.d/rc4.d/S99oracled
ln -s /etc/init.d/oracled /etc/rc.d/rc5.d/S99oracled
ln -s /etc/init.d/oracled /etc/rc.d/rc0.d/K01oracled
ln -s /etc/init.d/oracled /etc/rc.d/rc6.d/K01oracled


A. 대용량 oracle 설치과정 상 유의사항
1. db_block_size = 32kb
2. shared_pool_size = 400MB
3. Automatic Shared Memory Management
4. use big file tablespace option