Oracle/RAC

RAC운영중 RAC node 추가하기(1/3) ;환경 : VMware 실습환경, 11gR2, OEL(2.6.18-238.el5PAE)

에몽이ㅋ 2012. 4. 26. 16:40
http://jigi.net/4285  글을 참조하여 RAC를 구성하였습니다.
http://blog.naver.com/PostView.nhn?blogId=ecross&logNo=150041546356  을 참조하여 노드를 추가하였습니다.

기존의 네트워크 설정
192.168.0.15 rac1
192.168.0.16 rac2
192.168.79.130 rac1-priv
192.168.79.131 rac2-priv
192.168.0.115 rac1-vip
192.168.0.116 rac2-vip
192.168.0.30 rac-cluster-scan

새 노드설정(rac3)
새로 추가할 노드(rac3)에서 작업합니다.
1. 네트워크 설정
# netstat -nr 실행 후 eth0, eth1, Gateway를 알아낸 후

1.1 vi /etc/hosts  에 내용추가 (노드1, 노드2에도 rac3 부분은 모두 추가해주세요)
127.0.0.1               localhost.localdomain localhost  << 이부분의 원래 있던 rac3를 지워주세요.
192.168.0.15 rac1
192.168.0.16 rac2
192.168.0.17 rac3
192.168.79.130 rac1-priv
192.168.79.131 rac2-priv
192.168.79.132 rac3-priv
192.168.0.115 rac1-vip
192.168.0.116 rac2-vip
192.168.0.117 rac3-vip
192.168.0.30 rac-cluster-scan

1.2 # neat 실행 후 eth0, eth1, DNS IP지정(아래 스샷참고)

위 처럼 설정한 후
# service network restart 실행


1.3 핑테스트
[root@rac3 ~]# ping 168.126.63.1
PING 168.126.63.1 (168.126.63.1) 56(84) bytes of data.
64 bytes from 168.126.63.1: icmp_seq=1 ttl=55 time=11.2 ms
64 bytes from 168.126.63.1: icmp_seq=2 ttl=55 time=14.1 ms

--- 168.126.63.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 11.249/12.721/14.194/1.476 ms


2. 불필요한 서비스 삭제
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 iptables off 


3. 커널파라미터 설정 (vi /etc/sysctl.conf 에 내용추가)
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


4. # 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


5. 다른 기타 설정들
# 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 203.248.240.140 


6. # 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
            umask 022
     fi


7. 필수 RPM검사(RPM의 경우는 없으면 무조건 설치를 해야합니다.)
http://jigi.net/attachment/7817025897.zip << 링크참조
# rpm -qa RPM명
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


8. NTP service 설정
# vi /etc/sysconfig/ntpd
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid”    
※ 빨간색으로 표시한 부분 -x만 추가하면 됩니다.

# service ntpd restart
# chkconfig --level 123456 ntpd on  << 시스템 시작시 자동실행하게 프로그램 등록


9. user, group 생성 및 비밀번호 설정
# groupadd -g 1000 oinstall
# groupadd -g 1200 dba 
# useradd -u 1200 -g oinstall -G dba oracle 
# passwd oracle 


10. 설치 디렉토리 생성(Grid, oracle database SW 설치용)
# mkdir -p /u01/app/oraInventory
# mkdir -p /u01/app/11.2.0/grid
# mkdir -p /u01/app/oracle
# mkdir /u01/app/oracle/cfgtoollogs
# mkdir -p /u01/app/oracle/product/11.2.0/db_1
# chown -R oracle.oinstall /u01
# chmod -R 755 /u01


11. # vi .bash_profile 내용추가
export GRID_HOME=/u01/app/11.2.0/grid
export PATH=$PATH:$HOME/bin:$GRID_HOME/bin


12. oracle user의 .bash_profile 내용추가
[root@rac3 ~]# su - oracle
[oracle@rac3 ~]$ vi .bash_profile
export EDITOR=vi
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=rac3
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/app/11.2.0/grid
export ORACLE_SID=racdb3
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
export NLS_LANG=AMERICAN_AMERICA.KO16MSWIN949
# NLS_LANG는 설치할 DB에 따라서 바뀔 수 있습니다.


13. 스토리지 설정
(oracleasm패키지를 사용하느냐 아니냐에 따라 달라질 수 있는데, 여기서는 oracleasm을 사용하지 않았습니다. oracleasm 패치지 이용은 맨 위의 링크의 파일을 참조하세요.)
vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdf1", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="sdg1", RUN+="/bin/raw /dev/raw/raw6 %N"
ACTION=="add", KERNEL=="raw*", OWNER=="oracle", GROUP=="oinstall", MODE=="0660"


14. reboot


--> RAC node 추가하기(2/2) 로 계속