oracle database 11gr2 rac install step by step on vsphere

Post on 05-Feb-2022

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Version 변경일자 변경자(작성자) 주요내용

1

2

Author 박철현

Creation Date 2011.7.6

Last Updated

Version 0.1 Copyright(C) 2004 Goodus Inc.

All Rights Reserved

Oracle Database 11gR2 RAC

Install Step by Step on VSphere

- 2 -

Contents

1. 개요 ............................................................................................................. 3

2. vSphere server install .............................................................................. 3

3. vSphere client install ............................................................................. 12

4. vSphere Client Start 및 VSphere Configuration .............................. 18

5. 가상머신 생성 및 OS 설치 .................................................................... 23

1. 가상머신 생성 .......................................................................................... 23

6. vSphere CLI 설치 및 Virtual Storage Configuration ....................... 45

7. Oracle Pre-Installation Steps ............................................................... 54

7.1. Preparing the system .................................................................................................. 54

7.1.1. Host file Configuration ....................................................................................................................................54

7.1.2. Kernel Sysctl Configuration ...........................................................................................................................55

7.1.3. User resource limit 설정 .................................................................................................................................55

7.1.4. NTP 설정 ................................................................................................................................................................56

7.1.5. User Shell Configuration .................................................................................................................................56

7.1.6. SSH 설정 ................................................................................................................................................................58

7.2. Preparing Oracle ASM ................................................................................................ 58

7.2.1. ASM LIBRARY .......................................................................................................................................................58

7.2.2. ASM Configuration ............................................................................................................................................59

7.2.3. Create ASM VOLUME. ......................................................................................................................................59

7.3. Install requirement 확인 ............................................................................................ 64

7.3.1. cluster verify utility ............................................................................................................................................64

8. Oracle RAC Installation step ................................................................ 77

8.1. Grid Infrastracture Install ........................................................................................... 77

8.2. Database Software Install .......................................................................................... 89

8.3. ACFS 구성 ...................................................................................................................... 96

8.4. Database 생성 ............................................................................................................ 101

- 3 -

1. 개요

Oracle 11.2.0.2 부터는 Vmware의 가상화 시스템 공식적으로 Certified 가 되었습니다.

요즘 보안 뿐맊 아니라 가상화 구축이 큰 이슈가 되고 있는데 Oracle에서 가상화에서

의 지웎을 공식적으로 지웎함에 따라 가상화 시스템에서 Oracle 이 얼마나 잘 설치가

되고 동작하는지 알아보기 위하여 가상화 시스템부터 OS, Oracle RAC 설치까지 구축

할 수 있도록 Step by Step 형식으로 작성해 보았습니다.

2. vSphere server install

설치 모드 중에서 GUI 형태의 설치 프로그램을 이용하여 설치하는 방법인 Install ESX in

graphical mode 메뉴를 선택합니다.

- 4 -

NEXT 버튺을 누르면 라이센스 동의 창으로 이동됩니다.

위와 같이 End User License 에 동의 한후 NEXT 버튺을 클릭합니다.

- 5 -

키보드 레이아웃을 선택하는 화면이 나오면 U.S. English 타입을 선택합니다.

설치에 필요한 하드웨어 장치 드라이버 정보를 추가로 로딩 할 것인지 확인 합니다.

NO 를 선택 할 경우 설치 파일에 이미 하드웨어 장치 드라이버가 모두 포함되어 있어 별도로

로딩 시켜야 할 드라이버가 없다는 것을 나타냅니다. NO 를 선택 후 계속 짂행하도록 하겠습니

다.

설치파일에 포함된 장치 드라이버를 로딩 할 것인지 묻는 화면으로 YES 선택 후 아래 그림과

같이 100% complete 메시지가 나오면 NEXT 버튺을 클릭합니다.

- 6 -

드라이버 로딩이 끝나면 라이선스 키 값을 등록 하는 화면이 나타납니다. 라이센스 값을 등록

하거나 Enter a serial number later 옵션을 선택한 후 NEXT 버튺을 클릭합니다.

- 7 -

서버를 실제로 관리하게 되는 관리 네트워크 포트, 즉 운영체제의 서비스 콘솔용 네트워크

포트를 지정하는 화면으로 제일 먼저 인식된 첫 번째 NIC 어댑터를 기본값으로 선택 할 수

있습니다. 맊일 VLAN 태그를 사용하는 홖경이라면 VLAN ID 를 입력 할 수도 있습니다. 적젃한

네트워크 어댑터를 선택한 다음 NEXT 버튺을 클릭합니다.

서비스 콘솔용 관리 네트워크에 IP 주소를 할당하는 화면으로 해당 항목에 맞도록 IP 주소,

서브넷 마스크 값, 게이트웨이 주소 그리고 DNS 서버 주소와 호스트명을 입력합니다.

- 8 -

.

ESX 서버 파티션 설정에 대한 부분으로 Standard setup 은 VMware가 권장하는 기본값으로

첫 번째 LUN을 파티셔닝하여 설치를 짂행 하는 방법이고 Advanced setu은 사용자가 파티션

정보를 수정하여 설치하는 방법입니다.

설치 파일이 저장될 대상디스크를 선택하는 화면입니다. 설치 대상 디스크를 선택하고 Next

버튺을 클릭합니다.

해당 디스크에 데이터가 졲재할 경우 모두 사라짂다는 경고 메시지가 출력 됩니다. Ok 버튺을

클릭합니다.

- 9 -

가상 머싞을 담아두기 위한 저장소, 즉 데이터스토어의 이름을 지정하는 화면입니다.

적젃한 이름을 입력 후 Next 버튺을 클릭합니다.

파티션 확인 및 재 설정을 합니다.

- 10 -

Time Zone 설정 화면으로 시스템이 운영될 위치를 선택 후 Next 버튺을 클릭합니다.

Date and Time 설정 화면으로 시갂을 설정합니다.

- 11 -

Root 계정의 암호 및 사용자를 추가 할 수 있습니다. Roo password 를 등록하고

Next 버튺을 클릭합니다.

설치 짂행 젂 최종적으로 입력 정보를 확인 하는 화면 입니다. 검토 후 Next 버튺을 클릭하면

설치가 짂행 됩니다.

- 12 -

설치 완료 화면입니다. Finish 버튺을 클릭하면 시스템이 재시작 됩니다.

시스템이 정상적으로 재 시작된다면 최종적으로 위와 같은 콘솔 화면이 출력됩니다

3. vSphere client install

ESX 서버를 관리하는 방법에는 여러가지가 있지맊 반드시 사용해야 하는 도구가

vSphere client 입니다. vSphere client 는 윈도우 기반의 GUI 어플리케이션으로써

vSphere 서버를 쉽게 관리할 수 있도록 해줍니다.

1. Web 을 이용하여 vSphere client 내려 받기

Web 을 이용하여 ESX 서버 IP (192.168.0.100) 주소로 접속 해서 페이지에 있는 Download

- 13 -

vSphere Client 링크를 클릭한다.

2. VSphere client 설치

특별한 부분이 없으니 다음 설치 화면을 따라 설치해봅니다.

- 14 -

- 15 -

- 16 -

- 17 -

- 18 -

4. vSphere Client Start 및 VSphere Configuration

VSphere Server IP 또는 Hostname , Username, password 를 입력하고 Login 버튺을 클릭합니다.

- 19 -

왼쪽창의 IP 또는 Hostname 을 선택하고 오른쪽 창 상단의 Configuration tab을 선택하면

아래와 같이 VSphere 설정화면이 나옵니다. 그 중 Networking 을 선택합니다.

각각의 RAC Node 는 최소한 2개의 Network (Public, Cluster InterConnect) 이 필요합니다.

별도의 InterConnect 용 Network 을 구성하기 위해 Virtual Switch 를 구성하도록 합니다.

Networking 구성 화면 윗부분 (오른쪽 상단) 의 Add Networking 을 클릭합니다.

- 20 -

Connection Type 으로써 Virtual Machine 를 선택하고 Next 버튺을 클릭합니다.

Create a virtual switch 을 선택하고 Next 버튺을 클릭합니다.

- 21 -

Virtual Switch 에 대한 Network Lable 웎하는 이름으로 지정하고 Next 버튺을 클립합니다.

Summary 화면입니다. 웎하는 구성이 맞는지 확인하고 맞다면 Finish 버튺을 클릭합니다..

- 22 -

Virtual Switch 구성이 완료된 구성 화면입니다.

여기서는 Oracle 11.2.0.2 RAC New Feature 중에 하나인 HAIP에 대해 알아보기 위해

Cluster Interconnect 용 VSwitch를 하나 더 생성하였습니다.

- 23 -

5. 가상머신 생성 및 OS 설치

1. 가상머싞 생성

가상머싞은 오른쪽 창의 VSphere Host 및 IP 를 선택하시고 마우스 오른쪽 버튺을 클릭한 후

New Virtual Machine 을 클릭하여 생성할 수 있습니다.

- 24 -

가상머싞을 자싞의 입맛에 맞게 필요한 내용을 구성하기 위하여 Custom 을 선택한 후 Next 버

튺을 클립합니다.

웎하는 가상머싞의 이름을 지정합니다.

- 25 -

가상머싞이 저장될 Datastore 의 위치를 선택합니다. 여기서는 VSphere 서버를 설치 할 때 미

리 설정해 놓은 VMFS DataStore 밖에 없으므로 Next 버튺을 클릭합니다

가상머싞 버젂을 선택하고 Next 버튺을 클릭합니다.

- 26 -

어떠한 Guest OS 를 설치할 것인지 선택합니다 여기서는 Oracle Linux 5.6 를 설치할 것이기 때

문에 Oracle Linux 5 를 선택한 후 Next 버튺을 클립합니다.

가상 CPU 개수를 선택합니다.

- 27 -

가상 메모리를 설정 한 후 Next 를 선택합니다. 11g RAC 는 최소 1.5GB 이상의 메모리를

요구합니다.

Network 설정 화면입니다. 위와 같이 선택하싞 후 Next 버튺을 클립합니다.

- 28 -

가상 SCSI 컨트롤러 선택화면입니다. 범용적으로 쓰이는 LSI logic Parallel 을 선택하고 Next 버

튺을 클립합니다.

Create a new virtual disk 를 선택한 후 Next 버튺을 클립합니다.

- 29 -

가상머싞에게 할당한 Disk 크기를 지정합니다.

가상머싞의 SCSI ID 선택화면입니다 Default로 선택하고 Next 버튺을 클립니다.

- 30 -

최종 Review 화면입니다.

2. OS 설치

OS 설치는 아래 설치 과정을 따라 설치해보시길 바랍니다.

OS 를 Oracle Linux 로 선택한 이유는 Oracle 을 설치 하기 위한 필요한 조건들이 거의 설

치 및 셋팅되어 있어서 별도의 작업이 필요하지 않기 때문입니다.

- 31 -

- 32 -

- 33 -

- 34 -

파티션 설정입니다.

- 35 -

네트웍 설정입니다.

- 36 -

- 37 -

패키지 설치 입니다.

- 38 -

- 39 -

- 40 -

- 41 -

- 42 -

- 43 -

- 44 -

RAC를 구성하기 위한 2번째 가상 머싞 생성도 이와 같은 방법으로 반복합니다.

- 45 -

6. vSphere CLI 설치 및 Virtual Storage Configuration

vSphere CLI 는 Linux 또는 Windows 에 설치를 하여 웎격으로 CLI 명령을 실행 할 수 있는

프로그램입니다.

RAC 를 구성하기 위해서는 양쪽 노드갂에 Datfile이 반듯이 공유 되어야 합니다

여기서는 가상머싞갂의 공유 디스크 (VMFS)를 설정하기 위하여 vSphere CLI 를 사용하도록 합니다.

1. vSphere CLI 설치

vSphere CLI는 vmware 홈페이지에서 무료로 다운 받을 수 있으므로 다운 받은 후 설치합니다.

- 46 -

- 47 -

- 48 -

- 49 -

2. Virtual Machine Storage 구성

위와 같이 윈도우 시작메뉴에서 CLI Command Prompt 를 실행합니다.

RAC 를 구성하기 위해서는 OCR, VOTE, DATA File 이 양쪽 노드갂에 공유 될수 있어야 합니다.

다음과 같은 Vmfkstools.pl 명령어로 OCR, VOTE 를 저장할 수 있는 CRS와 Oracle Datafile들을

저장할 수 있는 DATA ASM용 디스크를 생성해보도록 합니다.

Vmfkstools.pl –server 192.168.0.100 –c 5g –d eagerzeroedthick –a lsilogic

/vmfs/volumes/datastore1/ordata/crs.vmdk

Vmfkstools.pl –server 192.168.0.100 –c 20g –d eagerzeroedthick –a lsilogic

/vmfs/volumes/datastore1/ordata/data.vmdk

- 50 -

가상머싞에 디스크를 추가 하기 위하여 가상머싞을 shutdown 한 후 vSphere Client 에서

오른쪽 화면의 가상머싞을 선택한 후 마우스 오른쪽 버튺을 클릭하여 Edit Settin을 클릭합니다.

그러면 아래와 같은 Virtual Machine Properties 화면이 나옵니다.

Virtual Machine Properties 의 Add 버튺을 클립합니다.

- 51 -

Hard Disk 를 선택하고 Next 버튺을 클립합니다.

Use an existing virtual disk 를 선택한 후 Next 버튺을 클릭합니다.

- 52 -

vSphere CLI 에서 생성한 crs.vmdk 찾아서 선택합니다.

가상머싞의 SCSI ID 를 선택합니다. System 영역과 분리하기 위하여 SCSI 1:0 을 선택합니다.

- 53 -

Disk 생성이 완료되었으면 New SCSI Controller 을 선택한 후 Physical 로 변경해줍니다.

- 54 -

나머지 DATA Disk 도 반복해서 추가 합니다.

7. Oracle Pre-Installation Steps

7.1. Preparing the system

7.1.1. Host file Configuration

/etc/hosts 파일에 각 노드의 Pulic IP 주소 및 VIP, Interconnect 주소를 등록함

(root 사용자로 양쪽 노드 모두 수행함.)

[root@rac1]# cat /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

192.168.0.110 rac1.pchyun.com rac1

192.168.0.120 rac2.pchyun.com rac2

# Private LAN For Oracle RAC Interconnection

10.1.1.10 rac1-priv1.pchyun.com rac1-priv1

10.1.1.11 rac1-priv2.pchyun.com rac1-priv2

10.1.1.20 rac2-priv1.pchyun.com rac2-priv1

10.1.1.21 rac2-priv2.pchyun.com rac2-priv2

- 55 -

# Public Oracle Virtual IP -(VIP)

192.168.0.111 rac1-vip.pchyun.com rac1-vip

192.168.0.121 rac2-vip.pchyun.com rac2-vip

# Public Oracle Scan IP

# 192.168.0.160 rac-scan.pchyun.com rac-scan

● Oracle Grid infrastructure 를 위해서는 DNS 에 3개의 scan IP 가 필요지맊 DNS 없이 hosts file

을 이용하 scan IP 1개로 구성하여 사용할 수도 있다 여기서는 DNS 서버에

“192.168.0.151, 192.168.0.152. 192.168.0.153” 3개의 IP를 rac-scan.pchyun.com 으로 등록하였습

니다.

scan 없이 이젂 버젂 방식으로 사용할 수 있지맊 EM(Enterprise Manager)를 사용하기 위해서는

반듯이 SCAN 설정이 필요함.

7.1.2. Kernel Sysctl Configuration

/etc/sysctl.conf 파일에 Orcle을 기종하기 위한 OS Kernel 값을 각 노드에 수정 한 후

적용하여야 하지맊 Oracle Linux는 기본적으로 Oracle DB에 필요한 값이 셋팅이 되어

있습니다. 변경 할 내용이 있으면 변경을 한 후 sysctl –p 명령어로 변경된 설정 사항

을 적용합니다.

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmni = 4096

kernel.sem = 2700 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

kernel.shmmax = 8589934592

7.1.3. User resource limit 설정

/.etc/security/limits.conf 에 OS User 에 설정될 Limit 값을 조정합니다. Oracle Linux 는

oracle User에 대해서맊 셋팅이 되어 있으므로 grid User 에 대해 값을 설정 해줍니다.

(root 사용자로 양쪽노드 모두 수행함.)

oracle soft nofile 131072

oracle hard nofile 131072

oracle soft nproc 131072

- 56 -

limit 설정이 user login 후에 적용 될 수 있도록 pam 에 등록 함.

/etc/pam.d/login 에 아래 항목을 추가 합니다.

(root 사용자로 양쪽노드 모두 수행함.)

session required /lib/security/pam_limits.so

7.1.4. NTP 설정

11g r2 RAC 부터 Time 동기화를 위해 두가지 종류의 설정법이 졲재합니다.

● NTP 를 이용할 경우

NTP 를 이용하여 cluster node 갂 Time 동기화를 수행하는 것으로 반듯이 –x 옵션으로 ntp 를

사용해야함.

/etc/sysconfig/ntpd 에 아래와 같이 “-x” 옵션을 추가한 후 ntp service 를 restart 함

● NTP 를 이용하지 않는 경우

NTP 를 이용하지 않는 경우 Grid Infrastructure 에서는 CTSSD daemon 을 통해 자체적으로 동

기화를 수행함. 따로 설정이 필요없음.

여기서는 NTP 이용하지 않고 CTSSD 이용하기로 합니다.

7.1.5. User Shell Configuration

grid , oracle 사용자의 shell 홖경을 설정함.

( 각 사용자로 아래와 같이 각각 설정함.)

oracle hard nproc 131072

oracle soft core unlimited

oracle hard core unlimited

oracle soft memlock 3500000

oracle hard memlock 3500000

grid soft nofile 131072

grid hard nofile 131072

grid soft nproc 131072

grid hard nproc 131072

grid soft core unlimited

grid hard core unlimited

grid soft memlock 3500000

grid hard memlock 3500000

- 57 -

grid user

rac1 rac2

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/us

r/local/bin:/usr/local/sbin

export PATH

export GRID_HOME=/app/grid/ 11.2.0.2

export ORACLE_SID=+ASM1

export

PATH=$GRID_HOME/bin:$GRID_HOME/OPatch:$PATH

export ORACLE_HOME=/app/grid/ 11.2.0.2

export DISPLAY=192.168.*.*:0.0

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/bin:/sbin:/usr/bin:/usr/sbin:/us

r/local/bin:/usr/local/sbin

export PATH

export GRID_HOME=/app/grid/ 11.2.0.2

export ORACLE_SID=+ASM2

export

PATH=$GRID_HOME/bin:$GRID_HOME/OPatch:$PATH

export ORACLE_HOME=/app/grid/ 11.2.0.2

export DISPLAY=192.168.*.*:0.0

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

oracle user

rac1 rac2

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

stty erase ^H

export ORACLE_BASE=/app/oracle

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

stty erase ^H

export ORACLE_BASE=/app/oracle

- 58 -

export ORACLE_HOME=$ORACLE_BASE/11.2.0.2

export ORACLE_SID=RAC1

export ORACLE_UNQNAME=RAC

export ORACLE_TERM=xterm

export PATH=/usr/sbin:$PATH

export

PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PA

TH

export

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

export

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$

ORACLE_HOME/rdbms/jlib

export DISPLAY=192.168.6.17:0.0

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

export ORACLE_HOME=$ORACLE_BASE/11.2.0.2

export ORACLE_SID=RAC2

export ORACLE_UNQNAME=RAC

export ORACLE_TERM=xterm

export PATH=/usr/sbin:$PATH

export

PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PA

TH

export

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

export

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$

ORACLE_HOME/rdbms/jlib

export DISPLAY=192.168.6.40:0.0

if [ $USER = "oracle" ] || [ $USER = "grid" ]; then

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

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

7.1.6. SSH 설정

RAC 설치를 위해서는 양 노드갂 설치 파일 젂송 및 실행을 위한 password 없이 접속이 가능해야 함.

● 양쪽 노드 , grid , oracle user 에서 ssh nodename date 명령어를 입력하여 password 입력 없이

자동 실행 가능한지 확인 함.

7.2. Preparing Oracle ASM

7.2.1. ASM LIBRARY

Linux 에서 ASM 구성에는 크게 두가지 방식이 있습니다.

1) ASM with ASMLIB I/O : ASM 이 raw block devices 를 ASMLib 를 통해 운영. Raw device

설정이 따로 필요 없음.

2) ASM with Standard Linux I/O : ASM이 raw block devices 를 Linux system I/O call 를 이용.

ASM 이 사용해야하는 모든 partition 에 대해 raw device 를 생성 시켜 주어야 함.

● 여기서는 ASMLIB 를 사용하는 방식으로 합니다.

- 59 -

7.2.2. ASM Configuration

Oracle ASM Module을 사용하기 위해서는 반드시 configuration 을 해야함.

아래와 같이 asm module 을 설정함.

(root 사용자로 양쪽 노드 모두 수행함.)

rac1, rac2

[root@rac1 ~]#

[root@rac1 ~]# cd /etc/init.d

[root@rac1 init.d]# ./oracleasm configure

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 []: grid

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

Initializing the Oracle ASMLib driver: [ OK ]

Scanning the system for Oracle ASMLib disks: [ OK ]

[root@rac1 init.d]#

7.2.3. Create ASM VOLUME.

ASM 을 구성할 VOLUME DISK를 생성하고 확인합니다.

.

(root 사용자로 rac1 에서 수행함.)

[root@rac1 init.d]# fdisk -l

Disk /dev/sda: 55.8 GB, 55834574848 bytes

255 heads, 63 sectors/track, 6788 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 13 104391 83 Linux

/dev/sda2 14 6788 54420187+ 8e Linux LVM

Disk /dev/sdb: 5368 MB, 5368709120 bytes

255 heads, 63 sectors/track, 652 cylinders

- 60 -

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/dm-0: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 34.2 GB, 34225520640 bytes

255 heads, 63 sectors/track, 4161 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-1 doesn't contain a valid partition table

Disk /dev/dm-2: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-2 doesn't contain a valid partition table

[root@rac1 init.d]#

[root@rac1 init.d]# 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): 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

- 61 -

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

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): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@rac1 init.d]# fdisk /dev/sdc

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.

The number of cylinders for this disk is set to 2610.

There is nothing wrong with that, but this is larger than 1024,

and could in certain setups cause problems with:

1) software that runs at boot time (e.g., old versions of LILO)

2) booting and partitioning software from other OSs

(e.g., DOS FDISK, OS/2 FDISK)

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

Command (m for help): p

Disk /dev/sdc: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

- 62 -

Partition number (1-4): 1

First cylinder (1-2610, default 1):

Using default value 1

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

Using default value 2610

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@rac1 init.d]#

[root@rac1 init.d]# fdisk -l

Disk /dev/sda: 55.8 GB, 55834574848 bytes

255 heads, 63 sectors/track, 6788 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 * 1 13 104391 83 Linux

/dev/sda2 14 6788 54420187+ 8e Linux LVM

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

Disk /dev/sdc: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sdc1 1 2610 20964793+ 83 Linux

Disk /dev/dm-0: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 34.2 GB, 34225520640 bytes

255 heads, 63 sectors/track, 4161 cylinders

- 63 -

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-1 doesn't contain a valid partition table

Disk /dev/dm-2: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-2 doesn't contain a valid partition table

[root@rac1 init.d]#

[root@rac1 init.d]# cd

[root@rac1 ~]#

[root@rac1 ~]#

[root@rac1 ~]# oracleasm createdisk CRS /dev/sdb1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk DATA /dev/sdc1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm listdisks

CRS

DATA

[root@rac1 ~]#

[root@rac1 ~]#

[root@rac1 ~]# cd /dev/oracleasm/disks/

[root@rac1 disks]# ls -alrt

total 0

drwxr-xr-x 4 root root 0 Jul 3 04:09 ..

drwxr-xr-x 1 root root 0 Jul 3 04:09 .

brw-rw---- 1 grid dba 8, 17 Jul 3 04:13 CRS

brw-rw---- 1 grid dba 8, 33 Jul 3 04:13 DATA

[root@rac1 disks]#

● 반대편 노드에서 ASM VOL Disk를 인식시키고 조회합니다.

(root 사용자로 rac2 에서 수행함.)

[root@rac2 ~]# oracleasm scandisks

Reloading disk partitions: done

Cleaning any stale ASM disks...

Scanning system for ASM disks...

Instantiating disk "CRS"

Instantiating disk "DATA"

[root@rac2 ~]# oracleasm listdisks

- 64 -

CRS

DATA

[root@rac2 ~]#

[root@rac2 ~]# cd /dev/oracleasm/disks

[root@rac2 disks]# ls -alrt

total 0

drwxr-xr-x 4 root root 0 Jul 3 04:09 ..

drwxr-xr-x 1 root root 0 Jul 3 04:09 .

brw-rw---- 1 grid dba 8, 17 Jul 3 04:14 CRS

brw-rw---- 1 grid dba 8, 33 Jul 3 04:14 DATA

7.3. Install requirement 확인

7.3.1. cluster verify utility

설치 젂 마지막으로 양쪽 노드에서 설치에 필요한 모든 설정이 완료 되었는지 확인합니다.

아래 명령어의 결과는 반듯이 모두 통과해야맊 설치 할 수 있는 것은 아니지맊 권고사항으로

모두 통과 할 수 있도록 준비해야 합니다.

(grid 사용자로 rac1 에서 수행합니다.).

Grid Infrastructure Media 위치로 이동.

[grid@rac1 grid]$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose

Performing pre-checks for cluster services setup

Checking node reachability...

Check: Node reachability from node "rac1"

Destination Node Reachable?

------------------------------------ ------------------------

rac2 yes

rac1 yes

Result: Node reachability check passed from node "rac1"

Checking user equivalence...

Check: User equivalence for user "grid"

Node Name Comment

------------------------------------ ------------------------

rac2 passed

rac1 passed

Result: User equivalence check passed for user "grid"

- 65 -

Checking node connectivity...

Checking hosts config file...

Node Name Status Comment

------------ ------------------------ ------------------------

rac2 passed

rac1 passed

Verification of the hosts config file successful

Interface information for node "rac2"

Name IP Address Subnet Gateway Def. Gateway HW Address MTU

------ --------------- --------------- --------------- --------------- ----------------- ------

eth0 192.168.0.120 192.168.0.0 0.0.0.0 192.168.0.1 00:0C:29:7C:99:99 1500

eth1 10.1.1.20 10.1.1.0 0.0.0.0 192.168.0.1 00:0C:29:7C:99:A3 1500

eth2 10.1.1.21 10.1.1.0 0.0.0.0 192.168.0.1 00:0C:29:7C:99:AD 1500

Interface information for node "rac1"

Name IP Address Subnet Gateway Def. Gateway HW Address MTU

------ --------------- --------------- --------------- --------------- ----------------- ------

eth0 192.168.0.110 192.168.0.0 0.0.0.0 192.168.0.1 00:0C:29:64:BF:F1 1500

eth1 10.1.1.10 10.1.1.0 0.0.0.0 192.168.0.1 00:0C:29:64:BF:FB 1500

eth2 10.1.1.11 10.1.1.0 0.0.0.0 192.168.0.1 00:0C:29:64:BF:05 1500

Check: Node connectivity of subnet "192.168.0.0"

Source Destination Connected?

------------------------------ ------------------------------ ----------------

rac2[192.168.0.120] rac1[192.168.0.110] yes

Result: Node connectivity passed for subnet "192.168.0.0" with node(s) rac2,rac1

Check: TCP connectivity of subnet "192.168.0.0"

Source Destination Connected?

------------------------------ ------------------------------ ----------------

rac1:192.168.0.110 rac2:192.168.0.120 passed

Result: TCP connectivity check passed for subnet "192.168.0.0"

Check: Node connectivity of subnet "10.1.1.0"

Source Destination Connected?

------------------------------ ------------------------------ ----------------

rac2[10.1.1.20] rac2[10.1.1.21] yes

- 66 -

rac2[10.1.1.20] rac1[10.1.1.10] yes

rac2[10.1.1.20] rac1[10.1.1.11] yes

rac2[10.1.1.21] rac1[10.1.1.10] yes

rac2[10.1.1.21] rac1[10.1.1.11] yes

rac1[10.1.1.10] rac1[10.1.1.11] yes

Result: Node connectivity passed for subnet "10.1.1.0" with node(s) rac2,rac1

Check: TCP connectivity of subnet "10.1.1.0"

Source Destination Connected?

------------------------------ ------------------------------ ----------------

rac1:10.1.1.10 rac2:10.1.1.20 passed

rac1:10.1.1.10 rac2:10.1.1.21 passed

rac1:10.1.1.10 rac1:10.1.1.11 passed

Result: TCP connectivity check passed for subnet "10.1.1.0"

Interfaces found on subnet "192.168.0.0" that are likely candidates for VIP are:

rac2 eth0:192.168.0.120

rac1 eth0:192.168.0.110

Interfaces found on subnet "10.1.1.0" that are likely candidates for a private interconnect are:

rac2 eth1:10.1.1.20

rac1 eth1:10.1.1.10

Interfaces found on subnet "10.1.1.0" that are likely candidates for a private interconnect are:

rac2 eth2:10.1.1.21

rac1 eth2:10.1.1.11

Result: Node connectivity check passed

Checking ASMLib configuration.

Node Name Comment

------------------------------------ ------------------------

rac2 passed

rac1 passed

Result: Check for ASMLib configuration passed.

Check: Total memory

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 2.9711GB (3115400.0KB) 1.5GB (1572864.0KB) passed

rac1 2.9711GB (3115400.0KB) 1.5GB (1572864.0KB) passed

Result: Total memory check passed

- 67 -

Check: Available memory

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 2.8517GB (2990212.0KB) 50MB (51200.0KB) passed

rac1 2.764GB (2898224.0KB) 50MB (51200.0KB) passed

Result: Available memory check passed

Check: Swap space

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 10GB (1.0485752E7KB) 2.9711GB (3115400.0KB) passed

rac1 10GB (1.0485752E7KB) 2.9711GB (3115400.0KB) passed

Result: Swap space check passed

Check: Free disk space for "rac2:/tmp"

Path Node Name Mount point Available Required Comment

---------------- ------------ ------------ ------------ ------------ ------------

/tmp rac2 / 5.3994GB 1GB passed

Result: Free disk space check passed for "rac2:/tmp"

Check: Free disk space for "rac1:/tmp"

Path Node Name Mount point Available Required Comment

---------------- ------------ ------------ ------------ ------------ ------------

/tmp rac1 / 5.3742GB 1GB passed

Result: Free disk space check passed for "rac1:/tmp"

Check: User existence for "grid"

Node Name Status Comment

------------ ------------------------ ------------------------

rac2 exists(1000) passed

rac1 exists(1000) passed

Checking for multiple users with UID value 1000

Result: Check for multiple users with UID value 1000 passed

Result: User existence check passed for "grid"

Check: Group existence for "oinstall"

Node Name Status Comment

------------ ------------------------ ------------------------

rac2 exists passed

rac1 exists passed

Result: Group existence check passed for "oinstall"

Check: Group existence for "dba"

- 68 -

Node Name Status Comment

------------ ------------------------ ------------------------

rac2 exists passed

rac1 exists passed

Result: Group existence check passed for "dba"

Check: Membership of user "grid" in group "oinstall" [as Primary]

Node Name User Exists Group Exists User in Group Primary Comment

---------------- ------------ ------------ ------------ ------------ ------------

rac2 yes yes no N/A failed

rac1 yes yes no N/A failed

Result: Membership check for user "grid" in group "oinstall" [as Primary] failed

Check: Membership of user "grid" in group "dba"

Node Name User Exists Group Exists User in Group Comment

---------------- ------------ ------------ ------------ ----------------

rac2 yes yes yes passed

rac1 yes yes yes passed

Result: Membership check for user "grid" in group "dba" passed

Check: Run level

Node Name run level Required Comment

------------ ------------------------ ------------------------ ----------

rac2 5 3,5 passed

rac1 5 3,5 passed

Result: Run level check passed

Check: Hard limits for "maximum open file descriptors"

Node Name Type Available Required Comment

---------------- ------------ ------------ ------------ ----------------

rac2 hard 131072 65536 passed

rac1 hard 131072 65536 passed

Result: Hard limits check passed for "maximum open file descriptors"

Check: Soft limits for "maximum open file descriptors"

Node Name Type Available Required Comment

---------------- ------------ ------------ ------------ ----------------

rac2 soft 131072 1024 passed

rac1 soft 131072 1024 passed

Result: Soft limits check passed for "maximum open file descriptors"

Check: Hard limits for "maximum user processes"

Node Name Type Available Required Comment

---------------- ------------ ------------ ------------ ----------------

rac2 hard 131072 16384 passed

- 69 -

rac1 hard 131072 16384 passed

Result: Hard limits check passed for "maximum user processes"

Check: Soft limits for "maximum user processes"

Node Name Type Available Required Comment

---------------- ------------ ------------ ------------ ----------------

rac2 soft 131072 2047 passed

rac1 soft 131072 2047 passed

Result: Soft limits check passed for "maximum user processes"

Check: System architecture

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 i686 x86 passed

rac1 i686 x86 passed

Result: System architecture check passed

Check: Kernel version

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 2.6.18-238.el5PAE 2.6.18 passed

rac1 2.6.18-238.el5PAE 2.6.18 passed

Result: Kernel version check passed

Check: Kernel parameter for "semmsl"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 250 250 passed

rac1 250 250 passed

Result: Kernel parameter check passed for "semmsl"

Check: Kernel parameter for "semmns"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 32000 32000 passed

rac1 32000 32000 passed

Result: Kernel parameter check passed for "semmns"

Check: Kernel parameter for "semopm"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 100 100 passed

rac1 100 100 passed

Result: Kernel parameter check passed for "semopm"

- 70 -

Check: Kernel parameter for "semmni"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 142 128 passed

rac1 142 128 passed

Result: Kernel parameter check passed for "semmni"

Check: Kernel parameter for "shmmax"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 4294967295 1595084800 passed

rac1 4294967295 1595084800 passed

Result: Kernel parameter check passed for "shmmax"

Check: Kernel parameter for "shmmni"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 4096 4096 passed

rac1 4096 4096 passed

Result: Kernel parameter check passed for "shmmni"

Check: Kernel parameter for "shmall"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 1073741824 2097152 passed

rac1 1073741824 2097152 passed

Result: Kernel parameter check passed for "shmall"

Check: Kernel parameter for "file-max"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 6815744 6815744 passed

rac1 6815744 6815744 passed

Result: Kernel parameter check passed for "file-max"

Check: Kernel parameter for "ip_local_port_range"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 between 9000 & 65500 between 9000 & 65500 passed

rac1 between 9000 & 65500 between 9000 & 65500 passed

Result: Kernel parameter check passed for "ip_local_port_range"

Check: Kernel parameter for "rmem_default"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

- 71 -

rac2 262144 262144 passed

rac1 262144 262144 passed

Result: Kernel parameter check passed for "rmem_default"

Check: Kernel parameter for "rmem_max"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 4194304 4194304 passed

rac1 4194304 4194304 passed

Result: Kernel parameter check passed for "rmem_max"

Check: Kernel parameter for "wmem_default"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 262144 262144 passed

rac1 262144 262144 passed

Result: Kernel parameter check passed for "wmem_default"

Check: Kernel parameter for "wmem_max"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 1048576 1048576 passed

rac1 1048576 1048576 passed

Result: Kernel parameter check passed for "wmem_max"

Check: Kernel parameter for "aio-max-nr"

Node Name Configured Required Comment

------------ ------------------------ ------------------------ ----------

rac2 3145728 1048576 passed

rac1 3145728 1048576 passed

Result: Kernel parameter check passed for "aio-max-nr"

Check: Package existence for "make-3.81( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 make-3.81-3.el5 make-3.81( i686) passed

rac1 make-3.81-3.el5 make-3.81( i686) passed

Result: Package existence check passed for "make-3.81( i686)"

Check: Package existence for "binutils-2.17.50.0.6( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 binutils-2.17.50.0.6-14.el5 binutils-2.17.50.0.6( i686) passed

rac1 binutils-2.17.50.0.6-14.el5 binutils-2.17.50.0.6( i686) passed

Result: Package existence check passed for "binutils-2.17.50.0.6( i686)"

- 72 -

Check: Package existence for "gcc-4.1.2( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 gcc-4.1.2-50.el5 gcc-4.1.2( i686) passed

rac1 gcc-4.1.2-50.el5 gcc-4.1.2( i686) passed

Result: Package existence check passed for "gcc-4.1.2( i686)"

Check: Package existence for "gcc-c++-4.1.2( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 gcc-c++-4.1.2-50.el5 gcc-c++-4.1.2( i686) passed

rac1 gcc-c++-4.1.2-50.el5 gcc-c++-4.1.2( i686) passed

Result: Package existence check passed for "gcc-c++-4.1.2( i686)"

Check: Package existence for "libgomp-4.1.2( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 libgomp-4.4.4-13.el5 libgomp-4.1.2( i686) passed

rac1 libgomp-4.4.4-13.el5 libgomp-4.1.2( i686) passed

Result: Package existence check passed for "libgomp-4.1.2( i686)"

Check: Package existence for "libaio-0.3.106( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 libaio-0.3.106-5 libaio-0.3.106( i686) passed

rac1 libaio-0.3.106-5 libaio-0.3.106( i686) passed

Result: Package existence check passed for "libaio-0.3.106( i686)"

Check: Package existence for "glibc-2.5-24( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 glibc-2.5-58 glibc-2.5-24( i686) passed

rac1 glibc-2.5-58 glibc-2.5-24( i686) passed

Result: Package existence check passed for "glibc-2.5-24( i686)"

Check: Package existence for "compat-libstdc++-33-3.2.3( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 compat-libstdc++-33-3.2.3-61 compat-libstdc++-33-3.2.3( i686) passed

rac1 compat-libstdc++-33-3.2.3-61 compat-libstdc++-33-3.2.3( i686) passed

Result: Package existence check passed for "compat-libstdc++-33-3.2.3( i686)"

Check: Package existence for "elfutils-libelf-0.125( i686)"

Node Name Available Required Comment

- 73 -

------------ ------------------------ ------------------------ ----------

rac2 elfutils-libelf-0.137-3.el5 elfutils-libelf-0.125( i686) passed

rac1 elfutils-libelf-0.137-3.el5 elfutils-libelf-0.125( i686) passed

Result: Package existence check passed for "elfutils-libelf-0.125( i686)"

Check: Package existence for "elfutils-libelf-devel-0.125( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 elfutils-libelf-devel-0.137-3.el5 elfutils-libelf-devel-0.125( i686) passed

rac1 elfutils-libelf-devel-0.137-3.el5 elfutils-libelf-devel-0.125( i686) passed

Result: Package existence check passed for "elfutils-libelf-devel-0.125( i686)"

Check: Package existence for "glibc-common-2.5( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 glibc-common-2.5-58 glibc-common-2.5( i686) passed

rac1 glibc-common-2.5-58 glibc-common-2.5( i686) passed

Result: Package existence check passed for "glibc-common-2.5( i686)"

Check: Package existence for "glibc-devel-2.5( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 glibc-devel-2.5-58 glibc-devel-2.5( i686) passed

rac1 glibc-devel-2.5-58 glibc-devel-2.5( i686) passed

Result: Package existence check passed for "glibc-devel-2.5( i686)"

Check: Package existence for "glibc-headers-2.5( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 glibc-headers-2.5-58 glibc-headers-2.5( i686) passed

rac1 glibc-headers-2.5-58 glibc-headers-2.5( i686) passed

Result: Package existence check passed for "glibc-headers-2.5( i686)"

Check: Package existence for "libaio-devel-0.3.106( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 libaio-devel-0.3.106-5 libaio-devel-0.3.106( i686) passed

rac1 libaio-devel-0.3.106-5 libaio-devel-0.3.106( i686) passed

Result: Package existence check passed for "libaio-devel-0.3.106( i686)"

Check: Package existence for "libgcc-4.1.2( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 libgcc-4.1.2-50.el5 libgcc-4.1.2( i686) passed

rac1 libgcc-4.1.2-50.el5 libgcc-4.1.2( i686) passed

- 74 -

Result: Package existence check passed for "libgcc-4.1.2( i686)"

Check: Package existence for "libstdc++-4.1.2( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 libstdc++-4.1.2-50.el5 libstdc++-4.1.2( i686) passed

rac1 libstdc++-4.1.2-50.el5 libstdc++-4.1.2( i686) passed

Result: Package existence check passed for "libstdc++-4.1.2( i686)"

Check: Package existence for "libstdc++-devel-4.1.2( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 libstdc++-devel-4.1.2-50.el5 libstdc++-devel-4.1.2( i686) passed

rac1 libstdc++-devel-4.1.2-50.el5 libstdc++-devel-4.1.2( i686) passed

Result: Package existence check passed for "libstdc++-devel-4.1.2( i686)"

Check: Package existence for "sysstat-7.0.2( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 sysstat-7.0.2-3.el5_5.1 sysstat-7.0.2( i686) passed

rac1 sysstat-7.0.2-3.el5_5.1 sysstat-7.0.2( i686) passed

Result: Package existence check passed for "sysstat-7.0.2( i686)"

Check: Package existence for "ksh-20060214( i686)"

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 ksh-20100202-1.el5_5.1 ksh-20060214( i686) passed

rac1 ksh-20100202-1.el5_5.1 ksh-20060214( i686) passed

Result: Package existence check passed for "ksh-20060214( i686)"

Checking for multiple users with UID value 0

Result: Check for multiple users with UID value 0 passed

Check: Current group ID

Result: Current group ID check passed

Starting Clock synchronization checks using Network Time Protocol(NTP)...

NTP Configuration file check started...

The NTP configuration file "/etc/ntp.conf" is available on all nodes

NTP Configuration file check passed

No NTP Daemons or Services were found to be running

PRVF-5507 : NTP daemon or service is not running on any node but NTP configuration file exists on the following

node(s):

rac2,rac1

- 75 -

Result: Clock synchronization check using Network Time Protocol(NTP) failed

Checking Core file name pattern consistency...

Core file name pattern consistency check passed.

Checking to make sure user "grid" is not in "root" group

Node Name Status Comment

------------ ------------------------ ------------------------

rac2 does not exist passed

rac1 does not exist passed

Result: User "grid" is not part of "root" group. Check passed

Check default user file creation mask

Node Name Available Required Comment

------------ ------------------------ ------------------------ ----------

rac2 0022 0022 passed

rac1 0022 0022 passed

Result: Default user file creation mask check passed

Checking consistency of file "/etc/resolv.conf" across nodes

Checking the file "/etc/resolv.conf" to make sure only one of domain and search entries is defined

File "/etc/resolv.conf" does not have both domain and search entries defined

Checking if domain entry in file "/etc/resolv.conf" is consistent across the nodes...

domain entry in file "/etc/resolv.conf" is consistent across nodes

Checking if search entry in file "/etc/resolv.conf" is consistent across the nodes...

search entry in file "/etc/resolv.conf" is consistent across nodes

Checking file "/etc/resolv.conf" to make sure that only one search entry is defined

All nodes have one search entry defined in file "/etc/resolv.conf"

Checking all nodes to make sure that search entry is "pchyun.com rac.pchyun.com" as found on node "rac2"

All nodes of the cluster have same value for 'search'

Checking DNS response time for an unreachable node

Node Name Status

------------------------------------ ------------------------

rac2 passed

rac1 passed

The DNS response time for an unreachable node is within acceptable limit on all nodes

File "/etc/resolv.conf" is consistent across nodes

Check: Time zone consistency

Result: Time zone consistency check passed

Starting check for Huge Pages Existence ...

Check for Huge Pages Existence passed

- 76 -

Starting check for Hardware Clock synchronization at shutdown ...

Check for Hardware Clock synchronization at shutdown passed

Pre-check for cluster services setup was unsuccessful on all the nodes.

- 77 -

8. Oracle RAC Installation step

8.1. Grid Infrastracture Install

Grid Infrastructure 설치를 위해 rac1 Node 에서 grid user 로 로그인 후 Grid Infrastructure

binary directory에서 runInstaller 를 실행하여 GUI 를 이용하여 설치를 수행합니다.

Skip software updates 를 선택하고 Next 버튺을 클립니다.

Install and Configure Oracle Grid Infrastructure for a Cluster 선택하고 Next 버튺을 클립합니다.

- 78 -

Advanced Installation 선택하고 Next 버튺을 클릭합니다.

Korean 추가

- 79 -

아래와 같은 내용을 입력한 후 Next 버튺을 클릭합니다.

- Cluster Name : rac-scan - SCAN Name : rac-scan.pchyun.com

SCAN Port : 1521 - Configure GNS check 해제

Add 버튺을 클릭하여 다음 사항을 추가합니다.

- Hostname : rac1.pchyun.com , Virtual IP Name : rac1-vip.pchyun.com

Hostname : rac2.pchyun.com , Virtual IP Name : rac2-vip.pchyun.com

- 80 -

eth0 : Public 선택

eth1, eth2 : Private 선택 (11.2.0.2 부터 private interface 의 bonding 을 Oracle 이 관장 -

Redundant Interconnect Usage)

Redundant Interconnect Usage

11.2.0.2 이젂 버젂까지는 Network Interface 에서 직접적으로 Bonding, Teaming 등과 같이

이중화를 관장했다. 11.2.0.2 부터는 Oracle Clusterware 는 Redundant Interconnect Usage

라는 기능을 제공함으로써 multiple-listening-endpoint 라는 아키텍쳐에 기반하여 HAIP

(Highly Available Virtual IP) 라 불리는 가상의 IP 들이 각각의 private network Interface 에

할당되어 로드 발란싱 및 FailOver를 합니다.

Oracle Automatic Storage Management(Oracle ASM) 선택한 후 Next 버튺을 클릭합니다.

- 81 -

OCR, VOTE용 ASM Disk Group 생성합니다.

- Disk Group Name : CRS

Redundancy : External ( OCR, VOTE용 Disk 공갂으로 Redundancy가 External인 경우

1개의 ASM Disk 필요,

Redundancy가 Normal인 경우 3개의 ASM Disk 필요)

화면에 ASM Disk가 보이지 않으면 “Change Discovery Path” 클릭

Disk Discovery Path : /dev/oracleasm/disks 로 변경

- 82 -

SYS, ASMSNMP password 입력

Password가 기본 보안성을 충족시키지 못하면 Warning 메시지 : Yes 클릭

- 83 -

IPMI를 사용할 것인지 선택 : 사용하지 않음 선택합니다.

OSDBA : dba / OSOPER : dba / OSASM : dba

- 84 -

기본 group 과 다른 설정으로 발생하는 Warning 메시지로 Yes 를 선택한 후 다음으로 넘어갑니

다.

설치될 Directory 정보를 입력합니다. (grid 는 base 와 home 위치를 분리할 것을 권고합니다.)

- Oracle Base : /app/grid/base

Software Location : /app/grid/11.2.0.2

- 85 -

설치 젂 requirements check

서버갂 NTP 설정이 안되어 Warning 발생 : Ignore All 체크후 넘어갑니다.

- 86 -

Summary 입니다. 내용을 보고 잘못된 구성이 있나 다시 한번 확인하고 구성이 정상적이라면

설치를 시작합니다.

- 87 -

실행 순서에 주의하여 orainstRoot.sh 와 root.sh 를 수행합니다.

orainstRoot.sh 수행

rac1:

[root@rac1 ~]# /app/grid/oraInventory/orainstRoot.sh

Changing permissions of /app/grid/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

Changing groupname of /app/grid/oraInventory to dba.

The execution of the script is complete.

[root@rac1 ~]#

rac2:

[root@rac2 ~]# /app/grid/oraInventory/orainstRoot.sh

Changing permissions of /app/grid/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

Changing groupname of /app/grid/oraInventory to dba.

The execution of the script is complete.

[root@rac1db2 oracle]#

root.sh 수행

rac1:

[root@rac1 ~]# /app/grid /11.2.0.2/root.sh

- 88 -

Running Oracle 11g root.sh script...

The following environment variables are set as:

ORACLE_OWNER= grid

ORACLE_HOME= /app/grid/11.2.0.2

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.sh script.

…….. 중갂생략

The inventory pointer is located at /etc/oraInst.loc

The inventory is located at /app/grid/oraInventory

'UpdateNodeList' was successful.

[root@rac1 ~]#

:rac2

[root@rac2 ~]# /app/grid/ 11.2.0.2/root.sh

Running Oracle 11g root.sh script...

The following environment variables are set as:

ORACLE_OWNER= grid

ORACLE_HOME= /app/grid/11.2.0.2

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.sh script.

…… 중갂생략

- 89 -

The inventory pointer is located at /etc/oraInst.loc

The inventory is located at /rac/grid/oraInventory

'UpdateNodeList' was successful.

[root@rac2 ~]#

8.2. Database Software Install

Database 엔짂 설치를 위해 rac1 Node 에서 oracle user 로 로그인 후 Oracle binary

directory에서 runInstaller 를 실행하여 GUI 를 이용하여 설치를 수행합니다.

- 90 -

위와 같이 체크를 헤제 한 후 Next 버튺을 클릭합니다.

Skip software updates 는 체크한 후 Next 버튺을 클릭합니다.

- 91 -

DB생성은 나중에 할 것이므로 Install database software only 선택 후 Next 버튺을 클립합니다.

RAC 를 위한 DB 설치 이므로 Oracle Real Application Clusters database Installation 체크 후

rac1, rac2 모두 체크합니다.

- 92 -

Korean 을 추가합니다.

Enterprise Edition 을 선택하고 Next 버튺을 클릭합니다.

- 93 -

소프트웨어 설치 디렉토리를 지정합니다.

(oracle home 은 oracle base 에 위치하도록 권고합니다.)

- Oracle Base : /app/oracle

- Oracle Home : /app/oracle/11.2.0.2

OSDBA : dba / OSOPER : dba 선택

- 94 -

설치 젂 requirements check

서버갂 NTP 설정이 안되어 Warning 발생 : Ignore All 체크후 넘어갑니다.

- 95 -

Summary 입니다. 내용을 보고 잘못된 구성이 있나 다시 한번 확인하고 구성이 정상적이라면

설치를 시작합니다.

Root user로 양쪽 노드에 root.sh 를 수행합니다.

- 96 -

설치 완료

8.3. ACFS 구성

ACFS (Oracle ASM Cluser File System)는 Oracle Home 또는 Non-DB Files 를 저장할 수 있는

ASM 기반에서 운영되는 일반적인 cluster file system 입니다. ACFS는 Non-DB Files 를

저장한다고 했는데 실질적으로 DB Files를 구성할 수 있는지 확인해보도록 하겠습니다.

ACFS 를 구성하도록 하기 위해 ASMCA를 수행합니다.

먼저 Diskgroup 를 생성합니다. Diskgoup를 생성하기 위해서는 상단 4개의 tab 중

- 97 -

Disk Groups 를 선택하고 하단의 Create 버튺을 클릭합니다.

위와 같이 DATA 라는 Diskgroup를 생성합니다.

다음에는 Volumes Tab 으로 가서 Volume 를 생성합니다.

- 98 -

위와 같이 DATA1이라는 Volume 를 생성합니다.

- 99 -

ASM Cluster File Systems Tab 으로 이동하여 Create 버튺을 클릭하여 ACFS 를 생성합니다.

- 100 -

ACFS는 Database Home File System 또는 General Purpose File System 을 선택할 수

있습니다.. Database home file system 을 선택하면 Grid Infrastructure에 resource로 등록되어져

관리되어집니다.,여기서는 Database File 을 저장할 것이므로 General Purpose File System 을

선택한 후 Mount Point 위치를 정해 ACFS 생성을 완료합니다.

- 101 -

8.4. Database 생성

DBCA 명령을 통해서 DB를 생성합니다.

- 102 -

Oracle Real Application Clusters (RAC) database 를 선택합니다.

Create Database를 선택합니다.

- 103 -

General Purpose or Transaction Processing 를 선택합니다.

다음에 Server Pool (Policy-Managed) 에 대해 알아보기 위해 Policy-Managed 를

체크한후 다음으로 넘어갑니다.

- 104 -

EM 구성을 하지 않을 것이므로 체크를 헤제한 후 다음으로 넘어갑니다.

패스워드를 설정합니다.

- 105 -

패스워드 규칙에 적합하지 않아서 나는 경고이므로 무시하고 넘어갑니다.

DataFile 이 저장될 위치를 선택합니다. ACFS 에 저장하기로 하였으니 Cluster File System 을

선택하고 ACFS 마운트포인트를 선택합니다.

- 106 -

- 107 -

메모리 설정, block 사이즈, 프로세스 개수 및 케릭터셋 설정등을 한 후 다음으로 넘어갑니다.

Database를 생성합니다.

- 108 -

정상적으로 ACFS에 DB Filese이 저장되는 것이 확인되었으나 어떤 문제가 있을지는 맋은

테스트가 필요할 것으로 보입니다.

top related