I. 개요
1. 사용 Software
제품명 | 버전 | 아키텍쳐 | 배포 사이트 |
---|---|---|---|
VirtualBox | 4.3.x | 호스트 환경에 따름 | https://www.virtualbox.org |
Oracle Enterprise Linux | 5 (Update 8 이상 권장) | x86 32bit | |
Clusterware, Database | 11.2 (11.2.0.3 이상 권장) | x86 32bit | https://support.oracle.com (My Oracle Support 권한 필요) |
ASMLib | 2.0 | x86 (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) 서버
VM | Host Name | Memory | Net Adapter 1 | Net Adapter 2 | 구성 방법 | 비고 |
---|---|---|---|---|---|---|
RAC1 | rac1 | 2048MB | 브리지 어댑터 | 호스트 전용 어댑터 | 리눅스 설치 | |
RAC2 | rac2 | 2048MB | 브리지 어댑터 | 호스트 전용 어댑터 | RAC1 복제 |
리눅스 기반의 2 node RAC로 구성합니다.
따라서 최소 2개의 Virtual Machine(이하 VM)이 구성되어야 합니다.
B) 스토리지
- 개별 스토리지
파일 이름 | 용량 | 타입 | 용도 | 비고 |
---|---|---|---|---|
RAC1.vdi | 30GB | Dynamic | 1번 서버의 시스템 영역 | |
RAC2.vdi | 30GB | Dynamic | 2번 서버의 시스템 영역 | RAC1을 복제하여 사용합니다. |
- 공유 스토리지
Automatic Storage Management를 이용하여 Data 공간과 Fast Recovery Area를 구성합니다.
디스크 공간을 절약하기 위해 설치 파일은 모두 한 곳에 압축을 풀어 VirtualBox의 게스트 확장 기능으로 VM에서 불러와 사용합니다.
C) 네트워크
VM | Public IP | Private IP | Virtual IP | Netmask | Gateway | SCAN IP |
---|---|---|---|---|---|---|
RAC1 | 10.0.1.101 | 10.0.5.101 | 10.0.1.111 | 255.255.255.0 | 10.0.1.1 | 10.0.1.110 |
RAC2 | 10.0.1.102 | 10.0.5.102 | 10.0.1.112 | 255.255.255.0 | 10.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 설정
III. LINUX 설치
IV. 운영체제 환경 설정
V. 공유 스토리지 설정
VI. RAC2 VM 구성
VII. GRID 설치
VIII. ASM Disk Group 생성
IX. DBMS 설치
X. Patch 적용
XI. RAC One Node Database 생성
chmod 770 /u01/app/oracle chmod 770 /u01/app/oracle/cfgtoollogs chmod -R 775 /u01/app/oracle/diag
grid와 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에 저장됩니다.
스크립트 생성이 완료되었으면 [확인]을 클릭합니다.
본격적인 데이터베이스 구성이 진행됩니다.
[비밀번호 관리]를 클릭하면 계정별 비밀번호와 잠금 여부를 수정할 수 있습니다.
데이터베이스 구성이 완료되었음을 알리는 안내창이 뜹니다.
[종료]를 클릭합니다.
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) 작업 전 확인
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
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 결과 확인
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
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 결과 확인
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로 변환
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번 노드 인스턴스 추가 및 기동
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) 서비스 중지 및 삭제 (선택)
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번 노드 인스턴스 정지 및 제거
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) 서비스 생성 및 기동
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로 변환
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 옵션으로 작업을 수행합니다.