Oracle 10g RAC (ASM) 설치 - 1 리눅스 설정

# ifconfig


명령을 이용해서 DHCP로 받은 IP를 확인합니다.

eth0, eth1을 모두 잘 봐둡니다.


# netstat -nr


명령을 이용해서 기본 Gateway 를 확인 할 수 있습니다.



# neat


를 실행하면, 네트워크 설정 화면을 열수 있습니다.


eth0은 관리자용과 외부 접속에서 이용하는 Public IP를 사용하는 랜카드 입니다.

eth1은 Private IP를 이용하여, RAC 장비간의 동기화 전용의 인터커넥트 입니다.




각 에 DHCP에서 받은 IP를 고정으로 할당 해줍니다.



Private IP에는 게이트웨이 값을 설정하지 않습니다.



DNS 탭에 가서 기본 DNS를 변경해줍니다.



저장 하고 나면 네트워크 서비스를 재시작하는 창이 나옵니다.



# /etc/init.d/network restart


Node 1의 ip 세팅이 끝났습니다.

RAC장비간에 접속 분할을 교통정리 해주는 프로그램인 클러스터웨어를 설치 하기 앞서, vi 에디터를 이용한 설치를 위, 몇몇 파일의 세팅을 해줘야 합니다.



RPM 패키지 업데이트


binutils-2.15.92.0.2-21

compat-db-4.1.25-9

compat-gcc-32-3.2.3-47.3

compat-gcc-32-c++-3.2.3-47.3

compat-libstdc++-33-3.2.3-47.3

compat-libgcc-296-2.96-132.7.2

control-center-2.8.0-12.rhel4.5

cpp-3.4.6-3                                                              ← 기본적으로 yum 에서 cpp만 업데이트 하면 의존 관계에 있는 11가지 rpm을 같이 업데이트 해줍니다.

gcc-3.4.6-3

gcc-c++-3.4.6-3

glibc-2.3.4-2.25

glibc-common-2.3.4-2.25

glibc-devel-2.3.4-2.25

glibc-headers-2.3.4-2.25

glibc-kernheaders-2.4-9.1.98.EL

gnome-libs-1.4.1.2.90-44.1

libaio-0.3.105-2

libstdc++-3.4.6-3

libstdc++-devel-3.4.6-3

make-3.80-6.EL4

openmotif-2.2.3-10.RHEL4.5

openmotif21-2.1.30-11.RHEL4.6

pdksh-5.2.14-30.3

setarch-1.6-1

sysstat-5.0.5-11.rhel4                                                  ← 기본적으로 설치 되지 않는 rpm 패키지로 반드시 찾아서 설치 해줘야 합니다.

xscreensaver-4.18-5.rhel4.11



불필요한 서비스의 종료.


# 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 에디터를 이용한 각종 환경 변수 설정


# 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                 ← 이 부분에 127.0.0.1 옆에 rac1 이라고 호스트 네임이 적혀있는데 삭제 해줍니다.


#Public

192.168.126.131         rac1

192.168.126.132         rac2

#Private

192.168.121.129         rac1-priv

192.168.121.130         rac2-priv

#Vip

192.168.126.31          rac1-vip

192.168.126.32          rac2-vip


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


# 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



오라클 계정의 생성


# groupadd -g 5000 dba

# useradd -g dba oracle

# passwd oracle



root 계정의 .bash_profile 의 수정


# vi ~/.bash_profile


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



오라클 계정의 .bash_profile 의 수정 


# 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



Disk 파티션 설정 및 구성


# fdisk /dev/sdb

# fdisk /dev/sdc

...

...

...

# fdisk /dev/sdi


총 8개의 파티션을 순서대로 fdisk 해줍니다.


fdisk 실행 상에서 의 진행 과정

 n (새로운 파티션 생성) → p (프라이머리 생성) → 1 → 엔터 → 엔터 → w (파티션 저장 후 fdisk 종료)


설정 해준 파티션들을 rawdevice에 적용시켜 줍니다.


# vi /etc/sysconfig/rawdevices


/dev/raw/raw1   /dev/sdb1

/dev/raw/raw2   /dev/sdc1

/dev/raw/raw3   /dev/sdd1

/dev/raw/raw4   /dev/sde1

/dev/raw/raw5   /dev/sdf1

/dev/raw/raw6   /dev/sdg1

/dev/raw/raw7   /dev/sdh1

/dev/raw/raw8   /dev/sdi1


# /etc/init.d/rawdevices restart


# 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                                                    ← Device들의 소유권이 oracle 로 변경 됐는지 확인합니다.


# init 0 


시스템을 끄고 Node 2 의 작업으로 넘어갑니다.

Oracle 10g RAC (ASM) 설치 실습을 위한 VMware 세팅 및 RHEL4 설치

RAC 설치를 위한 VMware를 세팅 해보도록 하지요.

우선 rac1 번이라는 이름으로 새로 생성합니다.

기존의 RHEL4 설치와 기본은 같습니다. (http://dbdevil.tistory.com/6 참고)


다만, rac 폴더를 만들고 그안에 rac1, rac2 폴더를 만들어 줍니다.

처음으로 생성 되는 node1은 rac1 에 저장 됩니다.



여기서부터 설정이 조금 다릅니다.

Edit virtual machine setting 을 클릭하여 하드웨어 세팅을 먼저 해줍니다.



필요 없는 하드웨어는 제거 합니다.

Floppy, USB 컨트롤러, 사운드카드, 프린터는 지워 줍니다.



이제 하드 디스크를 추가 해줍니다.





Independent 에 꼭 체크를 해주고요.



Allocate all disk space now 를 체크 해주고, 

Store virtual disk as a single file도 체크를 해줍니다. 



여기서 그냥 저장하면 상대 경로로 저장하게 되는데, 이렇게되면 두대의 RAC에서 동시에 HDD를 사용 할 수 없습니다.

그렇기에 절대 경로를 만들어 줍니다. rac 폴더 밑에 storages 폴더를 생성합니다.

지금부터 생성되는 ocr,vote,asm의 이름을 가진 HDD는 storages 폴더 밑에 절대 경로로 저장합니다.



이렇게 같은 작업으 8번 반복해 줍니다.

각 HDD의 용량과 설정은 다음과 같습니다.


 Disk 이름

용량 (GB)

scsi 번호 

ocr1

0.3 

1:0 

ocr2 

0.3 

1:1 

 vote1

0.3 

1:2 

 vote2

0.3 

1:3 

 vote3

0.3 

1:4 

 asm1

1:5 

 asm2

1:6 

 asm3

1:8 


scsi 번호는 HDD를 선택한후 우측의 Advanced... 버튼을 클릭하면 설정 할 수 있습니다.




그리고 나서 Network Adapter를 추가 해줍니다.




설정은 host-only

이 랜카드는 rac1과 rac2 사설망 (Private or inter connect) 에서 사용 될 랜카드 설정입니다.



구성이 끝나면, rac1.vmx 파일을 메모장으로 열어 수정을 해줘야 합니다.




메모장으로 열면 위같은 설정 내용이 보입니다.



다음과 같이 추가 해줍니다.


disk.locking = "FALSE"

diskLib.dataCacheMaxSize = "0"

scsi1.sharedBus = "virtual“


각 scsi 설정의 맨 밑에 각각 번호에 맞게 추가해 줍니다.

scsi1:0.deviceType = "disk“
scsi1:1.deviceType = "disk“
scsi1:2.deviceType = "disk“
...
...
...
scsi1:8.deviceType = "disk“

그리고 저장.
리눅스 이미지를 CD에 마운트 하고 나서 ▶ 눌러 설치를 시작합니다.




특별히 다른점은 없으나 파티션 분할할때 sda를 제외한 HDD의 설정을 해제 해주셔야 합니다.


파티션 용량은 


/         5000

/boot   100

swap   1500

/var     1000

/home  최대한 사용 가능한 용량 





eth1 활성화에 체크해 줘야 하구요.











위와 같은 설정으로 설치 하시면 됩니다.

RAC를 진행 하기 위해 RPM 패키지를 몇개 설치해야하는데, RHEL4 설치시 기본으로 들어있는 파일의 버전이 필요한 버전보다 낮은 것이 몇개 있고,

RPM 의존성 때문에 설치가 어렵기도 합니다.


그래서 RHEL4의 기본 파일은 추천 하지 않고, 그냥 yum 설치후 yum install을 이용하는 편이 정신 건강에 이롭습니다.


RPM 명령어의 사용법과 RHEL4에 yum 설치하기

리눅스에서 프로그램이나 데몬, 그밖에 어플리케이션을 설치할때 여러가지 방법이 있습니다.


1. 소스 파일의 압축을 해제하고, 컴파일 해서 직접 사용자가 인스톨 하는 방법.

2. RPM 명령어를 사용하여 rpm 패키지의 설치.

3. yum으로 자동으로 내려 받기


리눅스에서 애플리케이션 혹은 응용 프로그램을 설치 할 때, 터미널 상에서 일반적으로 RPM을 많이 사용합니다.

그러나 RHEL4 버전에는 yum이 지원 되지 않습니다.

최근 많이 사용하는 페도라나 CentOS에서는 yum을 지원 해주기 때문에 별 어려움 없이 필요한 파일들을 쉽게 설치 할 수 있습니다.


RPM 방식의 설치는 의존성에 문제가 있기 때문에, yum을 설치하면 관련 파일을 같이 찾아서 설치해줍니다.

의존성이란, 특정 새 패키지 설치시 반드시 필요한, 먼저 설치되어 있어야만 하는 필수 프로그램이 시스템 상에 있어야만 설치가 되는 것을 뜻 합니다.


그래서 yum 설치에 필요한 6가지 .rpm 패키지 파일을 첨부합니다.

리눅스 상에서 직접 내려 받으셔도 되고, 윈도우에서 받아서 WinSCP 같은 유틸을 이용하여 리눅스로 옮겨서 설치 하셔도 됩니다.


libsqlite-3.2.1-1.i386.rpm


sqlite2-2.8.17-2.el4.remi.i386.rpm


python-elementtree-1.2.6-7.el4.rf.i386.rpm


python-sqlite-0.5.0-1.2.el4.rf.i386.rpm


python-urlgrabber-2.9.6-1.2.el4.rf.noarch.rpm


yum-2.4.2-0.4.el4.rf.noarch.rpm


위의 6개의 파일을 받아 설치 하시고, 몇가지 세팅만 하면 RHEL4 에서 yum을 사용 할 수 있습니다.

파일은 위에서부터 순서대로 설치 하셔야 합니다.


그럼 WinSCP를 이용해 리눅스에 yum을 설치 해보도록 하겠습니다.



우선


#vi /etc/ssh/sshd_config


명령을 실행하여 ssh 유틸들이 root 권한으로 리눅스에 접속 할 수 있게 세팅을 해줍니다.

ssh 권한 설정을 해주면 나중에 Putty 같은 ssh 프로그램으로도 리눅스 서버에 접속 할 수 있습니다.



vi 에디터로 파일을 열면 PermitRootLogin yes 라고 적힌 부분이 있는데, 라인 맨 앞에 주석(#)이 달려 있습니다.

이 주석을 #을 지워줍니다.

그리고 Command 모드로 나와서 :wq! 를 입력하고 저장 및 터미널로 빠져 나옵니다.



#/etc/init.d/sshd restart

명령으로 sshd 데몬을 재실행 시켜줍니다.

리눅스는 어떤 설정 파일을 수정하면, 그에 관련된 데몬을 재 시작 시켜줘야 인식을 시작합니다.




그리고나서 


#ifconfig -a


명령을 실행해서 자신의 리눅스 서버의 IP를 확인합니다.




WinSCP를 실행 시킨 후, IP를 입력, Root의 권한으로 접속을 합니다.




6개의 파일을 리눅스 바탕화면 폴더에 복사를 합니다.




물론 바탕화면에서 패키지 파일을 더블 클릭 해주면 X윈도우 환경이 알아서 설치 합니다.

그러나 우리는 텍스트 모드를 써야 하겠죠?




터미널을 열고 Desktop 폴더로 이동 합니다. (대문자 주의)


#cd /root/Desktop




#ls -h 


파일 리스트를 확인하고 RPM 명령을 사용하여 6개의 패키지를 설치합니다.






이런식으로 순서대로 6개를 설치해주면 됩니다.



※ RPM 명령어


rpm 명령어를 사용 할 때 옵션이 있습니다.

옵션에 주의하여 설치를 하도록 합니다.


 ● 설치


   rpm -Uvh <패키지파일 (*.rpm)>


   i               - 일반적인 설치

   U (대문자) - 같은 패키지가 존재 할 경우 업그레이드, 없으면 일반 설치

   v              - 설치 과정의 확인

   h              - 설치 진행 과정을 "#"마크로 화면에 출력



 ● 삭제


   rpm -e <패키지 이름>



 ● 설치된 패키지의 확인


   rpm -qa <패키지 이름> → 설치된 패키지 확인

   rpm -qf <패키지 절대 경로> → 이미 설치된 파일이 어느 패키지에 포함되어 있는지 확인

   rpm -ql <패키지 이름> → 패키지 안의 파일 내용 확인

   rpm -qi <패키지 이름> → 설치된 패키지의 상세한 정보




이렇게 rpm 명령어를 이용해서 6개의 패키지를 설치 했으면, 다음 단계로 넘어 갑니다.

yum repository 설정을 해줘야 RHEL4에서 yum을 사용 할수 있습니다.


yum의 정보를 CentOS에서 가져 오는 것이기 때문에 우리가 사용하는 리눅스가 RHEL4가 아니라 CentOS다 라고 속여주는 겁니다.

vi 에디터로 아래와 같은 파일을 작성 합니다.



#vi /etc/yum.repos.d/RedHat-Base.repo



[base]

name=CentOS-$releasever - Base

baseurl=http://vault.centos.org/4.9/os/$basearch/

gpgcheck=1


[update]

name=CentOS-$releasever - Updates

baseurl=http://vault.centos.org/4.9/updates/$basearch/

gpgcheck=1



그리고 나서 


#yum list


명령어를 넣어주면 현재 리눅스에 설치된 패키지의 업데이트 목록을 보여주면 설정이 완료 되고, yum을 사용 할 수 있게 되는 겁니다.



#yum update     → 업데이트 가능한 모든 파일,데몬,패키지 업데이트

#yum install <패키지 이름>    → 특정 패키지 검색후 의존성 파일까지 모두 설치.

#yum remove <패키지 이름>   → 설치된 패키지 삭제


yum이 있고 없고의 차이가 초보자가 리눅스를 사용하는데 있어서 많은 차이를 보여줍니다.

구하기 어려운 rpm을 찾아 헤멜 필요가 없는데다, 사용중인 리눅스 버전에 맞는 패키지를 찾아 주기 때문에 매우 유용하지요. ^^


※ 만약 key 문제로 설치 할 수 없는 패키지가 있다고 나올때


RPM-GPG-KEY-CentOS-4


위 파일을 리눅스에 복사한 후, 파일이 있는 경로에서 


# rpm --import RPM-GPG-KEY-CentOS-4


를 실행해주면 됩니다.


Red Hat Enterprise Linux 4 (RHEL4) 의 설치

레드햇(www.redhat.com)은 많은 서버용 리눅스의 기본이 되는 리눅스로,

엔터프라이즈 버전은 상용화 버전으로 문제가 생겼을시, 

래드햇에서 유지 보수 서비스를 지원해주는 버전입니다.


4버전은 현재 더 이상 출시 되고 있지는 않으나, 실무에서 이미 많이 설치되어 있는 버전이고,

이 버전을 다룰 줄 알면, 버전업 되어 더 편해진 상위 버전의 OS들을 쉽게 다룰수 있습니다.


멀티미디어 용으로 쓰신다면 그냥 우분투를 추천드립니다.



VM에서 ▶를 누르면 CD 부팅이 되어 설치 화면으로 갑니다.

Enter를 누르고 다음으로 진행.



디스크의 오류 검사를 하곘냐고 묻는 질문 입니다.

설치 CD에 이상은 없는지, 그런걸 검사하는 화면인데 무지 오래 걸리니, 

회색 커서를 Skip에 놓고 진행 하도록 하죠.



설치 첫 화면입니다. Next.



한국어를 사용해야겠죠?

영문 리눅스를 사용하고자 하면 영어를 체크하셔도 됩니다.



키보드 설정이지만 한글은 없습니다.

영어로 설정을 해도 위에서 한국어 설정을 하였다면 Shift+Space로 한/영전환이 가능하고

한글을 사용 할 수 있습니다.



디스크 파티션을 나누는 부분인데 이 부분은 리눅스의 사용 용도에 따라 크게 바뀝니다.



초기화를 하겠냐고 묻는데 가상 HDD를 초기화 해주는 것이기 때문에 

그냥 예 하고 넘어가면 됩니다.




파티션을 실제로 나눌때 새로 생성 버튼을 누르면 이런 창이 뜹니다.

실질적으로 리눅스의 모든 폴더는 / (root)폴더에 귀속 되기 때문에 

swap과 / 만 생성 해줘도 됩니다.


다만, 파티션과 폴더의 역할은 알고 계셔야 나중에 용도에 맞게 수정 할 수 있습니다.


마운트 포인트 

사용 용도 

권장 크기 

 /

 Root 파티션 

 최소 1GB 

 /boot

 부팅 커널이 설치됨

 300~500MB 

 swap

 RAM이 부족 할 때 사용 

 RAM의 두배 정도 

 /var

 로그, 캐시 등이 기록됨  

 2GB정도

 /tmp

 임시 파일 저장 

 2GB정도 

 /usr

 응용프로그램이 설치됨

 설치 할 프로그램의 종류, 용량 따라 달라진다.  

 /home

 개별 사용자 저장 공간 

 사용자가 많다면 크게, 적다면 작게 설정.

 사용자수 x 한 사람당 저장 용량 x 0.5
















처음 이니까 그냥 swap파티션과 /에 최대 가능한 용량으로 채움으로 설정하여

진행 하도록 하겠습니다.



부트로더는 멀티 부팅이나 이런걸 할때 필요합니다.

딱히 건드리지 않아도 좋으니 패스



VM설정에서 네트워크 설정을 NAT으로 놓고 진행 했다면

수동 호스트 명만 자신이 원하는 호스트 명으로 바꿔주고 진행해 주면 됩니다. 



브릿지 방식이라면, 고정 IP를 할당 해야 하니, DHCP를 꺼주고,

수동으로 IP를 입력해주면 됩니다.



호스트 명을 변경하고 진행



대부분 방화벽은 다른 방화벽 프로그램을 추가로 설치하여 사용 하는 편입니다.

리눅스의 방화벽은 초 강력 하기 때문에 실습에 문제가 없도록 모두 해제 하고 진행

SELinux역시 문제가 많으니 사용하지 않음으로 두고 진행합니다.



계속 진행



리눅스 X윈도우, Gnome 기반 데스크 탑에서 기본으로 사용할 언어의 선택 화면 입니다.



시간 설정



관리자, 즉 Root의 계정 설정입니다.

윈도우로 치면 administrator 와 같습니다.



자 필요한 패키지 및 파일은 직접 찾아서 설치 할 예정이니까,

수사용자 설정에서 필요한 부분만 설치하도록 하겠습니다.



데스킅탑 환경은 X윈도우, Gnome환경을 체크해주고


텍스트 기반 인터넷 만 체크, 

그래픽 인터넷은 체크해줘도 좋고 안해줘도 좋지만, 파이어 폭스 브라우저가 설치 되니, 필요하다면 설치 해주는게 좋습니다. 기본 브라우저는 너무 구려서...


서버 부분은 모두 체크 해제, (필요한 것 따로 찾아 설치)

개발용 도구는 모두 선택

시스템은 관리 도구, 시스템 도구만 선택해줍니다.



설치를 진행 합니다.



CD를 바꿔주라고 나오네요



그럼 Ctrl + Alt 키를 눌러 VM웨어 창 우측 하단데 CD 모양의 아이콘을 더블 클릭합니다.

그럼 위같은 화면이 나오는데 맨 위의 커넥트 부분을 꼭 체크 해주고,

이미지 파일을 교체 해주면 됩니다.



재부팅합니다.



프로세스들을 실행하고 있네요.



첫 화면



동의 하고 패스



시간 설정

 



엔터프라이즈 버전은 상용화 제품이기 때문에 등록을 해야 하지만,

실습용이니까, 등록 이유을 알고 싶습니다. → 나중에 완료 순으로 진행 하면 됩니다.



계정은 생성하지 않고 그냥 다음으로 넘어가고,

나머지 화면에서는 다음, 다음 넘어가면 설정이 완료 됩니다.



사용자 이름에 Root 라고 넣고 로그인 합니다.

암호는 설치할떄 설정해준 암호 입니다.



리눅스 구동 중 입니다!!

이걸로 레드햇의 설치를 마치겠습니다.