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 선택
완료 :)