설치전 알아두서야할 사항이 있다면 OEL 6.1도 아직 11.2.0.3을 온전하게 지원하지 못한다는 점입니다.
가상 머신 생성과 리눅스 설치 관련 기본적인 사항은 OEL5을 기초로 한 11g 설치 메뉴얼을 참고하십시요.
그 외에 참고할만한 사이트는 ORACLE-BASE 입니다.
http://oracle-base.com/articles/11g/OracleDB11gR2RACInstallationOnOracleLinux6UsingVirtualBox.php
※ OEL6 설치 패키지
기반 시스템 > Perl 지원
기반 시스템 > 거대 시스템 성능
기반 시스템 > 기본
기반 시스템 > 네트워크 파일 시스템 클라이언트
기반 시스템 > 성능 도구
기반 시스템 > 클라이언트 관리 도구
기반 시스템 > 하드웨어 모니터링 도구
기반 시스템 > 호환성 라이브러리
서버 > 서버 프랫폼
서버 > 시스템 관리 도구
데스크탑 > X Windows 시스템
데스크탑 > 그래픽기반 관리 도구
데스크탑 > 데스크탑
데스크탑 > 데스크탑 플랫폼
데스크탑 > 범용 데스크탑
데스크탑 > 입력방식
데스크탑 > 폰트
응용 프로그램 > 인터넷 브라우저
개발 > 개발용 도구
개발 > 추가개발 (+ unixODBC-devel-2*)
※ 추가 패키지 설치 및 검증
# rpm -q libaio-devel-0.3.107-10.el6.i686.rpm
# rpm -q ksh-20100621-6.el6.i686.rpm
# rpm -q binutils-
# rpm -q compat-libstdc++-33
# rpm -q elfutils-libelf-
# rpm -q libaio-
# rpm -q libaio-devel-
# rpm -q sysstat-
# rpm -q glibc-
# rpm -q glibc-common-
# rpm -q glibc-devel-
# rpm -q glibc-headers-
# rpm -q ksh-
# rpm -q make-
# rpm -q libgcc-
# rpm -q libstdc++-
# rpm -q libstdc++-devel-
# rpm -q unixODBC
# rpm -q unixODBC-devel unixODBC-devel.i686
# rpm -q elfutils-libelf-devel
# rpm -q gcc
# rpm -q gcc-c++
※ 불필요한 서비스 끄기
# chkconfig --level 123456 cups off
# chkconfig --level 123456 smartd off
# chkconfig --level 123456 iptables off
※ 호스트 파일 수정
# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
### Public
192.168.0.111 rac1.localdomain rac1
192.168.0.112 rac2.localdomain rac2
### Private
192.168.1.111 rac1-priv.localdomain rac1-priv
192.168.1.112 rac2-priv.localdomain rac2-priv
### Virtual
192.168.0.113 rac1-vip.localdomain rac1-vip
192.168.0.114 rac2-vip.localdomain rac2-vip
### SCAN
192.168.0.115 rac-scan.localdomain rac-scan
#192.168.0.116 rac-scan.localdomain rac-scan
#192.168.0.117 rac-scan.localdomain rac-scan
※ 환경 설정
# vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
#kernel.shmall = 2097152
#kernel.shmmax = 1054504960
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
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
# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
# vi /etc/pam.d/login
session required pam_limits.so
# vi /etc/selinux/config
SELINUX=disabled
※ NTP 설정 : -u 앞에 -x 옵션 추가
# vi /etc/sysconfig/ntpd
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
# service ntpd stop
# ntpdate -b time.bora.net ntp.postech.ac.kr
# service ntpd start
※ DNS 해킹
# mv /usr/bin/nslookup /usr/bin/nslookup.original
# vi /usr/bin/nslookup
#!/bin/bash
HOSTNAME=${1}
if [[ $HOSTNAME = "rac-scan.localdomain" ]]; then
echo "Server: 210.220.163.82"
echo "Address: 210.220.163.82#53"
echo "Non-authoritative answer:"
echo "Name: rac-scan.localdomain"
echo "Address: 192.168.0.115"
else
nslookup.original $HOSTNAME
fi
# chmod 755 /usr/bin/nslookup
# /usr/bin/nslookup rac-scan.localdomain
※ 그룹 및 유저 생성
# groupadd -g 501 oinstall
# groupadd -g 502 dba
# groupadd -g 503 oper
# groupadd -g 504 asmadmin
# groupadd -g 506 asmdba
# groupadd -g 505 asmoper
# groupadd -g 510 vboxsf
# useradd -u 502 -g oinstall -G dba,asmdba,oper,vboxsf oracle
# passwd oracle
※ 설치 경로 생성
# mkdir -p /u01/app
# chown -R oracle:oinstall /u01
# chmod -R 775 /u01
※ 게스트 확장 설치 (장치 > 게스트 확장 설치 클릭)
# cd /media/VBOXADDITIONS_*
# sh ./VBoxLinuxAdditions.run
# eject
※ 오라클 계정 설정 (.bash_profile 내용 추가)
# su - oracle
$ vi .bash_profile
### Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
export EDITOR=vi
export ORACLE_HOSTNAME=rac1.localdomain # rac2.localdomain
export ORACLE_UNQNAME=racdb
export ORACLE_BASE=/u01/app/oracle
export GRID_HOME=/u01/app/11.2.0/grid
export DB_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_HOME=$DB_HOME
export ORACLE_SID=racdb1 # racdb2
export ORACLE_TERM=xterm
export BASE_PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$GRID_HOME/bin:$BASE_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=KOREAN_KOREA.AL32UTF8
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
$ exit
※ 시스템 정지
# shutdown -h now
--------------- host
※ 공유 디스크 생성 (도스에서 실행)
> G:
> cd G:\OEL6RAC11g
> C:
> cd C:\Program Files\Oracle\VirtualBox
> vboxmanage createhd --filename G:ASM1.vdi --size 2048 --format VDI --variant Fixed
> vboxmanage createhd --filename G:ASM2.vdi --size 2048 --format VDI --variant Fixed
> vboxmanage createhd --filename G:ASM3.vdi --size 2048 --format VDI --variant Fixed
> vboxmanage createhd --filename G:ASM4.vdi --size 2048 --format VDI --variant Fixed
> vboxmanage createhd --filename G:ASM5.vdi --size 2048 --format VDI --variant Fixed
> vboxmanage createhd --filename G:FRA.vdi --size 3072 --format VDI --variant Fixed
※ 공유 디스크로 설정 (VirtualBox에서 RAC1 노드에 등록한 후에 실행)
> VBoxManage modifyhd G:ASM1.vdi --type shareable
> VBoxManage modifyhd G:ASM2.vdi --type shareable
> VBoxManage modifyhd G:ASM3.vdi --type shareable
> VBoxManage modifyhd G:ASM4.vdi --type shareable
> VBoxManage modifyhd G:ASM5.vdi --type shareable
> VBoxManage modifyhd G:FRA.vdi --type shareable
> VBoxManage showhdinfo G:ASM1.vdi
> VBoxManage showhdinfo G:ASM2.vdi
> VBoxManage showhdinfo G:ASM3.vdi
> VBoxManage showhdinfo G:ASM4.vdi
> VBoxManage showhdinfo G:ASM5.vdi
> VBoxManage showhdinfo G:FRA.vdi
--------------- guest
※ 디스크 포맷
# cd /dev
# ls sd*
# fdisk /dev/sdb
(n,p,1,엔터,엔터,w)
# fdisk /dev/sdc
(n,p,1,엔터,엔터,w)
# fdisk /dev/sdd
(n,p,1,엔터,엔터,w)
# fdisk /dev/sde
(n,p,1,엔터,엔터,w)
# fdisk /dev/sdf
(n,p,1,엔터,엔터,w)
# fdisk /dev/sdg
(n,p,1,엔터,엔터,w)
※ SCSI ID 확인
# /sbin/scsi_id -g -u /dev/sdb1
# /sbin/scsi_id -g -u /dev/sdc1
# /sbin/scsi_id -g -u /dev/sdd1
# /sbin/scsi_id -g -u /dev/sde1
# /sbin/scsi_id -g -u /dev/sdf1
# /sbin/scsi_id -g -u /dev/sdg1
§실행 내역
[root@rac1 dev]# /sbin/scsi_id -g -u /dev/sdb1
1ATA_VBOX_HARDDISK_VBdf308995-77b9fa74
[root@rac1 dev]# /sbin/scsi_id -g -u /dev/sdc1
1ATA_VBOX_HARDDISK_VBa67a0ef6-408a7e82
[root@rac1 dev]# /sbin/scsi_id -g -u /dev/sdd1
1ATA_VBOX_HARDDISK_VBca2cf04b-d3614a9b
[root@rac1 dev]# /sbin/scsi_id -g -u /dev/sde1
1ATA_VBOX_HARDDISK_VBd7bdbc80-94a4af0b
[root@rac1 dev]# /sbin/scsi_id -g -u /dev/sdf1
1ATA_VBOX_HARDDISK_VB9ede195d-468256db
[root@rac1 dev]# /sbin/scsi_id -g -u /dev/sdg1
1ATA_VBOX_HARDDISK_VB2969e106-7f59aa58
※ 규칙 등록 : RESULT=="해당 SCSI ID로 수정"
# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sdb1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBdf308995-77b9fa74", NAME="DISK1", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdc1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBa67a0ef6-408a7e82", NAME="DISK2", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdd1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBca2cf04b-d3614a9b", NAME="DISK3", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sde1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VBd7bdbc80-94a4af0b", NAME="DISK4", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdf1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB9ede195d-468256db", NAME="DISK5", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdg1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u /dev/$name", RESULT=="1ATA_VBOX_HARDDISK_VB2969e106-7f59aa58", NAME="DISK6", OWNER="oracle", GROUP="dba", MODE="0660"
# /sbin/partprobe /dev/sdb1
# /sbin/partprobe /dev/sdc1
# /sbin/partprobe /dev/sdd1
# /sbin/partprobe /dev/sde1
# /sbin/partprobe /dev/sdf1
# /sbin/partprobe /dev/sdg1
# /sbin/udevadm test /block/sdb/sdb1
# /sbin/udevadm test /block/sdc/sdc1
# /sbin/udevadm test /block/sdd/sdd1
# /sbin/udevadm test /block/sde/sde1
# /sbin/udevadm test /block/sdf/sdf1
# /sbin/udevadm test /block/sdg/sdg1
# ls -al /dev/DISK*
※ 추가 패키지 설치
# cd /media/sf_oracle/grid/rpm
# rpm -Uvh cvuqdisk*
# cd /media/sf_oracle
# rpm -Uvh jre-7-linux-i586.rpm
※ 시스템 정지
# shutdown -h now
--------------- host
※ 2번 노드 복제 (도스에서 실행)
> G:
> cd G:\OEL6RAC11g
> C:
> cd C:\Program Files\Oracle\VirtualBox
> vboxmanage clonehd G:RAC1.vdi G:RAC2.vdi
--------------- guest
※ RAC2 환경 설정 변경 : RAC2 가동 후 작업
# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=rac2.localdomain
※ MAC 주소 확인
# ifconfig -a | grep eth
§ 실행 내역
eth2 Link encap:Ethernet HWaddr 08:00:27:FB:29:8F
eth3 Link encap:Ethernet HWaddr 08:00:27:7A:7D:59
※ eth0 구성 변경 (HWADDR은 eth3 사용, UUID 삭제)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR=08:00:27:7A:7D:59
IPADDR=192.168.0.112
※ eth1 구성 변경 (HWADDR은 eth2 사용, UUID 삭제)
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
HWADDR=08:00:27:FB:29:8F
IPADDR=192.168.1.112
# service network restart
# ping 192.168.0.1
(인터넷이 안될 경우 eth0과 eth1의 MAC 주소를 바꿔서 시도해 볼 것)
※ 오라클 계정 환경 변경
# su - oracle
$ vi .bash_profile
...
export ORACLE_HOSTNAME=rac2.localdomain # rac2.localdomain
...
export ORACLE_SID=racdb2 # racdb2
...
$ exit
※ RAC2 노드 접속 모드 수정 (id:5:... ==> id:3:...)
# vi /etc/inittab
id:3:initdefault:
※ RAC2 재가동
# reboot
----- RAC1, RAC2 모두 가동
※ 네트워크 테스트
# ping -c 3 rac1
# ping -c 3 rac1-priv
# ping -c 3 rac2
# ping -c 3 rac2-priv
※ RAC1번에서 Grid 설치
$ cd /media/sf_oracle/grid
$ ./runInstaller -jreLoc /usr/java/jre1.7.0
§ 주요 사항
INS-13001 : 에러 일단 무시
ASM 디스크 그룹 생성시 검색 경로 /dev/*로 변경
설치과정은 기존 OEL5과 동일함
INS-20802 : 클러스터 검증 유틸리티 에러 무시
※ RAC1번에서 Database 설치
$ asmca
(한글 깨짐 현상 발생)
$ cd /media/sf_oracle/database
$ ./runInstaller -jreLoc /usr/java/jre1.7.0
§ 주요 사항
INS-13001 : 에러 일단 무시
필요 조건 검사를 건너뛰는 버그가 있음