* Step1 (http://ann-moon.tistory.com/27) 에서 VM에 설치한 RHEL5를 가지고 node1 셋업을 해본다.

* 전체 순서는 http://ann-moon.tistory.com/26 참고!


1. 네트워크 체크

- 본인은 OS설치 시 network 설정에서 미리 정해놓은 IP로 모두 변경 후 설치했다 (Statically set IP address 로 선택해서..). 만약 자동으로 IP를 받기를 선택한 후 설치했다면 아래와 같이 네트웍 설정을 미리 해주어야 한다. 

자세한 사항은 아래를 참고!

네트워크 설정 더보기


- 모든 설정이 정상적이라면 네트워크가 잘 되는지 외부로 ping 테스트. 




2. 서비스 정리

- Oracle RAC 구성에 불필요한 서비스들을 모두 off 시킨다.

[root@rac1 ~]# chkconfig --level 123456 xinetd off

[root@rac1 ~]# chkconfig --level 123456 xinetd off

[root@rac1 ~]# chkconfig --level 123456 cups off

[root@rac1 ~]# chkconfig --level 123456 cups-config-daemon off

[root@rac1 ~]# chkconfig --level 123456 smartd off

[root@rac1 ~]# chkconfig --level 123456 isdn off

[root@rac1 ~]# chkconfig --level 123456 iptables off




3. 설정파일 셋팅

1) /etc/hosts 변경

[root@rac1 ~]# vi /etc/hosts


127.0.0.1       localhost.localdomain localhost         ## ---> 요 부분에 있던 rac1 는 삭제.

::1             localhost6.localdomain6 localhost6


# Public IP - (eth0)

192.168.137.129         rac1

192.168.137.130         rac2


# Private IP - (eth1)

10.10.10.10             rac1-priv

10.10.10.11             rac2-priv


# Public Virtual IP (VIP) addresses for - (eth0)

192.168.137.200         rac1-vip

192.168.137.201         rac2-vip


# Grid SCAN

192.168.137.100         rac-cluster-scan


2)  /etc/sysctl.conf 변경

커널 메개변수를 설정 한다. shmmax, shmall 설정은 이미 RHEL 5 버전에 설정 되어있으므로 따로 추가해 줄 필요는 없다.

[root@rac1 ~]# vi /etc/sysctl.conf


# Controls the Oracle Settings

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.wmem_max = 1048576

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

fs.file-max = 6815744

fs.aio-max-nr = 1048576

- 적용. 

3)  /etc/security/limits.conf 

[root@rac1 ~]# vi /etc/security/limits.conf

## 아래 부분 추가

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

4)  /etc/pam.d/login

[root@rac1 ~]# vi /etc/pam.d/login

## 아래 부분 추가

session       required       pam_limits.so

5) /etc/profile 설정

[root@rac1 ~]# vi /etc/profile

## 아래 부분 중간에 삽입


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

6) /etc/modprobe.conf

[root@rac1 ~]# vi /etc/modprobe.conf

## 아래 부분 추가

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180


## 적용

[root@rac1 ~]# modprobe -v hangcheck-timer

insmod /lib/modules/2.6.18-128.el5/kernel/drivers/char/hangcheck-timer.ko hangcheck_tick=30 hangcheck_margin=180

[root@rac1 ~]#

7) /etc/rc.local

[root@rac1 ~]# vi /etc/rc.local

## 아래 부분 추가

/sbin/modprobe hangcheck-timer

rdate -s 203.248.240.140

8) NTP Service 파일 설정

[root@rac1 ~]# vi /etc/sysconfig/ntpd

## 기존의 OPTIONS 를 주석처리하고 아래 부분 추가

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

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


## ntp 서비스 재시작

[root@rac1 ~]# service ntpd restart

Shutting down ntpd:                                        [  OK  ]

ntpd: Synchronizing with time server:                      [  OK  ]

Starting ntpd:                                             [  OK  ]

ntp 서비스가 잘 떠있나 서비스 확인을 해본다.



4. RPM 설치

- rpm query 옵션 중 queryformat 을 이용해서 필수 패키지가 설치되어 있는지 확인하자. not installed 로 뜨는 아이들만 설치해 주면 된다. 

- 필수 패키지는 아래와 같다. 

패키지 더보기


- RHEL5 관련 패키지는 RHEL5 cd 의 Server 폴더에서 설치할 수 있고, ASM 관련 패키지는 여기 를 참고하자. 

ASM 관련 3개의 패키지는 현재 linux kernel 버전에 맞는 패키지들을 다운받아서 설치해야하는데, 본인의 cpu 정보와 커널 버전을 아래와 같이 확인하자. 

본인의 cpu 모델은 intel, 커널 버전은 2.6.18-128.el5 이고, os 는 32 비트이다. 그래서 본인은 다운로드 페이지에서

Intel IA32 (x86) Architecture  에 있는 아래 패키지들을 wget 으로 다운로드 받았다. 

## linux 필수 패키지 체크

[root@rac1 ~]# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

binutils-2.17.50.0.6-9.el5 (i386)

compat-libstdc++-33-3.2.3-61 (i386)

elfutils-libelf-0.137-3.el5 (i386)

elfutils-libelf-devel-0.137-3.el5 (i386)

gcc-4.1.2-44.el5 (i386)

gcc-c++-4.1.2-44.el5 (i386)

glibc-2.5-34 (i686)

glibc-common-2.5-34 (i386)

glibc-devel-2.5-34 (i386)

glibc-headers-2.5-34 (i386)

ksh-20080202-2.el5 (i386)

libaio-0.3.106-3.2 (i386)

package libaio-devel is not installed

libgcc-4.1.2-44.el5 (i386)

libstdc++-4.1.2-44.el5 (i386)

libstdc++-devel-4.1.2-44.el5 (i386)

make-3.81-3.el5 (i386)

sysstat-7.0.2-3.el5 (i386)

package unixODBC is not installed

package unixODBC-devel is not installed

[root@rac1 ~]#


## Oracle ASM 관련 패키지

[root@rac1 ~]# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' oracleasm-2.6.18-194.el5 oracleasm-support oracleasmlib

package oracleasm-2.6.18-194.el5 is not installed

package oracleasm-support is not installed

package oracleasmlib is not installed

[root@rac1 ~]#


## ASM 패키지 다운로드

[root@rac1 ~]# wget http://oss.oracle.com/projects/oracleasm-support/dist/files/RPMS/rhel5/x86/2.1.8/oracleasm-support-2.1.8-1.el5.i386.rpm

[root@rac1 ~]# wget http://oss.oracle.com/projects/oracleasm/dist/files/RPMS/rhel5/x86/2.0.5/2.6.18-128.el5/oracleasm-2.6.18-128.el5-2.0.5-1.el5.i686.rpm

[root@rac1 ~]# wget http://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.4-1.el5.i386.rpm


## linux 패키지 설치

[root@rac1 ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda1              15G  2.5G   11G  19% /

/dev/sda3              22G  173M   21G   1% /u01

tmpfs                 841M     0  841M   0% /dev/shm

/dev/hdc              2.9G  2.9G     0 100% /media/RHEL_5.3 i386 DVD

[root@rac1 ~]#

[root@rac1 ~]# cd /media/RHEL_5.3\ i386\ DVD/Server/

[root@rac1 Server]#

[root@rac1 Server]# rpm -Uvh libaio-devel-0.3.106-3.2.i386.rpm unixODBC-2.2.11-7.1.i386.rpm unixODBC-devel-2.2.11-7.1.i386.rpm

warning: libaio-devel-0.3.106-3.2.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:libaio-devel           ########################################### [ 33%]

   2:unixODBC               ########################################### [ 67%]

   3:unixODBC-devel         ########################################### [100%]

[root@rac1 Server]#


## ASM 패키지 설치

[root@rac1 rpm]# ls -l

total 236

-rw-r--r-- 1 root root 129238 Dec  4  2009 oracleasm-2.6.18-128.el5-2.0.5-1.el5.i686.rpm

-rw-r--r-- 1 root root  13929 Aug 18  2010 oracleasmlib-2.0.4-1.el5.i386.rpm

-rw-r--r-- 1 root root  85303 Feb 16 06:05 oracleasm-support-2.1.8-1.el5.i386.rpm

[root@rac1 rpm]# 

[root@rac1 rpm]# rpm -ivh oracleasm*

warning: oracleasm-2.6.18-128.el5-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing...                ########################################### [100%]

   1:oracleasm-support      ########################################### [ 33%]

   2:oracleasm-2.6.18-128.el########################################### [ 67%]

   3:oracleasmlib           ########################################### [100%]

[root@rac1 rpm]# 




5.  user 생성 및 profile 설정

[root@rac1 ~]# groupadd -g 501 oinstall

[root@rac1 ~]# groupadd -g 502 dba

[root@rac1 ~]# groupadd -g 504 asmadmin

[root@rac1 ~]# groupadd -g 506 asmdba

[root@rac1 ~]# groupadd -g 507 asmoper

[root@rac1 ~]# useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper grid

[root@rac1 ~]# useradd -u 502 -g oinstall -G dba,asmdba oracle


## 패스워드 설정

[root@rac1 ~]# passwd grid

Changing password for user grid.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@rac1 ~]# passwd oracle

Changing password for user oracle.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@rac1 ~]#


## Oracle Inventory , grid infrastructure home 디렉토리 설정

[root@rac1 ~]# mkdir -p /u01/app/oraInventory

[root@rac1 ~]# chown -R grid:oinstall /u01/app/oraInventory

[root@rac1 ~]# chmod -R 775 /u01/app/oraInventory

[root@rac1 ~]#

[root@rac1 ~]# mkdir -p /u01/11.2.0/grid

[root@rac1 ~]# chown -R grid:oinstall /u01/11.2.0/grid

[root@rac1 ~]# chmod -R 775 /u01/11.2.0/grid

[root@rac1 ~]#


## Oracle grid patch set infrastructure home 디렉토리 설정

[root@rac1 ~]# mkdir -p /u01/11.2.2/grid

[root@rac1 ~]# chown -R grid.oinstall /u01/11.2.2/grid/

[root@rac1 ~]# chmod -R 775 /u01/11.2.2/grid/


## Oracle base 디렉토리 설정

[root@rac1 ~]# mkdir -p /u01/app/oracle

[root@rac1 ~]# mkdir /u01/app/oracle/cfgtoollogs

[root@rac1 ~]# chown -R oracle:oinstall /u01/app/oracle

[root@rac1 ~]# chmod -R 775 /u01/app/oracle


## Oracle RDBMS 디렉토리 설정

[root@rac1 ~]# mkdir -p /u01/app/oracle/product/11.2.0/db_1

[root@rac1 ~]# chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1

[root@rac1 ~]# chmod -R 775 /u01/app/oracle/product/11.2.0/db_1


## root 계정 profile 설정

[root@rac1 ~]# vi .bash_profile

## 아래 내용으로 수정

export GRID_HOME=/u01/11.2.0/grid

export PATH=$PATH:$HOME/bin:$GRID_HOME/bin


## oracle 계정 profile 

[root@rac1 ~]# su - oracle

[oracle@rac1 ~]$ vi .bash_profile

## 아래 내용으로 수정

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_HOSTNAME=rac1

export ORACLE_UNQNAME=RAC

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export GRID_HOME=/u01/11.2.0/grid

export ORACLE_SID=RACDB1

## 위의 ORACLE_SID 는 원하는 이름으로 정해주면 되는데, rac1 과 rac2 에 중복되는 부분을 넣어서 정하는 설정하는 것이 좋다. (ex, RACDB1, RACDB2) 이렇게 중복되는 부분 (RACDB) 를 가지고 db 생성 시 db name 을 정하면 양 노드에서 db 접속 시 편리하다.

export ORACLE_TERM=xterm

export PATH=/usr/sbin:$PATH

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

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

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



6. Shared Storage 파티션 생성 (Disk 작업 - root 계정으로) 

- 현재 disk 확인

[root@rac1 ~]# fdisk -l |perl -ne 'print if /\/dev\/sd[b-l]/'

Disk /dev/sdb: 1073 MB, 1073741824 bytes

Disk /dev/sdc: 1073 MB, 1073741824 bytes

Disk /dev/sdd: 1073 MB, 1073741824 bytes

Disk /dev/sde: 2147 MB, 2147483648 bytes

Disk /dev/sdf: 2147 MB, 2147483648 bytes

Disk /dev/sdg: 2147 MB, 2147483648 bytes

Disk /dev/sdh: 2147 MB, 2147483648 bytes

Disk /dev/sdi: 2147 MB, 2147483648 bytes

Disk /dev/sdj: 2147 MB, 2147483648 bytes

Disk /dev/sdk: 2147 MB, 2147483648 bytes

Disk /dev/sdl: 2147 MB, 2147483648 bytes

- 위의 disk 들을 모두 아래와 같이 파티션 작업을 해주어야 한다. sdb ~sdl 까지 모두 해주자.

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


Command (m for help): u

Changing display/entry units to sectors


Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First sector (63-2097151, default 63): 2048

Last sector or +size or +sizeM or +sizeK (2048-2097151, default 2097151):

Using default value 2097151


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks.

[root@rac1 ~]#


## sdl 까지 모두 작업이 끝났으면 아래와 같이 작업 내용을 확인한다.

[root@rac1 ~]# fdisk -l |perl -ne 'print if/^\/dev\/sd[b-l]\d/'

/dev/sdb1               2        1886     1047552   83  Linux

/dev/sdc1               2        1886     1047552   83  Linux

/dev/sdd1               2        1886     1047552   83  Linux

/dev/sde1               6       11916     2096128   83  Linux

/dev/sdf1               6       11916     2096128   83  Linux

/dev/sdg1               6       11916     2096128   83  Linux

/dev/sdh1               6       11916     2096128   83  Linux

/dev/sdi1               6       11916     2096128   83  Linux

/dev/sdj1               6       11916     2096128   83  Linux

/dev/sdk1               6       11916     2096128   83  Linux

/dev/sdl1               6       11916     2096128   83  Linux




7. ASM 라이브러리 설치 및 환경 설정

[root@rac1 ~]# /etc/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 []: asmdba

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 ~]# oracleasm createdisk OCR_VOTE01 /dev/sdb1

Writing disk header: done

Instantiating disk: done

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

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk OCR_VOTE03 /dev/sdd1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk ASMDATA01 /dev/sde1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk ASMDATA02 /dev/sdf1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk ASMDATA03 /dev/sdg1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk ASMDATA04 /dev/sdh1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk ASMDATA05 /dev/sdi1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk ASMDATA06 /dev/sdj1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk ASMDATA07 /dev/sdk1

Writing disk header: done

Instantiating disk: done

[root@rac1 ~]# oracleasm createdisk ASMDATA08 /dev/sdl1

Writing disk header: done

Instantiating disk: done


## Scan

[root@rac1 ~]# oracleasm scandisks

Reloading disk partitions: done

Cleaning any stale ASM disks...

Scanning system for ASM disks...


## ASMLib 목록 보기 (아래와 같이 생성한 공유 disk 가 모두 나와야 함)

[root@rac1 ~]# oracleasm listdisks

ASMDATA01

ASMDATA02

ASMDATA03

ASMDATA04

ASMDATA05

ASMDATA06

ASMDATA07

ASMDATA08

OCR_VOTE01

OCR_VOTE02

OCR_VOTE03

[root@rac1 ~]#


- 여기까지 완료 하였다면 node1 의 작업은 끝났다. 이제 node2 의 작업을 위해서 node1을 init 0 로 종료한다.

저작자 표시 비영리
신고
Posted by Ann Moon