oracld 11g rac asm
Oracle

다음

다음

yes

메뉴에서 크리에이트 커스텀 레이아웃 체크후에 다음

sda 파티션 나누기

/

etx3

5000

ok

/boot

100

ext3

ok

/swap

4000

ok

tmp

2048mb

ext3

ok

--------------------------------------------------------

var

1500mb

ext3

ok

/oracle

용량 나머지

ext3

ok

나눈 파티션 확인하고 다음

다음

다음

호스트네임을 rac1

아시아/서울 체크 다음

root 암호 설정하고 다음

아래 커스터마이즈 나우 체크하고 다음

데스크탑 기본값 넘어감

어플리케이션

디벨로프

서버

시스템툴 체크하고 아래

옵셔널  패키지 클릭

위와 같이 표기


ocfs2-2.6.18-238.el5-1.4.6.-2.el5.i686

ocfs2-tools-1.6.3-2.el5.i386

ocfs2-console-1.6.3-2.el5.i386


oracleasm-2.6.18-238.el5-2.0.5.1.el5.i686

oracleasm-support-2.1.4-1.el5.i386


sysstat-7.0.2-3.el5_5.1.i386


위와 같이 표기

위와 같이 전부 표기

다음

리부트

다음

다음

방화벽 모두 디세이블

경고메세지

그냥 yes

selinux 디세이블 다음

경고메세지

그냥 yes

kdump 체크 해제 다음

시간표시

유저 안만들고 바로 넘어간다.

컨티뉴

다음

피니쉬

ok

vi /etc/profile 을 열어서

아래와 같이 수정해준다.

변경전 ulimits -s -c 0 > /dev/null 2 > &1

변경후 ulimits -s -c unlimited > dev/null 2 > &1

vi /etc/sysctl.conf 파일을 열어서 아래와 같이 수정

kernel.core_users_pid = 1

fs.suid_dumpable = 1 (추가)

패키지 설치를 해야한다.


필요 패키지

rpm -Uvh binutils-2.*
rpm -Uvh compat-libstdc++-33*
rpm -Uvh elfutils-libelf-0.*
rpm -Uvh elfutils-libelf-devel-*
rpm -Uvh gcc-4.*
rpm -Uvh gcc-c++-4.*
rpm -Uvh glibc-2.*

rpm -Uvh glibc-common-2.*

rpm -Uvh glibc-devel-2.*

rpm -Uvh glibc-headers-2.*

rpm -Uvh ksh-2*

rpm -Uvh libaio-0.*

rpm -Uvh libaio-devel-0.*

rpm -Uvh libgcc-4.*

rpm -Uvh libstdc++-4.*

rpm -Uvh libstdc++-devel-4.*

rpm -Uvh make-3.*

rpm -Uvh unixODBC-2.*

rpm -Uvh unixODBC-devel-2.*

rpm -Uvh numactl-0.9.8-*

rpm -Uvh munactl-devel-0.9.8-*


vi /etc/hosts 열어서 자신이 설정해줄 ip를 미리 입력해준다.

private를 제와하고는 같은 ip대역대를 사용한다.

192.168.92.188    rac1

192.168.92.189    rac2

192.168.133.88    rac1-priv

192.168.133.89    rac2-priv

192.168.92.18    rac1-vip

192.168.92.19    rac2-vip

(127.0.0.1 옆에 rac1, rac2 네임이 있다면 삭제 해주길 바란다)

grid ip도 추가해준다.

192.168.92.10

hosts에서 사용한 값 그대로 rac1,rac2에 입력하면 된다.

터미널을 열어서 neat를 입력하자

eth0번 기본 nat 네트워크 아답타

DHCP에서 수동 IP로 바꿔준후에 IP를 입력해준다.

아래 게이트웨이 주소는 netstat -nr을 입력해서 아래에 있는 아이피를 입력해주면 된다.

eth1번을 더블클릭해서 이것도 DHCP에서  수동 IP로 바꿔준후에

아이피를 입력해준다. eth1은 게이트웨이란은 비워둔다.

(위에 오타가 있다 18이 아니라 88이 되어야겠지)

아이피 설정은 다 됐고

이제 위의 메뉴에서 DNS 누르고 KT 도메인주소를 입력해주면 된다.

rac1 168.126.63.1

종류를 하게 되면 저장하겠냐고 뜨는데  yes

재부팅 또는 네트워크를 재시작 해야한다

ok

node1)

네트워크 재시작

/etc/init.d/network restart

재시작중

오래되서 기억이 잘 안나는데 위의 eth1의 마지막 ip가 18이라고 나오는데 아니다

오타난것이고 88이 맞다 혼동하지 말기 바란다.

vi /etcd/sysctl.conf 파일을 열어서

리눅스에게 오라클이 사용할 메모리 값을 지정해준다.

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912 (64bit) or 2147483648 (32bit)

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 10485861


바로 적용을 위해서 명령어을 입력

sysctl -p

적용 화면

vi /etc/pam.d/login 파일을 열어서 아래에 내용 추가

grid    soft    nproc    2047

grid    hard   nproc    16384

grid    soft    nofile     1024

grid    hard    nofile    65536

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

위의 내용 바로 적용 명령어

적용 화면

vi /etc/rc.local

/sbin/modprobe hangcheck-timer rdate -s 203.248.240.140

RAC환경에서는 여러개의 시스템이 하나의 DB를 통해 서비스를 제공하게 되므로, 각 시스템사이의 시간이 제각각 들어가지 않도록 시간설정을 잘 해주셔야합니다. 이를 위해서 NTP(Network Time Protocol)를 설정하여 모든 Node들의 시간을 동기화 시키면 되었었는데, 11g R2에서 CTSS (Cluster Time Synchronization Service)라는 신기능이 추가되었습니다. 만약 NTP를 설정하지 않는다면 CTSS라는 서비스가 활성화되며 오라클이 알아서 특정 노드를 기반으로 시간을 동기화해주게 됩니다. 따라서 시간과 관련된 어떠한 작업도 하지 않아도 되게끔 변경되었습니다.    그런데 이 명령어를 입력하는 것은, Grid Infrastructure 설치 과정중에 NTP 설정이 되어있지 않지만, NTP와 관련된 파일이 존재하고 있다는 경고문구가 발생하기 때문입니다. 저랑 똑같이 설치진행중이시면 저렇게 입력하여 설정파일의 이름을 변경해주시면 되고, 아니시라면 애초에 저 파일이 없을 수도 있습니다. 그리고 그냥 놔두더라도 나중에 경고문구가 발생할 뿐이지 설치에 지장을 주지는 않습니

ntpd 서비스 재시작

오라클 계정과 그룹 생성

gorupadd -g 5000 oinstall

groupadd -g 5001 dba

useradd -g oinstall -G dba oracle

passwd oracle

오라클 설치에 필요한 디렉토리와 하위까지 만들기

mkdir -p /oracle/base/product/11g

mkdir -p /oracle/grid_home

chown -R oracle.oinstall /oracle

chmod -R 755 /oracle

오라클 계정으로 접속해서 .bash_profile 수정하기

su - oracle

vi .bash_profile

export PATH

export EDITOR=vi

export ORACLE_HOSTNAME=rac1

export ORACLE_BASE=/oracle/base

export ORACLE_HOME=$ORACLE_BASE/product/11g

export ORA_CRS_HOME=/oracle/grid_home

export CRS_HOME=${ORA_CRS_HOME}

export GRID_HOME=/oracle/grid_home

export ORACLE_SID=rac1

export ORACLE_TERM=xterm

export LANG=ko_KR.UTF-8

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$GRID_HOME/bin:$PATH

export PATH=/$PATH:${ORACLE_HOME}/bin:${CRS_HOME}/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib


불필요한 프로그램을 재부팅시 실행되지 않게 off시킨다


# 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 iptables off 

이제 asm디스크 및 네트워크 추가를 위해 종료한다.

init 0

storage추가와 ams 설정

asm용 디스크를 추가한다.

hard disk선택후 다음

맨위 체크하고 다음

mode에 인디펜던트 체크하고 다음

용량은 1G로 정해주고 엘로케이트 체크와 싱글디스크 체크하고 다음

storage 디렉토리를 따로 만들어서 경로를 지정해줬고

파일이름은 ocr_vote01로 하였음

점 뒤에 확장자명을 꼭 입력해줘야 한다. (ocr_vote01.vmdk 1:0)

하나 더 추가해주고

다음

1.스카시 2.인디펜던트 3.퍼시스던트

1.1G 2.엘로케이트 3. 싱글 디스크

(ocr_vote02.vmdk 1:1)

다시 추가

다음

1.스카시 2.인디펜던트 3.퍼시스던ㄷ트

1.1G 2.엘로케이트 3.싱글 디스크 (ocr_vote03.vmdk 1:2)

다음

다음

1.스카시 2.인디펜던트 3.퍼시스던트

1.5G 2.엘로케이트 3.싱글디스크(asm01.vmdk 1:3)

다음

다음

1.스카시 2.인디펜던트 3.퍼시스던트

1.5G 2.엘로케이트 3.싱글디스크

(asm02.vmdk 1:4)

다음

다음

1.스카시 2.인디펜던트 3.퍼시스던트

1.5G 2. 엘로케이트 3. 싱글디스크

(asm03.vmdk 1:5)

디스크를 전부 만들었으면 디스크에 번호를 지정한다.

추가한 디스크를 클릭하면 왼쪽에 어드밴스라고 있을텐데 누르면 위와 같은 창이 뜬다.

ocr_vote01(scsi 1:0)

ocr_vote02(scsi 1:1)

ocr_vote03(scsi 1:2)

asm01(scsi 1:3)

asm02(scsi 1:4)

asm03(scsi 1:5)





여기까지 scsi 1:5 완료

모두 정상적으로 추가된 화면

왼쪽 메뉴보면 network adapter host-only가 있는데

똑같이 추가해 주면 된다.



그리고 vmx파일을 메모장으로 열어서 수정을 해줘야 한다.

ethernet1......다음문장에


disk.locking = "FALSE"

diskLib.dateCacheMaxSize = "0"

scsi.sharedBus = "virtual"


을 추가해준다.

그리고 추가한 각 하드 디스크 scsi넘버 마지막에


scsi1:0.deviceType = "disk"

scsi1:1.deviceType = "disk"

scsi1:2.deviceType = "disk"

scsi1:3.deviceType = "disk"

scsi1:4.deviceType = "disk"

scsi1:5.deviceType = "disk"


을 추가해주고 저장 종료한다.

완료 된 화면.

머신을 가동시킨다.

부팅이 됐다면 추가된 하드디스크를 확인해보자

ls -l /dev/sd*

확인이 됐다면 추가된 하드디스크에 파티션을 잡아줘야 한다.

fdisk /dev/sdb

n

p

1

엔터

엔터

p

w

(나머지 5개의 하드디스크도 똑같이 잡아주면 된다)

asm을 설정한다.

oracleasm configure -i

oracleasm configure -i

oracle

dba

y

y

oracleasm init

완료

asm 공유 디스크를 생성한다.


oracleasm createdisk ocr_vote01 /dev/sdb1

 oracleasm createdisk ocr_vote02 /dev/sdc1

oracleasm createdisk ocr_vote03 /dev/sdd1

oracleasm createdisk asm01 /dev/sde1

 oracleasm createdisk asm02 /dev/sdf1

oracleasm createdisk asm03 /dev/sdg1


그리고 스캔작업

oracleasm scandisks

생성 리스트 확인

oracleasm listdisks

생성된 asm 디스크 권한 넘기기

chown -R oracle.oinstall /dev/oracleasm

node1 종료

init 0

rac1 디렉토리에 가서 위의 두 파일을 복사한다.

복사한 파일을 rac2로 가서 붙여넣기 한다.

그리고 메모장으로 열어서  내용을 추가해주면 된다.

rac1이라고 씌여져 있는것들을 rac2로 바꿔준다.

머신에서 오픈해서 rac2를 불러온다.

확인

rac2로 변경

rac2 시작

i copied it 누르면 된다.

node2)

ifconfig 확인

node2)

neat 명령어를 쳐서 eth0 아이피를 변경해준다.

192.168.92.189

255.255.255.0

192.168.92.2

node2)

192.168.133.89

255.255.255.0

node2)

DNS 주소도 바꿔준다.

168.126.63.1

node2)

rac1 ->rac2

네트워크를 재시작 해줘야 한다.

/etc/init.d/network restart

node2)

노드 2 완료

init 0

node1)

winscp나 xftp를 이용해서 오라클 설치파일을 옮겨줍니다.

p10098816_112020_Linux_1of7.zip

p10098816_112020_Linux_2of7.zip

p10098816_112020_Linux_3of7.zip

파일을 옮겨줬으면 root나 oracle계정으로 압축을 풀어준다.

unzip p10098816_112020_Linux_1of7.zip

unzip p10098816_112020_Linux_2of7.zip

unzip p10098816_112020_Linux_3of7.zip

압축을 풀었으면 그리드 디렉토리 안에 패키지 파일이 있으니 설치하면 된다.

node1)

cd /oracle/install/grid/rpm/

rpm -ivh cvbqdisk-1.0.9-1.rpm


그리고 node2에도 설치를 해야한다. scp 로 보내거나 winscp,xftp 보내서 설치하자

scp : scp cvuqdisk-1.0.9-1.rpm rac2:/~


아래는 그냥 xftp를 이용해서 보냈다.


node2)

패키지 설치완료

rpm -ivh cvuqdisk-1.0.9-1.rpm

 이제 oui  창을 띄여서 설치하면 된다.

node1)

cd /oracle/install/grid/

./runInstaller

아래 skip에 체크 다음

맨 위 체크 하고 다음

어드밴스드 인스톨 체크 후에 다음

한국어 추가 후 다음

아래 체크 해제후 다음

밑에 add를 클릭

위와 같이 적어주고 다음

아래 메뉴 ssh connectivity 클릭

옆에 os 패스워드를 입력해주고

바로 밑에 setup 눌러주면 된다.

체크중

성공 메세지

다음 누르면 이런 메세지가 뜬다. 기달리자

eth0을 공용아이피로 바꾸고 다음

오라클 오토메틱 체크하고 다음

아래 체인지 디스커버리 패스를 눌러서 위와같이 적어주자.

vote디스크 전부 체크 다음

아래 체크후에 암호 입력 후 다음

yes 눌러주고 다음

다음

oinstall 선택하고 다음

다음

위처럼 경로를 바꿔주고 다음

기본경로 그대로 다음

다음

체크중

위쪽 이그노어 체크후에 다음

인스톨

설치중

node1)

/oracle/oraInventory/orainstRoot.sh

node2)

/oracle/oraInventory/orainstRoot.sh

node1)

/oracle/grid_home/root.sh

node2)

/poracle/grid_home/root.sh











스크립트를 전부 실행했으면 ok를 누르자

그냥 패스

다음

yes

닫아도 된다.

crs 상태 조회

node1)

crs_stat -t

gsd가동

srvctl enable nodeapps -g

srvctl start nodeapps

정상

node1)

crs_stat -t

ocrcheck

엔진설치

node1)

cd /oracle/install/database/

./runInstaller

아래 체크를 풀어주고 다음

yes 다음

스킵 소프트웨어 업데이트 체크 다음

인스톨 데이터베이스 체크 다음

rac1,rac2  전부 체크 후 다음

한국어를 추가하고 다음

여기서는 엔터프라이즈로 설치하고 밑에 셀렉트 옵션 클릭

맨 위와 맨 아래를 제외하고 전부 체크해제

기본경로로 설치 다음

체크중

dba 선택후 다음

체크중

위에 이그노어 체크하고 다음

요약정보. 확인하고 인스톨

설치중


에러없이 진행되면 끝날때쯤에 스크립트 메세지가 나온다.

node1)

/oracle/base/product/11g/root.sh

스크립트 완료

node2)

/oracle/base/product/11g/root.sh

노드2 스크립트 완료

oui창을 닫아주면 된다.

asmca구성

asmca

아래 메뉴에 craete 클릭

생성했던 asm 3개의 디크스중에 2개는 그룹으로 만들어주고(하나의 그룹에 최소2개의 디스크)

나머지 하나는 플래시백 디스크로 구성한다.

그룹생성중

그룹생성 완료


asm 플래시백 디스크로 구성하기 위해 체크하고 확인을 눌러주면 된다.


asm 플래시백 디스크 구성중

완료

정상적으로 완료 된 화면

종료

데이터베이스를 올릴차례

dbca

crs_stat -t

데이터 유형 선택

맨 위 선택하고 다음

데이터베이스 생성

다음

데이터베이스 웨어하우스 선택후에 다음

db명은  rac

아래 rac1,rac2 all select하고 다음

엔터프라이즈 매니저 체크 해제 다음

아래 체크후에 암호입력

yes

경로를 지정해줘야한다.

위의 +ORADATA 옆에 Browse 클릭해서 ORADATA선택후 OK

다음

플래시백 경로도 직접 찾아준다.

ORAFLASH선택후에 OK

다음

샘플스키마 선택후에 다음

위의 메뉴에 캐릭터셋 클릭

KO16MSWIN949선택 후에 다음


요약정보 다음

다음

OK

피니쉬

설치중


EXIT

RAC 테스트

node1)

crs_stop -f ora.rac.db

node2)

crs_start -f ora.rac.db


rac1에 oltp-service, rac2에는 fail-over용 생성

node1)

srvctl add service -d rac -s oltp_service -r rac1 -a rac2

srvctl start service -d rac -s oltp_service

crvctl status service -d rac -s oltp_service

리스너 상태조회

node1)

lsnrctl status