Oracle 설치/Oracle 10g RAC 구축

[Oracle 10g RAC 구축] 3. 로우 디바이스 매핑 및 각종 환경설정

빵순이^^ 2010. 7. 2. 00:58

1. Oracle 유저 생성 및 환경설정


root 유저로 아래의 명령어를 실행하여 그룹 및 유저를 생성한다.

[root@rac1 ~]# groupadd oinstall
[root@rac1 ~]# groupadd dba
[root@rac1 ~]# mkdir -p /export/home/oracle /ocfs
[root@rac1 ~]# useradd -d /export/home/oracle -g oinstall -G dba -s /bin/ksh oracle
[root@rac1 ~]# chown oracle:dba /export/home/oracle /u01
[root@rac1 ~]# passwd oracle
New Password:
Re-enter new Password:
passwd: password successfully changed for oracle

/export/home/oracle/.profile을 vi 편집기로 열어 아래의 내용을 추가해 준다.

export PS1="`/bin/hostname -s`-> "
export EDITOR=vi
export ORACLE_SID=devdb1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
umask 022

oracle 유저의 Limit 설정을 위해 vi 편집기로 아래 파일들을 열어 내용을 추가한다.

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

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

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

session required /lib/security/pam_limits.so

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

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

2. RPM 패키지 설치

libaio 와 openmotif21 패키지가 설치되어 있는지 확인한다.

[root@rac1 ~]# rpm -q libaio
[root@rac1 ~]# rpm -q openmotif21

위의 명령어를 입력했을때 is not installed 메세지가 출력되면 rpm 패키지가 설치되어 있지 않기 때문에 다음의 방법으로 패키지를 설치해 준다.

- Oracle Enterprise Linux 3번째 CD를 마운트 한다.

- 3번째 CD 내의 Enterprise > RPMS 폴더내의 libaio-0.3.105-2.i386.rpm 과 openmotif21-2.1.30-11.0.1.RHEL4.6.i386.rpm 을 root's Home 폴더로 복사한다. 

root 유저로 터미널을 실행하여 복사해 둔 rpm 패키지를 설치한다.

[root@rac1 ~]# rpm -Uvh libaio-0.3.105-2.i386.rpm
[root@rac1 ~]# rpm -Uvh openmotif21-2.1.30-11.0.1.RHEL4.6.i386.rpm

위 패키지 설지 후 oracleasmlib-2.0.2-1.i386.rpm 패키지(첨부)를 다운로드 하여 설치한다.

oracleasmlib-2.0.4-1.el4.i386.rpm
다운로드

[root@rac1 ~]# rpm -Uvh oracleasmlib-2.0.2-1.i386.rpm

설치 후 ASM 관련 패키지 들이 설치되어 있는지 확인한다. 아래 3가지의 패키지 중 설치되어 있지 않으 패키지가 있다면 설치해 주어야 한다.

[root@rac1 ~]# rpm -qa |grep oracleasm
oracleasm-support-2.1.3-1.e14
oracleasm-2.6.9.89.0.0.0.1.ELsmp-2.0.5-1.el4
oracleasmlib-2.0.4-1.el4

3. 커널 매개변수 설정

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        = 1048576
net.core.rmem_max            = 1048576
net.core.wmem_default        = 262144
net.core.wmem_max            = 262144

추가한 후 바로 실행하기 위해 아래 커맨드를 실행한다.

[root@rac1 ~]# /sbin/sysctl -p

4. 호스트 파일 수정

/etc/hosts 파일을 열어 다음의 라인을 추가해 준다.
(이때 필자와 호스트 네임을 다르게 설정하였다면 설정한 호스트 명에 맞게 수정해 준다.)

127.0.0.1                localhost
192.168.1.21          rac1.pangsun.com        rac1
192.168.1.31            rac1-vip.pangsun.com    rac1-vip
10.10.10.31             rac1-priv.pangsun.com   rac1-priv
192.168.1.22           rac2.pangsun.com        rac2
192.168.1.32            rac2-vip.pangsun.com    rac2-vip
10.10.10.32             rac2-priv.pangsun.com   rac2-priv

5. hangcheck-timer 커널 모듈 설정


hangcheck timer 커널 모듈은 시스템의 상태를 모니터링하고 장애가 발생한 RAC 노드를 재시작 한다. 노드의 장애 상황을 파악하기 위해 사용되는 두 가지 매개변수로 hangcheck_tick(시스템 모니터링 빈도 정의)과 hangcheck_margin(RAC 노드의 리셋을 수행하기 위한 최대 지연 허용 시간)이 있다.

/etc/modprobe.conf 파일을 열어 아래 라인을 추가해 준다.

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

모듈을 바로 적용하기 위해서 아래 명령어를 실행해 준다.

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

6. OCFS 와 ASM을 위한 디스크 파티션 생성


아래 그림과 같이 fdisk 명령을 이용하여 /dev/sdb, /dev/sdc, /dev/sdd, /dev/sde 파티션을 포멧해 준다.

설치 완료 후 fisk -l 명령어로 정상적으로 파티션이 생성되었는지 확인한다.

7. ASM 디스크를 위한 로우 디바이스 매핑

/etc/sysconfig/rawdevices 파일을 열어 아래 라인을 추가해 준다.

/dev/raw/raw1 /dev/sdc1
/dev/raw/raw2 /dev/sdd1
/dev/raw/raw3 /dev/sde1

위 작업은 로우 디바이스를 앞에서 생성한 공유 파티션에 매핑한다. 로우 디바이스는 클러스터 노드가 부팅될 때마다 블록 디바이스에 바인딩되어야 한다.

매핑 설정을 즉시 적용하기 위해 root 유저로 아래의 커맨드를 입력한다.

[root@rac1 ~]# /sbin/service rawdevices restart

아래 명령어로 매핑한 로우 디바이스의 권한 변경 및 확인 한다.

[root@rac1 ~]# chown oracle:dba /dev/raw/raw[1-3]
[root@rac1 ~]# chmod 660 /dev/raw/raw[1-3]
[root@rac1 ~]# ls -lat /dev/raw/raw*

oracle 유저로 접속하여 아래의 명령어도 심볼릭 링크를 걸어준다.

rac1-> ln -sf /dev/raw/raw1 /u01/oradata/devdb/asmdisk1
rac1-> ln -sf /dev/raw/raw2 /u01/oradata/devdb/asmdisk2
rac1-> ln -sf /dev/raw/raw3 /u01/oradata/devdb/asmdisk3

/etc/udev/permissions.d/50-udev.permissions 를 vi 편집기로 열어 raw/*:root:disk:0660 라인을 주석처리하고 아래의 라인을 추가해 준다.

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

위 설정을 완료 한 후 두번째 가상머신을 생성하기 위해 셧다운 시킨다.