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
물리적 볼륨 생성
볼륨 그룹 생성
논리 볼륨 생성
한번에 실행시켜버리지 뭐
# 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
리두 로그 그룹
다음
완료 :)