IT기술/Oracle

RHEL4 + 10g RAC RAW DEVICE

dobbby 2013. 10. 25. 14:06
반응형

1. VMWARE 설정 및 RHEL4 설치


초기 설정은 ASM 설정과 HDD추가만 빼고 모두 같다.


HDD 20 G

RAM 1024 MB


경로는 RAC\rac1

virtual machine name - rac1

Edit 로 들어가서 필요없는 하드웨어 삭제 (Floppy, USB, Sound, Printer)


VMWARE에서 HDD 추가는 2GB 씩 3개를 추가해 준 뒤

Advanced 값에서 scsi 값을 1:0, 1:1, 1:2 로 변경해준다.

경로는 RAC\storage\disk0 ~ 2


RHEL4 설치 CD 를 마운트 한 뒤


※ 리눅스 설치전 rac1.vmx 파일을 메모장으로 열어 맨 밑에 다음과 같이 추가해준다.


disk.locking = "FALSE"

diskLib.dataCacheMaxSize = "0"

scsi1.sharedBus = "virtual"


scsi1:0.deviceType = "disk"

scsi1:1.deviceType = "disk"

scsi1:2.deviceType = "disk"


기억이 나지 않는다면 아래의 링크를 참조하여 설치

http://aboutdb.tistory.com/120



설치 중

수동 파티션 분할

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

/         5000

/boot   100

swap   2000

/var     1000

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



설치할 프로그램

데스크탑 - X 윈도우 시스템, GNOME 데스크탑 환경

응용 프로그램 - 편집기, 텍스트기반인터넷

서버 - 모두 해제

개발용도구 - 모두 선택

시스템 - 관리도구 체크, 시스템 도구 체크 후 - 자세한 정보 - sysstat 선택


시디 4장을 바꿔가며 설치




2. 리눅스 설정

리눅스 설치가 끝나면 

eth0, eth1의 IP주소, DNS를 설정해준다.


아이피 확인

# ifconfig


게이트웨이 확인

# netstat -nr


네트워크 설정

# neat


네트워크 재시작

# /etc/init.d/network restart


putty로 접속하기 위해

# vi /etc/ssh/sshd_config

PermitRootLogin yes 주석 해제




# vi /etc/hosts

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




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




그룹, 사용자 생성

# groupadd -g 5000 dba

# useradd -g dba oracle

# passwd oracle




루트 계정의 .bash_profile 수정

# vi ~/.bash_profile

주석처리 후 아래 줄 추가

#PATH

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




파티션 설정

# fdisk /dev/sdb 

 n (새로운 파티션 생성) -> p (primary 설정)  -> 1 -> Enter -> Enter -> t (파티션 종류 설정) -> 8e (LVM) -> w (저장 후 Fdisk 종료)


나머지도 똑같이 설정해준다.

fdisk /dev/sdc 

fdisk /dev/sdd




물리적 볼륨 생성

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




볼륨 그룹 생성

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




논리 볼륨 생성

한번에 실행시켜버리지 뭐

# lvcreate --name ocr1 --size 300 rac && lvcreate --name ocr2 --size 300 rac && lvcreate --name vote1 --size 300 rac && lvcreate --name vote2 --size 300 rac && lvcreate --name vote3 --size 300 rac && lvcreate --name system --size 600 rac && lvcreate --name sysaux --size 300 rac && lvcreate --name undotbs1 --size 200 rac && lvcreate --name undotbs2 --size 200 rac && lvcreate --name users --size 10 rac && lvcreate --name temp --size 100 rac && lvcreate --name control01 --size 50 rac && lvcreate --name control02 --size 50 rac && lvcreate --name control03 --size 50 rac && lvcreate --name redo01_a --size 50 rac && lvcreate --name redo01_b --size 50 rac && lvcreate --name redo02_a --size 50 rac && lvcreate --name redo02_b --size 50 rac && lvcreate --name redo03_a --size 50 rac && lvcreate --name redo03_b --size 50 rac && lvcreate --name redo04_a --size 50 rac && lvcreate --name redo04_b --size 50 rac && lvcreate --name spfile  --size 50 rac && lvcreate --name example  --size 100 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




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

 

 :set number

113  raw/*:root:disk:0660    주석처리하고

raw/*:oracle:dba:0660        추가




rawdevices 재시작

# /etc/init.d/rawdevices restart




소유자 확인

# ls -al /dev/raw




# init 0




3. 노드 구성하기

vmdk, vmx 파일을 rac2 로 복사해준다.




파일명을 rac2.vmx 로 변경해준다.




메모장으로 열어서 rac1을 모두 rac2 로 바꿔준다.






rac2 부팅 후

I copied it 선택

하드웨어 삭제 두번, 하드웨어 설정 두번, DHCP로 설정




부팅 후 hosts파일대로 ip와 dns를 설정해준다.




dns 설정 시 호스트명을 rac2로 바꿔준다.






네트워크 재시작




# vi /home/oracle/.bash_profile

export ORACLE_SID=rac2 





노드 1, 2 모두 부팅 후 

오라클 계정으로

# su - oracle


노드 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에 복사




모든 노드에서 각각 실행

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


$ ssh rac1 date  

$ ssh rac1-priv date

$ ssh rac2 date

$ ssh rac2-priv date





4. 클러스터웨어 설치

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

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




압축해제

cd /home/oracle/pkg/

unzip 10201_clusterware_linux32.zip && unzip 10201_database_linux32.zip && unzip p82026632_10205_LINUX.zip




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에서 작업

오라클 계정으로 로그인

# su - oracle


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 정도만 성공하는지 확인, 반드시 실행시킬 필요는 없다.






oracle 계정으로 로그인 한 후 

클러스터웨어 설치 시작






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






노드2추가해준다.







eth0공용으로 바꿔준다.





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

...

/dev/raw/raw5







1번 스크립트를 node1, node2 에서 실행한 후,

2번 스크립트를 node1, node2 에서 실행한다.












스크립트 실행 후 확인을 누르기 전 노드2 에서 root 계정으로 vipca를 실행한다.






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






노드2에서 vipca 수행 완료 후

노드1에서 스크립트 수행 완료 

확인





클러스터웨어 패치

노드1에서

$ cd ~/pkg/Disk1/

$ ./runInstaller





경로 수정








스크립트 실행 창이 나오면 

노드1에서 root 계정으로 a,b를 실행한 후 

노드2에서 root 계정으로 a,b를 실행하고 종료를 누른다.




노드1에서

# /home/oracle/product/10g/crs/bin/crsctl stop crs

# /home/oracle/product/10g/crs/install/root102.sh




노드2에서

/home/oracle/product/10g/crs/bin/crsctl stop crs

/home/oracle/product/10g/crs/install/root102.sh




확인




상태 확인

$ crs_stat -t




5. 엔진 설치


$ cd ~/pkg/database/

$ ./runInstaller





Enterprise Edition




경로 확인




모두 선택





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







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




노드1에서

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

엔터




노드2에서

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

엔터





엔진 패치


$ cd ~/pkg/Disk1

$ ./runInstaller






경로 확인




수신 안함









각 노드별로 스크립트 실행

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

엔터 y y y







리스너 구성


$ netca














상태 확인

$ crs_stat -t




5. DB생성

dbca





데이터베이스 생성




모두 선택




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




rac




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





원시장치가 RAW DEVICE






모두 해제




해제






문자 집합 목록에서 선택

KO16MSWIN949





# vi /etc/sysconfig/rawdevice

확인 후




입력





데이터베이스 저장영역 설정

# vi /etc/sysconfig/rawdevices 




확인 후 입력

아래 그림은 11, 12, 13인데 12, 13, 14가 맞다.

raw12

raw13

raw14

/dev/raw

/dev/raw

/dev/raw




파일 디렉토리 부분을 더블 클릭하여 입력




터미널을 두 개 열어 보면서 입력해야 한다.

경로 확인

# vi /etc/sysconfig/rawdevies 

파일 크기 확인

lvscan 

RAW DEVICE 는 1MB를 이용해 HDD 정보를 담고 있기 때문에 파일 크기는 설정 값보다 1MB 작게 입력해야 한다. )















USERS

raw10

/dev/raw/

11m




리두 로그 그룹







다음














완료 :)


반응형