블로그 이미지
꿈을 꾸는 꾸러기 YBHoon

카테고리

분류 전체보기 (81)
Oracle (71)
Installation (12)
SQL & PL/SQL (19)
Administration (12)
Backup & Recovery (14)
Tuning (10)
Modeling (0)
Architecture (0)
Real Application Clu.. (3)
Dataguard (0)
Etc (1)
운영체제 (7)
ETC (0)
Study (3)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

태그목록

최근에 올라온 글

'Oracle/Real Application Cluster'에 해당되는 글 3건

  1. 2012.10.22 Oracle 11g R2 (11.2.0.3) RAC 설치 메뉴얼
  2. 2011.09.29 OEL6.1 + 11.2.0.3 RAC 텍스트 설치 메뉴얼 1
  3. 2010.06.17 Oracle 10g RAC 설치 메뉴얼 4

이번에 새로 DNS 서버 설정을 통한 SCAN IP 등록과 OPatch 작업까지 추가했습니다.

 

문서는 아래 링크에서 받을 수 있습니다.

 

궁금한 점이나 오류 발견하시면 문서에 있는 메일로 연락주세요.

 

https://docs.google.com/open?id=0By4ZRIhglyOBS2hMX0d1S0pFdmc

Posted by YBHoon
, |


설치전 알아두서야할 사항이 있다면 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 : 에러 일단 무시

필요 조건 검사를 건너뛰는 버그가 있음

'Oracle > Real Application Cluster' 카테고리의 다른 글

Oracle 11g R2 (11.2.0.3) RAC 설치 메뉴얼  (0) 2012.10.22
Oracle 10g RAC 설치 메뉴얼  (4) 2010.06.17
Posted by YBHoon
, |

 

RHEL 4 기준에 10g R2의 환경에서 두개의 노드로 운용하는 방식으로
기존에 있던 메뉴얼을 참고로해서 캡쳐한 화면 위주의 설명으로 만들었습니다.

오라클 Linux를 무료로 받아서 설치하실 수도 있습니다.
http://edelivery.oracle.com/EPD/WelcomePage/get_form?ARU_LANG=KO

간단한 (그래서 불친절해보이는 ^^;;) 설명을 슬라이드 노트에 담았습니다.
PPT에서 기본 보기가 아닌 슬라이드 노트 보기로 보시면 설명을 보실 수 있습니다.


개인적인 내용인데다 부족한 부분이 많습니다만,
설치가 잘 안되서, 운영 실습조차 못하시는 주변 분들을 돕고자 만들어 봤습니다.

 

기존의 설치 메뉴얼과 달라진 점이 있다면,

 

1. VMTools을 활용했습니다.
=> 실무에서 사용할 가능성은 적겠지만, 실습의 편의를 위해서 넣었습니다.

 

2. 10.2.0.5 패치를 적용했습니다.
=> 새로운 버그 패치를 적용한 셈이지요. ^^;;

 

3. EM이 실행될 수 있도록 설치했습니다.
=> EM 실습을 원하는 분들을 위해서 살려보았습니다.

 

4. DBCA로 ASM 인스턴스를 구성했습니다.
=> DB software를 별도로 설치하는 방식에서 DBCA로 간단히 구성하도록 고쳤습니다.

 

Posted by YBHoon
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함