oracle RAC 11g 설치기(Virtual BOX) 기본 카테고리

RAC 설치 설치방법을 정리하여 올리기로 결정하고 여러가지 방법으로 oracle RAC 11g 설치를 해보았습니다.

물론 나만의 테스트 환경을 만들어보기 위한 목적이 강했습니다.

설치 환경을 준비하는 노트북의 성능이 좋다면 더 좋았겠지만 오라클에서 요구하는 최저사양도 갖추지 못하였습니다.

이 문서 작성을 위하여 기존 있던 환경을 삭제 하고 다시 처음부터 다시 설치합니다.

0. 설치시 사용한 환경.

  - VirtualBox 4.1.6 

  - 노트북 CPU 1.3 dual, RAM 2G

  - Guest OS : ORACLE Enterprise Linux 5 update 7

  - Host OS : Ubuntu Linux

1. Share Disk 생성

  VirtualBox 에서 제공하는 공유 가능한 디스크 설정을 이용하할것입니다. 원하는 디렉토리에 폴더를 생성하고 가상 공유 디스크 생성

cd $HOME/VirtualBox\ VMs

mkdir harddisks

cd harddisks

# Create the disks and associate them with VirtualBox as virtual media.(20G 필요)

VBoxManage createhd --filename eleven1.vdi --size 5120 --format VDI --variant Fixed

VBoxManage createhd --filename eleven2.vdi --size 5120 --format VDI --variant Fixed

VBoxManage createhd --filename eleven3.vdi --size 5120 --format VDI --variant Fixed

VBoxManage createhd --filename eleven4.vdi --size 5120 --format VDI --variant Fixed

virtualbox0.png

2. 가상 OS 생성 및 설치

  가상 OS는 ORACLE Linux 를 사용하였으며 제가 이전에 쓴 글을 참조하시면 oracle Linux를 다운받고 설치하는 방법을 알수 있을것입니다.

다음 환경은 오라클 리눅스를 설치하는데 사용된 VirtualBox 환경입니다.

 

메모리 : 1G (최소 1.6G는 되어야 하나 노트북 사양이 따라 주지 않아 1G로 하였습니다. 메모리가 여유되시는 분은 1.6G로 하시기 바랍니다.)

하드디스크 : 30G, 컨트롤러 이름 변경(기본 한글로 되어 있어서 나중 문제 소지를 제거하고자 영어로 변경하였습니다.)

네트워크 

  - 1,4 번 어댑터는 가상 OS에서 인터넷을 위한 설정이며, RAC 구성에는 전혀 영향이 없습니다. 

  - 2번 어댑터는 호스트PC와 연결하기 위한 어댑터이며 RAC 구성에서는 Public Interface 입니다.

  - 3번 어댑터는 가상 노드간 연결되기 위한 어탭터이며 RAC 구성에서는 Private Interface 입니다. 

그 외에 불필요한 오디오 장치를 제거 하였으며, OS설치 CD를 넣어놓았습니다.

환경을 마치고 OS 설치를 진행합니다.

start1.png

2-1. 오라클 리눅스 설치 문서는 다른 곳에서도 볼수 있으니 이미지 없이 옵션 위주로 노트 하겠습니다.

  - CD 검사 화면 : Skip

  - 설치 환경 언어 : 한국어 선택

  - 키보드 : 영어 키보드(기본값)

  - 파티션 설정 : 사용자 레이아웃 만들기(Swap 8192M,/boot 200M,/ 나머지)

  - Grub (기본값)

  - 네트워크

    eth0 : 10.0.2.111/24

    eth1 : 192.168.10.111/24

    eth2 : 192.168.20.111/24

    eth3 : 192.168.0.111/24

    수동으로 호스트 명 설정 : eleven1

    게이트웨이 : 10.0.2.2

    1차 DNS : 8.8.8.8

  - 시간대, root 사용자 비밀번호 설정

  - 지금 사용자 설정

    데스크탑 환경 > Gnome 데스크탑 환경

    응용프로그램 > 모두 선택 해제 

    개발 > 개발용 도구, 개발용 라이브러리, 레거시 소프트웨어 개발(나머지 해제)

    서버, 가상화 > 모두 해제

    기반시스템 > X Window, 관리도구, 기본, 레거시 소프트웨어 지원, 시스템 도구(oracleasm,sysstat 추가) 만 선택

    클러스터 스토리지, 클러스터링 > 모두 해제

    언어지원 > 한국어 추가

  - 방화벽, SELinux 활성화 하지 않습니다.

  - 계정 생성하지 않습니다.

  - 이렇게 설치가 완료되면 이제 Putty나 SecureCRT와 같은 툴로 접근이 가능합니다. eth1 장치로 접근이 가능하며 지금 환경에서는 192.168.10.111이 됩니다.

  - 저는 호스트가 리눅스라서 그냥 ssh를 이용하여 작업하였습니다.

3. 게스트 확장 설치

  - 가상의 장치들을 정상적으로 인식하기 위하여 가상 OS에서 게스트 확장 설치를 통하여 설정합니다.

  - Virtualbox 에서 게시트 확장 설치 메뉴 누르면 게스트 OS에서 CD가 삽입됩니다.

  - root 계정에서 설치합니다.

[root@eleven1 ~]# mount /dev/cdrom /mnt -o loop

[root@eleven1 ~]# cd /mnt

[root@eleven1 mnt]# ls

32Bit  AUTORUN.INF             VBoxSolarisAdditions.pkg        VBoxWindowsAdditions-x86.exe  autorun.sh

64Bit  VBoxLinuxAdditions.run  VBoxWindowsAdditions-amd64.exe  VBoxWindowsAdditions.exe      runasroot.sh

[root@eleven1 mnt]# ./VBoxLinuxAdditions.run 

Verifying archive integrity... All good.

Uncompressing VirtualBox 4.1.8 Guest Additions for Linux.........

VirtualBox Guest Additions installer

Removing existing VirtualBox DKMS kernel modules           [  OK  ]

Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]

Building the VirtualBox Guest Additions kernel modules

Building the main Guest Additions module                   [  OK  ]

Building the shared folder support module                  [  OK  ]

Building the OpenGL support module                         [실패]

(Look at /var/log/vboxadd-install.log to find out what went wrong)

Doing non-kernel setup of the Guest Additions              [  OK  ]

Installing the Window System drivers

Installing X.Org 7.1 modules                               [  OK  ]

Setting up the Window System to use the Guest Additions    [  OK  ]

You may need to restart the hal service and the Window System (or just restart

the guest system) to enable the Guest Additions.

Installing graphics libraries and desktop services componen[  OK  ]

  - 커널 옵션 수정(divider=10)

# vi /etc/grub.conf

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title Oracle Linux Server (2.6.32-200.13.1.el5uek)

        root (hd0,0)

        kernel /vmlinuz-2.6.32-200.13.1.el5uek ro root=LABEL=/ rhgb quiet divider=10

        initrd /initrd-2.6.32-200.13.1.el5uek.img

title Oracle Linux Server-base (2.6.18-274.el5)

        root (hd0,0)

        kernel /vmlinuz-2.6.18-274.el5 ro root=LABEL=/ rhgb quiet divider=10

        initrd /initrd-2.6.18-274.el5.img

4. 오라클 설치 준비

  - yum 설정

[root@eleven1 ~]# cd /etc/yum.repos.d

[root@eleven1 yum.repos.d]# wget http://public-yum.oracle.com/public-yum-el5.repo

--2012-01-16 22:04:03--  http://public-yum.oracle.com/public-yum-el5.repo

Resolving public-yum.oracle.com... 141.146.44.34

Connecting to public-yum.oracle.com|141.146.44.34|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 2533 (2.5K) [text/plain]

Saving to: `public-yum-el5.repo'

100%[==================================================================================================>] 2,533       --.-K/s   in 0s      

2012-01-16 22:04:05 (61.9 MB/s) - `public-yum-el5.repo' saved [2533/2533]

[root@eleven1 yum.repos.d]# vi public-yum-el5.repo

[ol5_u7_base]

name=Oracle Linux $releasever - U7 - $basearch - base

baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/7/base/$basearch/

gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5

gpgcheck=1

enabled=1

  - yum 을 이용한 오라클 설치전 필요한 SW설치

yum install -y binutils compat-libstdc++-33 compat-libstdc++-296  elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio-devel libaio libgcc

yum install -y libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

yum install -y libstdc++44-devel numactl-devel

yum clean all

- 호스트 설정

vi /etc/hosts

127.0.0.1   localhost.localdomain   localhost

# Public

192.168.10.111   eleven1

192.168.10.112   eleven2

# Private

192.168.20.111   eleven1-priv

192.168.20.112   eleven2-priv

# Virtual

192.168.10.121   eleven1-vip

192.168.10.122   eleven2-vip

# scan-ip

192.168.10.123   eleven-cluster

  - 커널 파라미터 설정

vi /etc/sysctl.conf

kernel.shmall = 268435456

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

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

 
- ntp 정지

service ntpd stop

chkconfig ntpd off

mv /etc/ntp.conf /etc/ntp.conf.orig

rm /var/run/ntpd.pid

vi /etc/sysconfig/ntpd(-x 추가)

OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"

service ntpd restart

 
- 오라클 계정 설정

groupadd -g 1000 oinstall

groupadd -g 1200 dba

useradd -u 1100 -g oinstall -G dba oracle

passwd oracle


  - 설치 디렉토리 생성 및 설정

mkdir -p  /u01/app/11.2.0/grid

mkdir -p /u01/app/oracle/product/11.2.0/db_1

chown -R oracle:oinstall /u01

chmod -R 775 /u01/


  - 환경변수 설정(root, oracle 전부 하기)

vi .bash_profile

# Oracle Settings

TMP=/tmp; export TMP

TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=eleven1; export ORACLE_HOSTNAME

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

GRID_HOME=/u01/app/11.2.0/grid; export GRID_HOME

DB_HOME=$ORACLE_BASE/product/11.2.0/db_1; export DB_HOME

ORACLE_HOME=$DB_HOME; export ORACLE_HOME

ORACLE_SID=eleven1; export ORACLE_SID

ORACLE_TERM=xterm; export ORACLE_TERM

BASE_PATH=/usr/sbin:$PATH; export BASE_PATH

PATH=$GRID_HOME/bin:$ORACLE_HOME/bin:$BASE_PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

CVUQDISK_GRP=oinstall; export CVUQDISK_GRP

if [ $USER = "oracle" ]; then

 if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

 else

ulimit -u 16384 -n 65536

 fi

fi

alias grid_env='. /home/oracle/grid_env'

alias db_env='. /home/oracle/db_env'

set -o vi

  - linux_11gR2_grid.zip 파일에 들어있는 cvuqdisk-1.0.7-1.rpm 패키지를 설치합니다.

.bash_profile(CVUQDISK_GRP) 환경변수가 적용되어 있어야 합니다.

[root@eleven1 ~]# rpm -ivh cvuqdisk-1.0.7-1.rpm 

  - 환경변수를 전화시켜주는 쉘 생성.

su - oracle

vi /home/oracle/grid_env

ORACLE_SID=+ASM1; export ORACLE_SID

ORACLE_HOME=$GRID_HOME; export ORACLE_HOME

vi /home/oracle/db_env

ORACLE_SID=eleven1; export ORACLE_SID

ORACLE_HOME=$DB_HOME; export ORACLE_HOME

 
- 이정도 설정으로 마무리 하고 node1을 종료합니다.

4_1. 공유 디스크 연결

  - 호스트 PC에서 공유 디스크를 연결합니다. virtualbox에서 연결된 내용을 확인하고 다시 node1을 부팅합니다.

# Connect them to the VM.

cd $HOME/VirtualBox\ VMs/harddisks

VBoxManage storageattach oracle11gRAC1 --storagectl "SATA Controller" --port 1 --device 0 --type hdd --medium eleven1.vdi --mtype shareable

VBoxManage storageattach oracle11gRAC1 --storagectl "SATA Controller" --port 2 --device 0 --type hdd --medium eleven2.vdi --mtype shareable

VBoxManage storageattach oracle11gRAC1 --storagectl "SATA Controller" --port 3 --device 0 --type hdd --medium eleven3.vdi --mtype shareable

VBoxManage storageattach oracle11gRAC1 --storagectl "SATA Controller" --port 4 --device 0 --type hdd --medium eleven4.vdi --mtype shareable

# Make shareable.

VBoxManage modifyhd eleven1.vdi --type shareable

VBoxManage modifyhd eleven2.vdi --type shareable

VBoxManage modifyhd eleven3.vdi --type shareable

VBoxManage modifyhd eleven4.vdi --type shareable

4_2. 공유 디스크 파티션 설정과 ASM 사전 디스크 설정

[oracle@eleven1 ~]$ ls -l /dev/sd[b-e]

brw-r----- 1 root disk 8, 16  1월 16 22:51 /dev/sdb

brw-r----- 1 root disk 8, 32  1월 16 22:51 /dev/sdc

brw-r----- 1 root disk 8, 48  1월 16 22:51 /dev/sdd

brw-r----- 1 root disk 8, 64  1월 16 22:51 /dev/sde

[oracle@eleven1 ~]$ su -

암호:

[root@eleven1 ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel. Changes will remain in memory only,

until you decide to write them. After that, of course, the previous

content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n 

Command action

   e   extended

   p   primary partition (1-4)

Partition number (1-4): 1

First cylinder (1-652, default 1): 

Using default value 1

Last cylinder or +size or +sizeM or +sizeK (1-652, default 652): 

Using default value 652

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         652     5237158+  83  Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

... /dev/sde 까지 반복

[root@eleven1 ~]# ls -l /dev/sd[b-e][0-9]

brw-r----- 1 root disk 8, 17  1월 16 22:55 /dev/sdb1

brw-r----- 1 root disk 8, 33  1월 16 22:56 /dev/sdc1

brw-r----- 1 root disk 8, 49  1월 16 22:56 /dev/sdd1

brw-r----- 1 root disk 8, 65  1월 16 22:56 /dev/sde1


  - ASM 드라이버 설정

[root@eleven1 ~]# oracleasm configure -i

Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library

driver.  The following questions will determine whether the driver is

loaded on boot and what permissions it will have.  The current values

will be shown in brackets ('[]').  Hitting <ENTER> without typing an

answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle

Default group to own the driver interface []: dba

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]: y

Writing Oracle ASM library driver configuration: done

 
- 초기 ASM 드라이버 로드

[root@eleven1 ~]# oracleasm init

Creating /dev/oracleasm mount point: /dev/oracleasm

Loading module "oracleasm": oracleasm

Mounting ASMlib driver filesystem: /dev/oracleasm

 
- ASM 디스크 설정(기존 제 글에서 사용했던 RAW디바이스 설정 방법이 아닌 ASM드라이버를 이용해 봤습니다.)

[root@eleven1 ~]# oracleasm createdisk DISK01 /dev/sdb1

Writing disk header: done

Instantiating disk: done

[root@eleven1 ~]# oracleasm createdisk DISK02 /dev/sdc1

Writing disk header: done

Instantiating disk: done

[root@eleven1 ~]# oracleasm createdisk DISK03 /dev/sdd1

Writing disk header: done

Instantiating disk: done

[root@eleven1 ~]# oracleasm createdisk DISK04 /dev/sde1

Writing disk header: done

Instantiating disk: done

  - 생성한 ASM 디스크를 검색하고 확인합니다.

[root@eleven1 ~]# oracleasm scandisks

Reloading disk partitions: done

Cleaning any stale ASM disks...

Scanning system for ASM disks...

[root@eleven1 ~]# oracleasm listdisks

DISK01

DISK02

DISK03

DISK04

  - 게스트OS 복사를 위해 다시 종료합니다.

5. 가상 OS 복사

  - 지금까지 생성한 OS를 node2를 위하여 복사합니다.

cd $HOME/VirtualBox\ VMs/

mkdir oracle11gRAC2

VBoxManage clonehd oracle11gRAC1/oracle11gRAC1.vdi oracle11gRAC2/oracle11gRAC2.vdi


  - Virtualbox 를 통하여 oracle11gRAC2 를 oracle11gRAC1과 동일하게 생성합니다.

  - 디스크는 방금 복사한 디스크를 기존 디스크 사용하기 메뉴를 통하여 설정합니다.

VBoxManage storageattach oracle11gRAC2 --storagectl "SATA Controller" --port 1 --device 0 --type hdd --medium eleven1.vdi --mtype shareable

VBoxManage storageattach oracle11gRAC2 --storagectl "SATA Controller" --port 2 --device 0 --type hdd --medium eleven2.vdi --mtype shareable

VBoxManage storageattach oracle11gRAC2 --storagectl "SATA Controller" --port 3 --device 0 --type hdd --medium eleven3.vdi --mtype shareable

VBoxManage storageattach oracle11gRAC2 --storagectl "SATA Controller" --port 4 --device 0 --type hdd --medium eleven4.vdi --mtype shareable

 

- 복사된 두번째 노드를 부팅시켜 상태를 확인합니다. IP주소를 변경하고 .bash_profile 과 grid_env, db_env 파일의 내용을 수정합니다.

6. 첫번째 노드에는 SW 설치파일을 oracle계정에 다운받아 놓습니다.

7. 다운받은 파일을 압축해제 합니다.

8. grid SW 설치를 시작합니다.

[oracle@eleven1 ~]$ cd grid

[oracle@eleven1 grid]$ ./runInstaller 

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 8098 MB    Passed

Checking swap space: must be greater than 150 MB.   Actual 8189 MB    Passed

Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed

Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-02-10_01-57-55AM. Please wait ...

메모리 : 1G (최소 1.6G는 되어야 하나 노트북 사양이 따라 주지 않아 1G로 하였습니다. 메모리가 여유되시는 분은 1.6G로 하시기 바랍니다.)

하드디스크 : 30G, 컨트롤러 이름 변경(기본 한글로 되어 있어서 나중 문제 소지를 제거하고자 영어로 변경하였습니다.)

네트워크 

  - 1,4 번 어댑터는 가상 OS에서 인터넷을 위한 설정이며, RAC 구성에는 전혀 영향이 없습니다. 

  - 2번 어댑터는 호스트PC와 연결하기 위한 어댑터이며 RAC 구성에서는 Public Interface 입니다.

  - 3번 어댑터는 가상 노드간 연결되기 위한 어탭터이며 RAC 구성에서는 Private Interface 입니다. 

그 외에 불필요한 오디오 장치를 제거 하였으며, OS설치 CD를 넣어놓았습니다.

환경을 마치고 OS 설치를 진행합니다.

2-1. 오라클 리눅스 설치 문서는 다른 곳에서도 볼수 있으니 이미지 없이 옵션 위주로 노트 하겠습니다.

  - CD 검사 화면 : Skip

  - 설치 환경 언어 : 한국어 선택

  - 키보드 : 영어 키보드(기본값)

  - 파티션 설정 : 사용자 레이아웃 만들기(Swap 8192M,/boot 200M,/ 나머지)

  - Grub (기본값)

  - 네트워크

    eth0 : 10.0.2.111/24

    eth1 : 192.168.10.111/24

    eth2 : 192.168.20.111/24

    eth3 : 192.168.0.111/24

    수동으로 호스트 명 설정 : eleven1

    게이트웨이 : 10.0.2.2

    1차 DNS : 8.8.8.8

  - 시간대, root 사용자 비밀번호 설정

  - 지금 사용자 설정

    데스크탑 환경 > Gnome 데스크탑 환경

    응용프로그램 > 모두 선택 해제 

    개발 > 개발용 도구, 개발용 라이브러리, 레거시 소프트웨어 개발(나머지 해제)

    서버, 가상화 > 모두 해제

    기반시스템 > X Window, 관리도구, 기본, 레거시 소프트웨어 지원, 시스템 도구(oracleasm,sysstat 추가) 만 선택

    클러스터 스토리지, 클러스터링 > 모두 해제

    언어지원 > 한국어 추가

  - 방화벽, SELinux 활성화 하지 않습니다.

  - 계정 생성하지 않습니다.

  - 이렇게 설치가 완료되면 이제 Putty나 SecureCRT와 같은 툴로 접근이 가능합니다. eth1 장치로 접근이 가능하며 지금 환경에서는 192.168.10.111이 됩니다.

  - 저는 호스트가 리눅스라서 그냥 ssh를 이용하여 작업하였습니다.

3. 게스트 확장 설치

  - 가상의 장치들을 정상적으로 인식하기 위하여 가상 OS에서 게스트 확장 설치를 통하여 설정합니다.

  - Virtualbox 에서 게시트 확장 설치 메뉴 누르면 게스트 OS에서 CD가 삽입됩니다.

  - root 계정에서 설치합니다.

[root@eleven1 ~]# mount /dev/cdrom /mnt -o loop

[root@eleven1 ~]# cd /mnt

[root@eleven1 mnt]# ls

32Bit  AUTORUN.INF             VBoxSolarisAdditions.pkg        VBoxWindowsAdditions-x86.exe  autorun.sh

64Bit  VBoxLinuxAdditions.run  VBoxWindowsAdditions-amd64.exe  VBoxWindowsAdditions.exe      runasroot.sh

[root@eleven1 mnt]# ./VBoxLinuxAdditions.run 

Verifying archive integrity... All good.

Uncompressing VirtualBox 4.1.8 Guest Additions for Linux.........

VirtualBox Guest Additions installer

Removing existing VirtualBox DKMS kernel modules           [  OK  ]

Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]

Building the VirtualBox Guest Additions kernel modules

Building the main Guest Additions module                   [  OK  ]

Building the shared folder support module                  [  OK  ]

Building the OpenGL support module                         [실패]

(Look at /var/log/vboxadd-install.log to find out what went wrong)

Doing non-kernel setup of the Guest Additions              [  OK  ]

Installing the Window System drivers

Installing X.Org 7.1 modules                               [  OK  ]

Setting up the Window System to use the Guest Additions    [  OK  ]

You may need to restart the hal service and the Window System (or just restart

the guest system) to enable the Guest Additions.

Installing graphics libraries and desktop services componen[  OK  ]


  - 커널 옵션 수정(divider=10)

# vi /etc/grub.conf

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title Oracle Linux Server (2.6.32-200.13.1.el5uek)

        root (hd0,0)

        kernel /vmlinuz-2.6.32-200.13.1.el5uek ro root=LABEL=/ rhgb quiet divider=10

        initrd /initrd-2.6.32-200.13.1.el5uek.img

title Oracle Linux Server-base (2.6.18-274.el5)

        root (hd0,0)

        kernel /vmlinuz-2.6.18-274.el5 ro root=LABEL=/ rhgb quiet divider=10

        initrd /initrd-2.6.18-274.el5.img


4. 오라클 설치 준비
  - yum 설정
[root@eleven1 ~]# cd /etc/yum.repos.d
[root@eleven1 yum.repos.d]# wget http://public-yum.oracle.com/public-yum-el5.repo
--2012-01-16 22:04:03--  http://public-yum.oracle.com/public-yum-el5.repo
Resolving public-yum.oracle.com... 141.146.44.34
Connecting to public-yum.oracle.com|141.146.44.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2533 (2.5K) [text/plain]
Saving to: `public-yum-el5.repo'
100%[==================================================================================================>] 2,533       --.-K/s   in 0s      
2012-01-16 22:04:05 (61.9 MB/s) - `public-yum-el5.repo' saved [2533/2533]
[root@eleven1 yum.repos.d]# vi public-yum-el5.repo
[ol5_u7_base]
name=Oracle Linux $releasever - U7 - $basearch - base
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/7/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=1

  - yum 을 이용한 오라클 설치전 필요한 SW설치
yum install -y binutils compat-libstdc++-33 compat-libstdc++-296  elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio-devel libaio libgcc
yum install -y libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
yum install -y libstdc++44-devel numactl-devel
yum clean all

- 호스트 설정
vi /etc/hosts
127.0.0.1   localhost.localdomain   localhost
# Public
192.168.10.111   eleven1
192.168.10.112   eleven2
# Private
192.168.20.111   eleven1-priv
192.168.20.112   eleven2-priv
# Virtual
192.168.10.121   eleven1-vip
192.168.10.122   eleven2-vip
# scan-ip
192.168.10.123   eleven-cluster

  - 커널 파라미터 설정
vi /etc/sysctl.conf
kernel.shmall = 268435456
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
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

 - ntp 정지
service ntpd stop
chkconfig ntpd off
mv /etc/ntp.conf /etc/ntp.conf.orig
rm /var/run/ntpd.pid

vi /etc/sysconfig/ntpd(-x 추가)
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid -g"
service ntpd restart

  - 오라클 계정 설정
groupadd -g 1000 oinstall
groupadd -g 1200 dba
useradd -u 1100 -g oinstall -G dba oracle
passwd oracle

  - 설치 디렉토리 생성 및 설정
mkdir -p  /u01/app/11.2.0/grid
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01/

  - 환경변수 설정(root, oracle 전부 하기)
vi .bash_profile
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=eleven1; export ORACLE_HOSTNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
GRID_HOME=/u01/app/11.2.0/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/11.2.0/db_1; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=eleven1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$GRID_HOME/bin:$ORACLE_HOME/bin:$BASE_PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
CVUQDISK_GRP=oinstall; export CVUQDISK_GRP

if [ $USER = "oracle" ]; then
 if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
 else
ulimit -u 16384 -n 65536
 fi
fi

alias grid_env='. /home/oracle/grid_env'
alias db_env='. /home/oracle/db_env'

set -o vi

  - linux_11gR2_grid.zip 파일에 들어있는 cvuqdisk-1.0.7-1.rpm 패키지를 설치합니다.
환경변수가 적용되어 있어야 합니다.
[root@eleven1 ~]# rpm -ivh cvuqdisk-1.0.7-1.rpm 

  - 환경변수를 전화시켜주는 쉘 생성.
su - oracle
vi /home/oracle/grid_env
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_HOME=$GRID_HOME; export ORACLE_HOME

vi /home/oracle/db_env
ORACLE_SID=eleven1; export ORACLE_SID
ORACLE_HOME=$DB_HOME; export ORACLE_HOME

  - 이정도 설정으로 마무리 하고 node1을 종료합니다.

4. 공유 디스크 연결
  - 호스트 PC에서 공유 디스크를 연결합니다. virtualbox에서 연결된 내용을 확인하고 다시 node1을 부팅합니다.
# Connect them to the VM.
cd $HOME/VirtualBox\ VMs/harddisks
VBoxManage storageattach oracle11gRAC1 --storagectl "SATA Controller" --port 1 --device 0 --type hdd --medium eleven1.vdi --mtype shareable
VBoxManage storageattach oracle11gRAC1 --storagectl "SATA Controller" --port 2 --device 0 --type hdd --medium eleven2.vdi --mtype shareable
VBoxManage storageattach oracle11gRAC1 --storagectl "SATA Controller" --port 3 --device 0 --type hdd --medium eleven3.vdi --mtype shareable
VBoxManage storageattach oracle11gRAC1 --storagectl "SATA Controller" --port 4 --device 0 --type hdd --medium eleven4.vdi --mtype shareable
# Make shareable.
VBoxManage modifyhd eleven1.vdi --type shareable
VBoxManage modifyhd eleven2.vdi --type shareable
VBoxManage modifyhd eleven3.vdi --type shareable
VBoxManage modifyhd eleven4.vdi --type shareable

5. 공유 디스크 파티션 설정과 ASM 사전 디스크 설정
[oracle@eleven1 ~]$ ls -l /dev/sd[b-e]
brw-r----- 1 root disk 8, 16  1월 16 22:51 /dev/sdb
brw-r----- 1 root disk 8, 32  1월 16 22:51 /dev/sdc
brw-r----- 1 root disk 8, 48  1월 16 22:51 /dev/sdd
brw-r----- 1 root disk 8, 64  1월 16 22:51 /dev/sde

[oracle@eleven1 ~]$ su -
암호:
[root@eleven1 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help):
Command action
   e   extended
   p   primary partition (1-4)
Partition number (1-4): 1
First cylinder (1-652, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652): 
Using default value 652

Command (m for help): p

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+  83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

... /dev/sde 까지 반복

[root@eleven1 ~]# ls -l /dev/sd[b-e][0-9]
brw-r----- 1 root disk 8, 17  1월 16 22:55 /dev/sdb1
brw-r----- 1 root disk 8, 33  1월 16 22:56 /dev/sdc1
brw-r----- 1 root disk 8, 49  1월 16 22:56 /dev/sdd1
brw-r----- 1 root disk 8, 65  1월 16 22:56 /dev/sde1

  - ASM 드라이버 설정
[root@eleven1 ~]# oracleasm configure -i
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done

  - 초기 ASM 드라이버 로드
[root@eleven1 ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Mounting ASMlib driver filesystem: /dev/oracleasm

  - ASM 디스크 설정(기존 제 글에서 사용했던 RAW디바이스 설정 방법이 아닌 ASM드라이버를 이용해 봤습니다.)
[root@eleven1 ~]# oracleasm createdisk DISK01 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@eleven1 ~]# oracleasm createdisk DISK02 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@eleven1 ~]# oracleasm createdisk DISK03 /dev/sdd1
Writing disk header: done
Instantiating disk: done
[root@eleven1 ~]# oracleasm createdisk DISK04 /dev/sde1
Writing disk header: done
Instantiating disk: done

  - 생성한 ASM 디스크를 검색하고 확인합니다.
[root@eleven1 ~]# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@eleven1 ~]# oracleasm listdisks
DISK01
DISK02
DISK03
DISK04

  - 게스트OS 복사를 위해 다시 종료합니다.

6. 가상 OS 복사
  - 지금까지 생성한 OS를 node2를 위하여 복사합니다.
cd $HOME/VirtualBox\ VMs/
mkdir oracle11gRAC2
VBoxManage clonehd oracle11gRAC1/oracle11gRAC1.vdi oracle11gRAC2/oracle11gRAC2.vdi

  - Virtualbox 를 통하여 oracle11gRAC2 를 oracle11gRAC1과 동일하게 생성합니다.
  - 디스크는 방금 복사한 디스크를 기존 디스크 사용하기 메뉴를 통하여 설정합니다.
VBoxManage storageattach oracle11gRAC2 --storagectl "SATA Controller" --port 1 --device 0 --type hdd --medium eleven1.vdi --mtype shareable
VBoxManage storageattach oracle11gRAC2 --storagectl "SATA Controller" --port 2 --device 0 --type hdd --medium eleven2.vdi --mtype shareable
VBoxManage storageattach oracle11gRAC2 --storagectl "SATA Controller" --port 3 --device 0 --type hdd --medium eleven3.vdi --mtype shareable
VBoxManage storageattach oracle11gRAC2 --storagectl "SATA Controller" --port 4 --device 0 --type hdd --medium eleven4.vdi --mtype shareable
 
- 복사된 두번째 노드를 부팅시켜 상태를 확인합니다. IP주소를 변경하고 .bash_profile 과 grid_env, db_env 파일의 내용을 수정합니다.

7. 첫번째 노드에는 SW 설치파일을 oracle계정에 다운받아 놓습니다.

8. 다운받은 파일을 압축해제 합니다.

9. grid SW 설치를 시작합니다.
[oracle@eleven1 ~]$ cd grid
[oracle@eleven1 grid]$ ./runInstaller 
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 8098 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 8189 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-02-10_01-57-55AM. Please wait ...

install1.png

install2.png

install4.png
추가 버튼을 눌러 호스트이름과 가상 IP 이름을 먼저넣고, SSH 접 속버튼을 누른 후 설정버튼을 통하여 노드간 비밀번호 없는 로그인 환경을 구성합니다.
네트워크 인터페이스 식별 버튼을 통하여 RAC에 필요한 네트워크 설정을 합니다.
install5.png
install6.png
설정된 각 경로를 확인합니다.
install7.png
설정한 디스크 영역을 설정합니다.(ASM관련설정)

install8.png

install9.png

install10.png
Device checks for ASM
PRVF-5184 : Check of following Udev attributes of
체크 당시 위와 같은 에러 발생시 권한 문제로 아래와 같이 조치합니다.
cd /dev/oracleasm/disks/
chmod 660 DISK0*

install11.png
install20.png

install21.png
확인 버튼을 누르기 전 root계정에서 제시된 스크립트를 각노트에서 실행합니다.
[root@eleven1 disks]# /u01/app/oraInventory/orainstRoot.sh 
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@eleven1 disks]# /u01/app/11.2.0/grid/root.sh 
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/11.2.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
User ignored Prerequisites during installation
OLR initialization - successful
  root wallet
  root wallet cert
  root cert export
  peer wallet
  profile reader wallet
  pa wallet
  peer wallet keys
  pa wallet keys
  peer cert request
  pa cert request
  peer cert
  pa cert
  peer root cert TP
  profile reader root cert TP
  pa root cert TP
  peer pa cert TP
  pa peer cert TP
  profile reader pa cert TP
  profile reader peer cert TP
  peer user cert
  pa user cert
Adding Clusterware entries to inittab
CRS-2672: Attempting to start 'ora.mdnsd' on 'eleven1'
CRS-2676: Start of 'ora.mdnsd' on 'eleven1' succeeded
CRS-2672: Attempting to start 'ora.gpnpd' on 'eleven1'
CRS-2676: Start of 'ora.gpnpd' on 'eleven1' succeeded
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'eleven1'
CRS-2672: Attempting to start 'ora.gipcd' on 'eleven1'
CRS-2676: Start of 'ora.cssdmonitor' on 'eleven1' succeeded
CRS-2676: Start of 'ora.gipcd' on 'eleven1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'eleven1'
CRS-2672: Attempting to start 'ora.diskmon' on 'eleven1'
CRS-2676: Start of 'ora.diskmon' on 'eleven1' succeeded
CRS-2676: Start of 'ora.cssd' on 'eleven1' succeeded

ASM이 성공적으로 생성되고 시작되었습니다.

디스크 그룹 DATA이(가) 성공적으로 생성되었습니다.

clscfg: -install mode specified
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4256: Updating the profile
Successful addition of voting disk 31833bd9bddc4f10bfcb61e818267bd2.
Successfully replaced voting disk group with +DATA.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   31833bd9bddc4f10bfcb61e818267bd2 (/dev/oracleasm/disks/DISK01) [DATA]
Located 1 voting disk(s).
CRS-2672: Attempting to start 'ora.asm' on 'eleven1'
CRS-2676: Start of 'ora.asm' on 'eleven1' succeeded
CRS-2672: Attempting to start 'ora.DATA.dg' on 'eleven1'
CRS-2676: Start of 'ora.DATA.dg' on 'eleven1' succeeded
Configure Oracle Grid Infrastructure for a Cluster ... succeeded

드디어 grid 관련 프로그램 을 설치 완료하 고 
Database 관련 SW 를설치합니다.

[oracle@eleven1 ~]$ cd database/
[oracle@eleven1 database]$ ./runInstaller &

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 8971 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 8144 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
 Universal Installer from /tmp/OraInstall2012-02-13_03-10-30PM. Please wait ...

 /u01/app/oraInventory/logs/installActions2012-02-13_03-10-30PM.log
화면 - 시각 2012-02-13 14:16:53.png

화면 - 시각 2012-02-13 14:17:50.png
화면 - 시각 2012-02-13 14:18:10.png
화면 - 시각 2012-02-13 14:18:38.png
화면 - 시각 2012-02-13 14:19:05.png
화면 - 시각 2012-02-13 14:19:16.png
화면 - 시각 2012-02-13 14:19:32.png
화면 - 시각 2012-02-13 14:21:33.png
화면 - 시각 2012-02-13 14:22:27.png 화면 - 시각 2012-02-13 15:17:32.png 화면 - 시각 2012-02-13 15:17:42.png 화면 - 시각 2012-02-13 15:22:19.png

드디어 설치 마무리!!
root에서 화면에 나온 스크립트를 실행하고 OK버튼을 눌러 종료합니다.

[root@eleven1 ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh 
Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/11.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root script.

Now product-specific root actions will be performed.

Finished product-specific root actions.




이제DB는 dbca 로~~~~

드디어 마음 먹었던 일을 마무리 지었습니다.
한 번에 써내려간 내용이 아니어서 스샷도 다르고 점점 갈수록 내용보다는 그림과 스크립트 만으로 채워졌습니다.

..........
Tag :

Leave Comments