IT기술/Oracle

RHEL4 + 10g RAC ASM

dobbby 2013. 10. 24. 13:53
반응형

1. VMWARE 설정 및 RHEL4 설치


















필요없는 하드웨어는 지워준다.

Floppy, USB Controller, Sound Card, Printer





Network Adapter를 추가한다.




Host-only 선택




하드디스크를 아래와 같이 8개 추가하고 scsi를 변경해준다.


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          5                 1:5 

asm2          5                 1:6 

asm3          5                 1:8 (1:7은 사용중)








rac1, 2가 함께 쓰기 위해 storage 라는 디렉토리 안에 생성한다.








리눅스 설치 전

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"




시디를 넣고 설치를 시작한다.









드라이브 초기화 경고 창에 모두 예를 눌러준다.




sda 에만 체크한 후 아래와 같이 파티션을 생성해준다.

/         5000

/boot   100

swap   2000

/var     1000

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










eth1 활성화 체크, 호스트명 설정




방화벽, SELinux 사용하지 않음









패키지 그룹은 아래와 같이 선택해준다.





서버는 모두 선택 해제




개발용 도구는 모두 선택




시스템 도구에서 자세한 정보 선택 후 sysstat 선택







CD 4장을 바꿔가며 설치를 진행한다.




설치 완료




설정















2. 리눅스설정




ip 확인

# ifconfig


gateway 확인

# netstat -nr


네트워크 설정

# neat




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

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




IP 설정





eth1에 게이트웨이는 입력하지 않는다.




dns 입력






네트워크 재시작

# /etc/init.d/network restart




putty로 접속하기 위해

# vi /etc/ssh/sshd_config

PermitRootLogin yes 주석 해제




불필요한 서비스 종료

# 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/hosts

127.0.0.1 뒤의 rac1 을 삭제하고 각자의 설정에 맞게 추가해준다.




# 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




# 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

# fdisk /dev/sdc

...

...

# fdisk /dev/sdi


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


fdisk 실행 상에서 의 진행 과정

n (새로운 파티션 생성) → p (primary 생성) → 1 → 엔터 → 엔터 → w (파티션 저장 후 fdisk 종료)




# 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

: set nu

: 113

113 #raw/*:root:disk:0660    기존 라인은 주석 처리 한 후

114 raw/*:oracle:dba:0660    ← 내용을 추가해준다.




# /etc/init.d/rawdevices restart




Device들의 소유권이 oracle 로 변경됐는지 확인한다.

# ls -al /dev/raw 




# init 0 




3. 노드 구성하기

rac1의 vmdk, vmx 파일을 rac2 로 복사한다.





vmx파일을 메모장으로 열어 수정한다.




모든 rac1을 rac2로 수정한다.





VMWARE에서 rac2를 연다.





네트워크 어댑터 설정

두 번 삭제, 두 번 설정






eth0, eth1 구분이 안되므로 우선 DHCP로 설정





hosts 파일대로 ip를 설정해준다.






dns 입력시 호스트명 rac2로 변경




저장 후 네트워크 재시작

# /etc/init.d/network restart




ping 테스트

# ping rac2

# ping rac2-priv

# ping 168.126.63.1




SID를 rac2로 바꿔준다.

# vi /home/oracle/.bash_profile

export ORACLE_SID=rac2





재부팅 후 equivalence 설정

노드 1에서 실행 후 노드 2에서 실행

$ mkdir .ssh


$ 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에 복사




노드 1에서 실행 후 노드 2에서 실행

(암호를 묻는 과정이 나오지 않으면 올바르게 설정된 것이다. 최초 실행 시 공개키를 받는 과정에서 yes 입력한다.)


$ ssh rac1 date  

$ ssh rac1-priv date

$ ssh rac2 date

$ ssh rac2-priv date





4. 클러스터웨어 설치

설치파일을 /home/oracle에 /pkg 디렉토리를 생성한 후 복사한다.

(p8202632_10205_LINUX.zip 파일은 patchset 에 있다.)





Library 설치

노드 1에서 실행

$ scp ~/pkg/clusterware/rpm/cvuqdisk-1.0.1-1.rpm rac2:~/  

 관련 RPM rac2로 복사


$ su -

 루트 권한으로 변경


# export CVUQDISK_GRP=dba

# rpm -Uvh /home/oracle/pkg/clusterware/rpm/cvuqdisk-1.0.1-1.rpm




노드 2에서 실행

$ su -

 루트 권한으로 로그인


# export CVUQDISK_GRP=dba

# rpm -Uvh /home/oracle/cvuqdisk-1.0.1-1.rpm




설치 전 환경 테스트

노드 1에서 실행

오라클 계정으로 로그인


$ cd /home/oracle/pkg/clusterware/cluvfy

$ ./runcluvfy.sh stage -pre crsinst -n rac1,rac2 -verbose

$ ./runcluvfy.sh stage -post hwos -n rac1,rac2 -verbose


위 환경 테스트에서 오류가 발생하므로, equivalence 정도만 성공하는지 확인, 반드시 실행시킬 필요는 없다.









노드1에 oracle 계정으로 로그인 한 후 

클러스터웨어 설치 시작






$ORA_CRS_HOME의 경로로 수정해준다.





노드2를 추가해준다.






eth0은 공용으로 바꿔준다.






/dev/raw/raw1부터 차례대로 입력해준다.

...

/dev/raw/raw5








1번 스크립트를 노드 1에서 실행한 후 노드 2 에서 실행,

2번 스크립트를 노드 1에서 실행한 후 노드 2에서 실행한다.










스크립트 실행 후 확인을 누르기 전 

rac2 에서 vipca를 실행한다.





모두 선택




IP별칭을 입력하면 나머지는 자동입력된다.







노드1로 돌아와 확인





클러스터웨어 패치





경로 확인








스크립트 실행하라는 창이 뜨면

노드 1에서 스크립트 a, b를 실행한 후

노드 2에서 스크립트 a, b를 실행하고 종료를 누른다.






5. 엔진 설치






경로 확인




모두 선택





데이터베이스 소프트웨어만 설치







각 노드에서 루트권한으로 스크립트 실행







엔진 패치











설치 중에 터미널을 열어 tail -f 로 실시간 로그를 볼 수 있다.





각 노드별로 스크립트 실행

# /home/oracle/product/10g/db/root.sh

엔터 y y y






리스너 구성

$ netca













RAC 상태 확인

$ crs_stat -t 




6. ASM구성 및 패치


$ cd ~/pkg/database/

$ ./runInstaller






이름과 경로 수정




모두 선택





ASM(자동 저장 영역 관리) 구성 선택




중복성 일반 선택 후

디스크는 후보 디스크 

raw6, raw7 만 선택 후 다음 








각 노드별로 스크립트 실행

# /home/oracle/product/10g/asm/root.sh

엔터 y y y








확인

$ crs_stat -t




ASM 패치

패치 전에 asm 데몬을 중지


$ srvctl stop asm -n rac1

$ srvctl stop asm -n rac2


$ cd ~/pkg/Disk1

$ ./runInstaller





이름과 경로 확인










각 노드별로 스크립트 실행

# /home/oracle/product/10g/asm/root.sh

엔터 y y y





$ srvctl start asm -n rac1

$ srvctl start asm -n rac2

$ crs_stat -t




7. DB생성

$ dbca






모두 선택




사용자 정의 데이터베이스 선택





Enterprise Manager를 사용하여 데이터베이스 구성 선택 해제





ASM(자동저장 영역 관리) 선택




새로 만들기 클릭




디스크 그룹에 FRA 입력

중복은 외부 선택

멤버 디스크는 후보 표시 선택

raw8 선택 후 확인




DATA만 선택 한 후 다음





플래시 복구 영역 지정 선택 후 찾아보기 클릭




FRA를 선택한 후 사용 가능한 용량 확인




플래시 복구 영역 크기 입력




표준 데이터베이스 구성요소 클릭




모두 해제 후 확인




나머지 모두 해제






문자 집합 목록에서 선택 후 KO16MSWIN949 선택














완료 :)

반응형