이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

« 이전 버전 3 다음 »


I. 개요

1. 사용 Software

제품명버전아키텍쳐배포 사이트
VirtualBox4.3.x호스트 환경에 따름https://www.virtualbox.org
Oracle Enterprise Linux5 (Update 8 이상 권장)x86 32bit

https://edelivery.oracle.com/linux

Clusterware, Database11.2 (11.2.0.3 이상 권장)x86 32bithttps://support.oracle.com (My Oracle Support 권한 필요)
ASMLib2.0x86 (Intel IA32)http://www.oracle.com/technetwork/topics/linux/asmlib/index-101839.html

Oracle Database 11.2.0.1은 http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 에서 받을 수 있습니다.

2. 구성 계획

A) 서버

VMHost NameMemoryNet Adapter 1Net Adapter 2구성 방법비고
RAC1rac12048MB브리지 어댑터호스트 전용 어댑터리눅스 설치
RAC2rac22048MB브리지 어댑터호스트 전용 어댑터RAC1 복제

리눅스 기반의 2 node RAC로 구성합니다.

따라서 최소 2개의 Virtual Machine(이하 VM)이 구성되어야 합니다.

B) 스토리지

  • 개별 스토리지
파일 이름용량타입용도비고
RAC1.vdi30GBDynamic1번 서버의 시스템 영역
RAC2.vdi30GBDynamic2번 서버의 시스템 영역RAC1을 복제하여 사용합니다.
  • 공유 스토리지

Automatic Storage Management를 이용하여 Data 공간과 Fast Recovery Area를 구성합니다.

디스크 공간을 절약하기 위해 설치 파일은 모두 한 곳에 압축을 풀어 VirtualBox의 게스트 확장 기능으로 VM에서 불러와 사용합니다.

C) 네트워크

VMPublic IPPrivate IPVirtual IPNetmaskGatewaySCAN IP
RAC110.0.1.10110.0.5.10110.0.1.111255.255.255.010.0.1.1

10.0.1.110

RAC210.0.1.10210.0.5.10210.0.1.112255.255.255.010.0.1.1

Netmask의 경우 Public과 Private 모두 24bit(255.255.255.0)을 사용합니다.

인터넷 공유기 또는 Gateway의 IP에 맞춰 Public IP와 Virtual IP를 설정하기 바랍니다.

3. 호스트 환경

원활한 실습을 위해 64비트 운영체제에 8GB 이상의 메모리가 장착된 환경에서 작업하는 것을 권합니다.

디스크 I/O에 의한 지연을 최소화하기 위해 호스트의 OS가 설치되지 않은 별도의 내장 디스크를 사용하거나 SSD의 사용을 권합니다.

ESATA 또는 USB 3.0 이상의 빠른 속도를 보장하는 외장 디스크를 사용하는 것도 방법일 수 있습니다만 지속적인 연결이 보장되어야 합니다.

II. Virtual Box 설정

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

III. LINUX 설치

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

IV. 운영체제 환경 설정

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

V. 공유 스토리지 설정

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

VI. RAC2 VM 구성

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

VII. GRID 설치

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

VIII. ASM Disk Group 생성

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

IX. DBMS 설치

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

X. Patch 적용

{include} 를 처리할 수 없습니다 포함된 페이지를 찾을 수 없습니다.

XI. RAC One Node Database 생성

root 유저로 수행
chmod 770 /u01/app/oracle
chmod 770 /u01/app/oracle/cfgtoollogs
chmod -R 775 /u01/app/oracle/diag

grid와 oracle 유저를 분리하여 설치한 경우, 데이터베이스를 생성하기 전에 일부 디렉토리에 쓰기 권한을 같은 그룹의 유저에게 허용해야 정상적으로 생성이 가능합니다.

oracle 유저로 수행
dbca

데이터베이스 생성을 위해 oracle 유저로 "dbca"를 실행합니다.

‘Oracle RAC One Node 데이터베이스’를 선택하고 [다음]을 클릭합니다.

‘데이터베이스 생성’을 선택하고 [다음]을 클릭합니다.

[세부 정보 표시]를 클릭하면 템플리트별로 데이터베이스 구성 요소의 선택 여부를 확인할 수 있습니다.

‘범용 또는 트랜잭션 처리’를 선택하고 [다음]을 클릭합니다.

서비스 이름과 데이터베이스 이름은 동일하게 지정할 수 없습니다.

‘관리자 관리’가 체크된 상태에서 전역 데이터베이스 이름에 “racdb”을 입력하고 SID 접두어에 “racdb”를 입력합니다.

그리고 서비스 이름으로 데이터베이스 이름과는 다른 "rac"를 입력합니다.

모든 노드에 설치하기 위해 [모두 선택]을 클릭하고 [다음]을 클릭합니다.

자동 유지 관리 작업 탭을 클릭하면 자동 유지 관리 작업의 사용 여부를 결정할 수 있습니다.

리소스 절약을 위해 'Enterprise Manager 구성'의 체크를 해제하고 [다음]을 클릭합니다.

‘모든 계정에 동일한 관리 비밀번호 사용’을 체크하고 암호로 ‘oracle_4U’를 입력한 후 [다음]을 클릭합니다.

[파일 위치 변수]를 클릭하면 소프트웨어가 설치될 경로나 데이터베이스 이름이나 인스턴스 이름 등에 관한 정보를 확인할 수 있습니다.

ASM에 데이터베이스를 구성할 것이므로 데이터베이스 영역이 +ASM으로 되어 있는지 확인하고 [다음]을 클릭합니다.

[리두 로그 및 제어 파일 다중화]를 클릭하면 리두 로그나 컨트롤 파일의 다중화 경로를 설정할 수 있습니다.

ASM 디스크 그룹인 +DATA와 +RECO를 입력하면 해당 디스크 그룹에 복제본을 저장합니다.

빠른 복구 영역을 RECO 디스크 그룹으로 변경하기 위해 [찾아보기]를 클릭합니다.

‘RECO’를 선택하고 [확인]을 클릭합니다.

여기서 사용 가능 공간을 확인합니다.

앞에서 확인한 사용 가능 공간(“20000”MB)을 빠른 복구 영역 크기에 입력하고, ‘아카이브 사용으로 설정’을 선택한 후에 [다음]을 클릭합니다.

아카이브 로그 파일과 관련된 설정을 변경하려면 [아카이브 모드 매개변수 편집]을 클릭합니다.

아카이브 로그 파일 형식의 확장자는 .arc로 변경합니다.

기존의 .dbf를 유지할 경우 데이터 파일과 혼동할 수 있으므로 변경합니다.

데이터베이스 복구 옵션에 대한 선택이 완료되었으면 [다음]을 클릭합니다.

사용자 정의 스크립트 탭에서는 데이터베이스 생성 후에 수행할 SQL 스크립트를 추가할 수 있습니다.

샘플 스키마 설치 여부를 선택할 수 있습니다.

수정할 내용이 없으면 [다음]을 클릭합니다.

[모든 초기화 매개변수]를 클릭하면 데이터베이스 초기 파라미터를 수정할 수 있습니다.

[고급 매개변수 표시]를 클릭하면 더 많은 초기 파라미터를 설정할 수 있습니다.

할당된 메모리 내역을 확인할 수 있으며, 자동 메모리 관리 사용 여부도 선택할 수 있습니다.

프로세스의 수도 사용할 환경에 맞게 변경할 수 있습니다.

문자 집합에서 ‘유니코드(AL32UTF8) 사용’을 선택하고, 기본 언어는 ‘영어(미국)’으로 바꿉니다.

운영환경에서 문자와 언어를 선택하는 과정은 매우 중요합니다.

어플리케이션과의 호환성을 고려하여 신중하게 선택해야 합니다.

접속 모드는 기본값인 ‘전용 서버 모드’로 두고 [다음]을 클릭합니다.

[파일 위치 변수]를 클릭하면 제어 파일, 데이터 파일, 리두 로그 그룹에 대한 설정을 변경할 수 있습니다.

데이터베이스 저장 영역에 대한 정보를 확인하고 [다음]을 클릭합니다.

필수 사항은 아니지만 ‘데이터베이스 생성 스크립트 생성’을 체크하고 [완료]를 클릭합니다.

나중에 데이터베이스 생성 스크립트를 검토하거나 수동으로 생성할 때 참고할 수 있습니다.

데이터베이스 생성에 관한 요약 정보가 출력됩니다.

화면을 내려 구성에 대한 요약 정보를 검토할 수 있습니다.

먼저 데이터베이스 생성 스크립트 생성이 실행됩니다.

스크립트는 /u01/app/oracle/admin/racdb/scripts에 저장됩니다.

스크립트 생성이 완료되었으면 [확인]을 클릭합니다.

본격적인 데이터베이스 구성이 진행됩니다.

[비밀번호 관리]를 클릭하면 계정별 비밀번호와 잠금 여부를 수정할 수 있습니다.

데이터베이스 구성이 완료되었음을 알리는 안내창이 뜹니다.

[종료]를 클릭합니다.

oracle 유저로 수행
crsctl stat res -t
[oracle@racdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.RECO.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
ora.racdb.rac.svc
      1        ONLINE  ONLINE       rac1
ora.scan1.vip
      1        ONLINE  ONLINE       rac1

인스턴스가 1개만 존재하는 RAC One Node 데이터베이스가 생성되었습니다.

XII. Relocate Database

1. Database Relocate 작업

A) 작업 전 확인

root 나 oracle 유저로 수행합니다.
crsctl stat res -t
srvctl status database -d racdb
[oracle@racdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.RECO.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
ora.racdb.rac.svc
      1        ONLINE  ONLINE       rac1
ora.scan1.vip
      1        ONLINE  ONLINE       rac1

[oracle@racdb1 ~]$ srvctl status database -d racdb
racdb_1 인스턴스가 rac1 노드에서 실행 중임
온라인 재배치: INACTIVE

One Node RAC는 클러스터 내에서 단 하나의 인스턴스만 가동되는 형태로 운영됩니다.

여러가지 이유로 가동 중인 데이터베이스를 다른 서버로 재배치할 수 있습니다.

1번 노드에서 Open된 데이터베이스를 2번 노드로 재배치하는 작업을 진행합니다.

B) 2번 노드로 Relocate

root 나 oracle 유저로 수행합니다.
srvctl relocate database -d racdb -n rac2 -v
[oracle@racdb1 ~]$ srvctl relocate database -d racdb -n rac2 -v
두 개의 인스턴스에 대한 구성이 갱신되었습니다.
racdb_2 인스턴스가 시작되었습니다.
서비스가 재배치되었습니다.
최대 30분 동안 racdb_1 인스턴스가 정지되기를 기다리는 중...
racdb_1 인스턴스가 정지되었습니다.
하나의 인스턴스에 대한 구성이 갱신되었습니다.

srvctl 명령어의 relocate 옵션을 사용해서 racdb를 2번 노드로 재배치합니다.

재배치하는 과정을 상세히 보기 위해 v 옵션(verbose)을 사용하였습니다.

C) 2번 노드 Relocate 결과 확인

root 나 oracle 유저로 수행합니다.
srvctl status database -d racdb
crsctl stat res -t

Relocate 작업 중이면 다음과 같이 출력됩니다.

[oracle@racdb2 ~]$ srvctl status database -d racdb
racdb_1 인스턴스가 rac1 노드에서 실행 중임
온라인 재배치: ACTIVE
소스 인스턴스: rac1의 racdb_1
대상 인스턴스: rac2의 racdb_2

Relocate 작업이 완료되면 아래와 같이 출력됩니다.

[oracle@racdb2 ~]$ srvctl status database -d racdb
racdb_2 인스턴스가 rac2 노드에서 실행 중임
온라인 재배치: INACTIVE

[oracle@racdb2 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.RECO.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      2        ONLINE  ONLINE       rac2                     Open
ora.racdb.rac.svc
      1        ONLINE  ONLINE       rac2
ora.scan1.vip
      1        ONLINE  ONLINE       rac1

1번 노드에 있던 racdb가 중지되고 2번 노드로 재배치된 것을 확인할 수 있습니다.

D) 1번 노드로 Relocate

root 나 oracle 유저로 수행합니다.
srvctl relocate database -d racdb -n rac1 -v
[oracle@racdb1 ~]$ srvctl relocate database -d racdb -n rac1 -v
두 개의 인스턴스에 대한 구성이 갱신되었습니다.
racdb_1 인스턴스가 시작되었습니다.
서비스가 재배치되었습니다.
최대 30분 동안 racdb_2 인스턴스가 정지되기를 기다리는 중...
racdb_2 인스턴스가 정지되었습니다.
하나의 인스턴스에 대한 구성이 갱신되었습니다.

srvctl 명령어를 사용해서 2번 노드의 데이터베이스를 다시 1번 노드로 재배치합니다.

해당 명령어는 클러스터가 동작하는 One Node RAC가 구성된 노드 어디에서든 수행할 수 있습니다.

E) 1번 노드 Relocate 결과 확인

root 나 oracle 유저로 수행합니다.
srvctl status database -d racdb
crsctl stat res -t

Relocate 작업 중이면 다음과 같이 출력됩니다.

[oracle@racdb2 ~]$ srvctl status database -d racdb
racdb_2 인스턴스가 rac2 노드에서 실행 중임
온라인 재배치: ACTIVE
소스 인스턴스: rac2의 racdb_2
대상 인스턴스: rac1의 racdb_1

Relocate 작업이 완료되면 아래와 같이 출력됩니다.

[oracle@racdb2 ~]$ srvctl status database -d racdb
racdb_1 인스턴스가 rac1 노드에서 실행 중임
온라인 재배치: INACTIVE

[oracle@racdb2 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.RECO.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
ora.racdb.rac.svc
      1        ONLINE  ONLINE       rac1
ora.scan1.vip
      1        ONLINE  ONLINE       rac1

원래 있던 1번 노드로 데이터베이스가 재배치되었습니다.

XIII. Convert Database

1. RAC One Node에서 RAC로 변환

A) RAC로 변환

oracle 유저에서 수행합니다.
srvctl convert database -d racdb -c RAC
crsctl stat res -t
[oracle@racdb1 ~]$ srvctl convert database -d racdb -c RAC

[oracle@racdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.RECO.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
ora.racdb.rac.svc
      1        ONLINE  ONLINE       rac1
ora.scan1.vip
      1        ONLINE  ONLINE       rac1

클러스터 상에서 단 하나의 인스턴스만 기동되고 있는 One Node RAC는 복수의 인스턴스를 기동할 수 있는 RAC로 간단하게 변환할 수 있습니다.

srvctl 명령어의 convert 옵션을 사용하여 RAC로 변환합니다.

B) 2번 노드 인스턴스 추가 및 기동

oracle 유저에서 수행합니다.
srvctl add instance -d racdb -i racdb_2 -n rac2
srvctl start instance -d racdb -i racdb_2
crsctl stat res -t
[oracle@racdb1 ~]$ srvctl add instance -d racdb -i racdb_2 -n rac2

[oracle@racdb1 ~]$ srvctl start instance -d racdb -i racdb_2
 
[oracle@racdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.RECO.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
      2        ONLINE  ONLINE       rac2                     Open
ora.racdb.rac.svc
      1        ONLINE  ONLINE       rac1
ora.scan1.vip
      1        ONLINE  ONLINE       rac1

RAC로 변환이 된 후에는 다중 인스턴스 환경을 구성할 수 있습니다.

srvctl 명령어의 add instance 옵션으로 인스턴스를 추가하고, start instance 옵션으로 생성된 인스턴스를 기동합니다.

C) 서비스 중지 및 삭제 (선택)

oracle 유저에서 수행합니다.
srvctl stop service -d racdb -s rac
srvctl remove service -d racdb -s rac
crsctl stat res -t
[oracle@racdb1 ~]$ srvctl stop service -d racdb -s rac

[oracle@racdb1 ~]$ srvctl remove service -d racdb -s rac
 
[oracle@racdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.RECO.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
      2        ONLINE  ONLINE       rac2                     Open
ora.scan1.vip
      1        ONLINE  ONLINE       rac1

One Node RAC를 구성하기 위해 필수적으로 존재했던 service는 RAC 환경에서는 삭제해도 무방합니다.

다만, 기존에 tns 접속 설정이 서비스로 접속하는 형태였다면 영향도를 고려하여 RAC 구성에 맞게 service를 재생성하거나 tns 접속 설정을 변경하는 과정이 필요합니다.

2. RAC에서 RAC One Node로 변환

A) 2번 노드 인스턴스 정지 및 제거

oracle 유저에서 수행합니다.
srvctl stop instance -d racdb -i racdb_2
srvctl remove instance -d racdb -i racdb_2
crsctl stat res -t
[oracle@racdb1 ~]$ srvctl stop instance -d racdb -i racdb_2

[oracle@racdb1 ~]$ srvctl remove instance -d racdb -i racdb_2
racdb 데이터베이스에서 인스턴스를 제거하겠습니까? (y/[n]) y

[oracle@racdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.RECO.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
ora.scan1.vip
      1        ONLINE  ONLINE       rac1

기존에 운영되던 RAC 또한 One Node RAC로 간단하게 전환할 수 있습니다.

단 하나의 인스턴스만 남기고, 나머지 인스턴스는 모두 삭제해야 합니다.

srvctl 명령어의 stop instance 옵션으로 인스턴스를 중지하고, remove instance 옵션으로 중지된 인스턴스를 제거합니다.

B) 서비스 생성 및 기동

oracle 유저에서 수행합니다.
srvctl add service -d racdb -s rac -r racdb_1
srvctl start service -d racdb -s rac
[oracle@racdb1 ~]$ srvctl add service -d racdb -s rac -r racdb_1

[oracle@racdb1 ~]$ srvctl start service -d racdb -s rac

One Node RAC 구성에 필수 요건인 service를 추가합니다.

service는 반드시 단 하나의 인스턴스에만 등록되어야 합니다.

srvctl 명령어의 add service 옵션으로 service를 추가하고, start service 옵션으로 service를 기동합니다.

C) RAC One Node로 변환

oracle 유저에서 수행합니다.
srvctl convert database -d racdb -c RACONENODE -i racdb_1
crsctl stat res -t
[oracle@racdb1 ~]$ srvctl convert database -d racdb -c RACONENODE -i racdb_1     

[oracle@racdb1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.DATA.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.RECO.dg
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.asm
               ONLINE  ONLINE       rac1                     Started
               ONLINE  ONLINE       rac2                     Started
ora.gsd
               OFFLINE OFFLINE      rac1
               OFFLINE OFFLINE      rac2
ora.net1.network
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
ora.ons
               ONLINE  ONLINE       rac1
               ONLINE  ONLINE       rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac1
ora.cvu
      1        ONLINE  ONLINE       rac1
ora.oc4j
      1        ONLINE  ONLINE       rac1
ora.rac1.vip
      1        ONLINE  ONLINE       rac1
ora.rac2.vip
      1        ONLINE  ONLINE       rac2
ora.racdb.db
      1        ONLINE  ONLINE       rac1                     Open
ora.racdb.rac.svc
      1        ONLINE  ONLINE       rac1
ora.scan1.vip
      1        ONLINE  ONLINE       rac1

마지막으로 RAC를 One Node RAC로 변환합니다.

srvctl 명령어의 convert database 옵션으로 작업을 수행합니다.

 


  • 레이블 없음