오라클 10g Raw Device 방식으로 RAC 설치 #4/8 (리눅스 환경설정)

1. Node #1 리눅스 환경설정

  가. 노드 1 네트워크 설정

   터미널을 띄우고 네트워크 카드별  IP주소, 서브넷,  게이트웨이를 확인한다.(필자와 IP주소는 서로 다를 수 있음)

# ifconfig
   네트워크 카드별 IP 확인

# netstat -nr
   게이트웨이 확인

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

참고 :
각자의 컴퓨터 환경에 따라 IP 주소는 달라지므로 위 그림과 동일한 IP주소로 세팅하지 않도록 한다.
Pirvate IP에는 게이트웨이 주소를 입력하지 않는다.

# vi /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.126.132 rac1
192.168.126.133 rac2

192.168.121.129 rac1-priv
192.168.121.130 rac2-priv

192.168.126.32  rac1-vip
192.168.126.33  rac2-vip

자신의 환경에 맞게  IP주소를 세팅한다.

참고 :
rac2의 IP주소는 rac1의 주소에 +1 하였다(rac1 같은 네트워크에 존재하기만 하면 상관없음)
각 노드별 Virtual IP(rac1-vip, rac2-vip)는 어떠한 네트워크 대역여도 상관없으며,
여기에서는 public 네트워크와 같은 네트워크의 임의 IP(192.168.126.32 ~ 33)로 설정하였다.

rac1, rac2 : Public IP로 DBA가 각 노드를 관리하기 위해 접속하는 IP
rac1-priv, rac2-priv : Private IP로 각 노드간 통신을 위한 IP
rac1-vip, rac2-vip : Virtual IP로 운영 IP

# ping rac1
# ping rac1-priv
# ping 168.126.63.1

모든 곳으로 Ping이 나가는지 확인
나가지 않을 곳이 있을 경우 네트워크 설정을 다시 확인한다.

  나. 불필요한 서비스 종료

# chkconfig –level 123456 xinetd off
# chkconfig –level 123456 sendmail off
# chkconfig –level 123456 cups off
# chkconfig –level 123456 cups-config-daemon off
# chkconfig –level 123456 smartd off
# chkconfig –level 123456 isdn off
# chkconfig –level 123456 pcmcia off
# chkconfig –level 123456 iptables off

  다. 각종 환경 설정

# vi /etc/sysctl.conf

kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

위 내용을 추가

# vi /etc/security/limits.conf

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

위 내용을 추가

# vi /etc/pam.d/login

session    required     pam_limits.so

# vi /etc/modprobe.conf

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

# modprobe -v hangcheck-timer

# vi /etc/rc.local

/sbin/modprobe hangcheck-timer rdate -s time.bora.net

참고 : timer와 관련된 항목은 각 노드간 시간동기화를 위해서이다.
각 노드별 시간이 서로 다르면 데이터의 무결성이 깨지게 된다.

# groupadd -g 5000 dba
# useradd -g dba oracle
# passwd oracle
오라클 계정 생성

# vi ~/.bash_profile

PATH=$PATH:$HOME/bin:/home/oracle/product/10g/crs/bin

# vi /home/oracle/.bash_profile

export EDITOR=vi
export LD_ASSUME_KERNEL=2.4.19
export ORACLE_BASE=/home/oracle
export ORA_CRS_HOME=$ORACLE_BASE/product/10g/crs
export ORACLE_HOME=$ORACLE_BASE/product/10g/db
export ORA_ASM_HOME=$ORACLE_BASE/product/10g/asm
export ORACLE_SID=rac1
export LANG=ko_KR.UTF-8
export ORACLE_TERM=xterm
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin:/$ORA_CRS_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

위 내용을 추가

  라. 디스크 설정

# fdisk /dev/sdb

n -> p -> 1 -> 엔터 -> 엔터 -> t -> 8e -> w

나머지 디스크(sdc ~ sdd)의 파티션도 위와 동일한 순서로 반복한다.

# pvcreate /dev/sdb /dev/sdc /dev/sdd
# pvdisplay

# vgcreate rac /dev/sdb /dev/sdc /dev/sdd
# vgdisplay

# lvcreate –name ocr1 –size 300m rac
# lvcreate –name ocr2 –size 300m rac
# lvcreate –name vote1 –size 300m rac
# lvcreate –name vote2 –size 300m rac
# lvcreate –name vote3 –size 300m rac
# lvcreate –name system –size 600m rac
# lvcreate –name sysaux –size 300m rac
# lvcreate –name undotbs1 –size 200m rac
# lvcreate –name undotbs2 –size 200m rac
# lvcreate –name users –size 100m rac
# lvcreate –name temp –size 100m rac
# lvcreate –name control01 –size 100m rac
# lvcreate –name control02 –size 100m rac
# lvcreate –name control03 –size 100m rac
# lvcreate –name redo01_a –size 50m rac
# lvcreate –name redo01_b –size 50m rac
# lvcreate –name redo02_a –size 50m rac
# lvcreate –name redo02_b –size 50m rac
# lvcreate –name redo03_a –size 50m rac
# lvcreate –name redo03_b –size 50m rac
# lvcreate –name redo04_a –size 50m rac
# lvcreate –name redo04_b –size 50m rac
# lvcreate –name spfile –size 50m rac
# lvscan

물리적 볼륨 생성 -> 볼륨그룹 생성 -> 논리적 볼륨 분할

# vi /etc/sysconfig/rawdevices

/dev/raw/raw1    /dev/rac/ocr1
/dev/raw/raw2    /dev/rac/ocr2
/dev/raw/raw3    /dev/rac/vote1
/dev/raw/raw4    /dev/rac/vote2
/dev/raw/raw5    /dev/rac/vote3
/dev/raw/raw6    /dev/rac/system
/dev/raw/raw7    /dev/rac/sysaux
/dev/raw/raw8    /dev/rac/undotbs1
/dev/raw/raw9    /dev/rac/undotbs2
/dev/raw/raw10    /dev/rac/users
/dev/raw/raw11    /dev/rac/temp
/dev/raw/raw12    /dev/rac/control01
/dev/raw/raw13    /dev/rac/control02
/dev/raw/raw14    /dev/rac/control03
/dev/raw/raw15    /dev/rac/redo01_a
/dev/raw/raw16    /dev/rac/redo01_b
/dev/raw/raw17    /dev/rac/redo02_a
/dev/raw/raw18    /dev/rac/redo02_b
/dev/raw/raw19    /dev/rac/redo03_a
/dev/raw/raw20    /dev/rac/redo03_b
/dev/raw/raw21    /dev/rac/redo04_a
/dev/raw/raw22    /dev/rac/redo04_b
/dev/raw/raw23    /dev/rac/spfile

디스크 매핑

# /etc/init.d/rawdevices restart

참고 : raw device 분할표

Diskname Logical Volume MB Diskname2 Logical Volume3 MB2
 /dev/raw/raw1  /dev/rac/ocr1 300  /dev/raw/raw12  /dev/rac/control01 100
 /dev/raw/raw2  /dev/rac/ocr2 300  /dev/raw/raw13  /dev/rac/control02 100
 /dev/raw/raw3  /dev/rac/vote1 300  /dev/raw/raw14  /dev/rac/control03 100
 /dev/raw/raw4  /dev/rac/vote2 300  /dev/raw/raw15  /dev/rac/redo01_a 50
 /dev/raw/raw5  /dev/rac/vote3 300  /dev/raw/raw16  /dev/rac/redo01_b 50
 /dev/raw/raw6  /dev/rac/system 600  /dev/raw/raw17  /dev/rac/redo02_a 50
 /dev/raw/raw7  /dev/rac/sysaux 300  /dev/raw/raw18  /dev/rac/redo02_b 50
 /dev/raw/raw8  /dev/rac/undotbs1 200  /dev/raw/raw19  /dev/rac/redo03_a 50
 /dev/raw/raw9  /dev/rac/undotbs2 200  /dev/raw/raw20  /dev/rac/redo03_b 50
 /dev/raw/raw10  /dev/rac/users 100  /dev/raw/raw21  /dev/rac/redo04_a 50
 /dev/raw/raw11  /dev/rac/temp 100  /dev/raw/raw22  /dev/rac/redo04_b 50
       /dev/raw/raw23  /dev/rac/spfile 50

# vi /etc/udev/permissions.d/50-udev.permissions

#raw/*:root:disk:0660
raw/*:oracle:dba:0660

113번째 줄을 위와 같이 수정

# /etc/init.d/rawdevices restart

# ls -al /dev/raw
소유권이 oracle 로 변경 됐는지 확인


노드 1 시스템을 shutdown 시킨다.


2. Node #2 리눅스 환경설정

  가. 노드 1 가상머신 -> 노드 2로 복사하기

사용자 삽입 이미지
사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지

참고 : 노드 2의 네트워크 카드의 재구성 화면은 빠르게 사라지므로 빠른 손놀림이 필요하다.
          만일 화면이 지나갔다면 시스템을 재부팅하여 다시 시도하도록 한다.

  나. 노드 2 네트워크 설정

    노드 1에서의 방법과 동일한 과정으로 설정한다.
   IP 정보는 /etc/hosts 에 설정한 것과 동일하게 설정한다.

사용자 삽입 이미지

사용자 삽입 이미지
사용자 삽입 이미지

# ping rac2
# ping rac2-priv
# ping 168.126.63.1
모든 곳으로 Ping이 나가는지 확인
나가지 않을 곳이 있을 경우 네트워크 설정을 다시 확인한다.

# vi /home/oracle/.bash_profile

export ORACLE_SID=rac2

위 처럼 수정한다

# shutdown -r now

노드 2 시스템을 재시작한다.

노드 1 시스템을 부팅시킨다

3. equivalence 설정

가. SSH 공개키/개인키 생성

오라클 계정으로 접속 한다

모든 노드에서 각각 실행(노드 1, 노드 2 모두 power on 상태)

$ ssh-keygen -t rsa

입력값 없이 엔터 -> 엔터 -> 엔터

$ ssh-keygen -t dsa

입력값 없이 엔터 -> 엔터 -> 엔터

노드 1에서만 실행

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

$ ssh rac2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

yes -> 노드 2 시스템 패스워드 입력

$ ssh rac2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

노드 2 시스템 패스워드 입력

$ scp ~/.ssh/authorized_keys rac2:~/.ssh/authorized_keys

노드 2 시스템 패스워드 입력

개인키가 저장된 파일(authorized_keys)을 노드2에 복사한다.

모든 노드에서 각각 실행
(암호를 묻는 과정이 나오지 않으면 올바르게 설정된 것임)

$ ssh rac1 date 
$ ssh rac1-priv date
$ ssh rac2 date
$ ssh rac2-priv date

참고 : 최초 실행 시 공개키를 받는 과정에서 yes 입력

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다