-
RAC 02: 2 Node RAC 구축 — VM 환경 준비 & Grid 설치DB 스터디/04_RAC 2026. 5. 20. 18:43
실습 스크립트 전체 보기: https://github.com/nsylove97/NSY-DB-Portfolio
실습 환경
OS Oracle Linux 7.9 (VMware Virtual Machine) DB Oracle Database 19c Grid Oracle Grid Infrastructure 19c 구성 2 Node RAC (VM1 · VM2) 공유 스토리지 ASM (+DATA / +FRA / +REDO / +OCR) 네트워크 Public (NAT) · Private (Host-only) · VIP · SCAN VM1/VM2
초기 구성 참조ASM 실습 01
목차
1. 사전 준비 — VM1 스냅샷 복구
2. VM1 · VM2 호스트명 / IP 설정 확인
3. /etc/hosts 동기화 확인
4. Private Interconnect (NIC 2) 활성화 및 통신 확인
5. VMX 설정 확인
6. ASM 공유 디스크 연결 확인 — VM2에서 oracleasm scandisks
7. gridSetup.sh (Cluster 모드) — 2 Node RAC Grid Infrastructure 설치
8. 클러스터 리소스 상태 확인 — crsctl stat res -t
9. ASMCA 실행 — 디스크 그룹 DATA, FRA, REDO 생성
10. DB 소프트웨어 설치 — runInstaller
11. RAC DB 생성 — dbca
12. 설치 결과 확인
13. 주요 명령어 정리
1. 사전 준비 — VM1 스냅샷 복구
- RAC 구축은 기존에 구성된 Standalone Grid / Data Guard 환경과 별도로 진행
- VM1을 스냅샷으로 깨끗한 초기 상태로 되돌린 후 시작
-- [VMware — 스냅샷 복구 절차] -- Snapshot Manager에서 "ASM 설치 직후" 스냅샷 선택 -- Go To → VM1 초기 상태 복구 완료
VMwared에서 VM-Snap-Snapshot Manager 선택, ASM 설치 직후 스냅샷 선택 후 'Go To' 클릭 
스냅샷으로 복구할 거냐는 메시지, 'Yes' 클릭 
ASM 설치 후로 복구 완료 -- VM1 기동 후 상태 확인 $ hostname oelsvr1.localdomain $ ip addr show ens33 -- Public IP 확인 (예: 192.168.111.50)
host 이름과 Public IP 확인 - VM2는 ASM 실습 01에서 VM1의 Clone으로 만들어 둔 VM 그대로 사용
- VM3(Data Guard Standby용)는 이번 실습과 무관하므로 종료 상태 유지
2. VM1 · VM2 호스트명 / IP 설정 확인
VM2 기동 후 호스트명과 IP 확인, VM1과 동일하면 변경
-- [VM2] $ hostname oelsvr1.localdomain $ ip addr show ens33 | grep inet inet 192.168.111.50/24
VM2 기동 후 host 이름과 Public IP 동일한 것 확인 -- [VM2 — root] Hostname 수정 $ hostnamectl set-hostname oelsvr2 -- IP 수정 $ vi /etc/sysconfig/network-scripts/ifcfg-ens33 -- IPADDR=192.168.111.51 <-- 이 부분을 50에서 51로 변경 -- 네트워크 재시작 및 확인 $ systemctl restart network $ hostname oelsvr2 $ ip addr show ens33 | grep inet inet 192.168.111.51/24
VM2에서 Hostname 수정 
IP도 수정 
네트워크 재시작 후 Hostname과 IP 변경된 것 확인
3. /etc/hosts 동기화 확인
양 노드의 /etc/hosts가 Public · VIP · Private · SCAN 대역 모두 일치하는지 확인
-- [VM1 · VM2 공통] $ cat /etc/hosts -- [출력 예시] 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 # Public 192.168.111.50 oelsvr1 oelsvr1.localdomain 192.168.111.51 oelsvr2 oelsvr2.localdomain # VIP 192.168.111.52 oelsvr1-vip 192.168.111.53 oelsvr2-vip # Private 10.10.10.1 oelsvr1-priv 10.10.10.2 oelsvr2-priv # SCAN 192.168.111.55 oelsvr-scan 192.168.111.56 oelsvr-scan # 추가 1 192.168.111.57 oelsvr-scan # 추가 2
VM1에서 /etc/hosts 파일 내용 확인 
VM1에서 /etc/hosts 파일 내용 확인 - SCAN IP는 /etc/hosts에 동일한 호스트명으로 3개 등록 (DNS 없는 실습 환경 기준)
- VM1 기준으로 작성 후 scp /etc/hosts root@oelsvr2:/etc/hosts 로 VM2에 동일하게 복사하면 편리
4. Private Interconnect (NIC 2) 활성화 및 통신 확인
노드 간 Cache Fusion · GCS/GES 통신에 사용할 Private NIC(ens37, Host-only) 활성화, 양 노드 간 통신 검증
-- [VM1 — root] -- 리눅스에서 인식한 Pirvate NIC 네트워크 인터페이스 이름 확인 $ ip link -- [결과] (이름: ens37) -- 1: lo -- 2: ens33 -- 3: ens37 -- ifcfg-ens37이 없으므로 새로 생성 $ vi /etc/sysconfig/network-scripts/ifcfg-ens37 TYPE=Ethernet BOOTPROTO=none NAME=ens37 DEVICE=ens37 IPADDR=10.10.10.1 PREFIX=24 ONBOOT=yes $ systemctl restart network $ ip addr show ens37 | grep inet inet 10.10.10.1/24
VM1에서 Private NIC 네트워크 인터페이스 이름 확인 (ens37) 
ifcfg-ens37 생성 후 내용 입력 
네트워크 재시작 후 적용 확인 -- [VM2 — root] -- 리눅스에서 인식한 Private NIC 네트워크 인터페이스 이름 확인 $ ip link -- [결과] (이름: ens37) -- 1: lo -- 2: ens33 -- 3: ens37 -- ifcfg-ens37이 없으므로 새로 생성 $ vi /etc/sysconfig/network-scripts/ifcfg-ens37 TYPE=Ethernet BOOTPROTO=none NAME=ens37 DEVICE=ens37 IPADDR=10.10.10.2 PREFIX=24 ONBOOT=yes $ systemctl restart network $ ip addr show ens37 | grep inet inet 10.10.10.2/24
VM2에서도 Pirvate NIC 네트워크 인터페이스 이름 확인 (ens37) 
ifcfg-ens37 생성 후 내용 입력 
네트워크 재시작 후 적용 확인 -- [VM1] M2 Private IP로 ping 확인 $ ping -c 3 10.10.10.2 -- [VM2] VM1 Private IP로 ping 확인 $ ping -c 3 10.10.10.1
VM1에서 VM2 Pirvate IP로 ping 확인 
VM2에서 VM1 Pirvate IP로 ping 확인 - ONBOOT=yes 누락 시 재부팅 후 NIC가 down 상태가 되므로 반드시 설정
- ping 실패 시 VMware 어댑터가 Host-only로 설정되어 있는지 확인
5. VMX 설정 확인
공유 ASM 디스크를 양 노드에서 동시에 사용하려면 VMX 파일에 다음 설정 필요
-- [VMware Host — VM1.vmx · VM2.vmx 파일 직접 편집 또는 확인] # 1. 디스크 잠금 해제 (양쪽 VM 동시 접근 허용) disk.locking = "FALSE" # 2. 디스크 UUID 고정 (oracleasm이 디스크를 고유하게 인식하도록 함) disk.EnableUUID = "TRUE" # 3. 디스크 캐시 비활성화 (데이터 동기화 꼬임 방지) diskLib.dataCacheMaxSize = "0" # 4. 미리 읽기(Read Ahead) 캐시 비활성화 (캐시를 완전히 끄기 위한 세트 설정) diskLib.dataCacheMaxReadAheadSize = "0" # 5. ASM 디스크가 연결된 SCSI 컨트롤러를 공유 모드로 설정 scsi1.sharedBus = "virtual"
VM1.vmx에서 설정 확인 
VM2.vmx에서도 설정 확인 항목 값 목적 disk.locking FALSE VMware 기본 디스크 잠금 비활성화 → 여러 VM이 동일 디스크 접근 허용 disk.EnableUUID TRUE 디스크에 고정 UUID 부여 → oracleasm이 디스크를 안정적으로 인식 diskLib.dataCacheMaxSize 0 디스크 캐시 비활성화 → 데이터 동기화 꼬임 방지 diskLib.dataCacheMaxReadAheadSize 0 미리 읽기 캐시 비활성화 → 캐시 완전 비활성화 세트 설정 scsi1.sharedBus virtual ASM 디스크가 연결된 SCSI 컨트롤러를 공유 모드로 설정 - VM2.vmx에도 동일하게 설정되어 있어야 함
- VMware에서 VM 전원이 꺼진 상태에서 .vmx 파일을 텍스트 에디터로 직접 열어 확인·수정
- scsi1은 ASM 디스크가 연결된 SCSI 컨트롤러 번호에 맞게 지정 (다른 컨트롤러 번호를 사용하는 경우 scsi0, scsi2 등으로 변경)
모든 ASM 디스크 Disk Mode 설정
VM1 · VM2의 Settings에서 모든 ASM 디스크의 Disk Mode를 Independent - Persistent로 설정

VM1에서 모든 ASM 디스크의 Mode를 Independent-Persistent로 설정 
VM2에서도 똑같이 설정 - Independent - Persistent로 설정하면 스냅샷 촬영 시 ASM 디스크 제외됨
- 이 설정 생략 시, 스냅샷 시점에 ASM 디스크가 포함되어 데이터 불일치 또는 -000001.vmdk 형태의 파일 분리 발생 가능
6. ASM 공유 디스크 연결 확인 — VM2에서 oracleasm scandisks
VM1에서 생성한 ASM 디스크(asm_disk1~11.vmdk)가 VM2에도 연결되어 있는지 확인 후 VM2에서 oracleasm으로 인식
-- [VM2 — root] -- ASMLib 서비스 기동 $ systemctl start oracleasm $ systemctl enable oracleasm -- 공유 디스크 스캔 $ oracleasm scandisks Reloading disk partitions: done Cleaning any stale ASM disks... Scanning system for ASM disks... -- 인식된 디스크 목록 확인 $ oracleasm listdisks DATA1 DATA2 DATA3 DATA4 FRA1 FRA2 OCR1 OCR2 OCR3 REDO1 REDO2
VM1에서 ASMLib 서비스 활성화 후 디스크 스캔 및 목록 확인 - VM1에서 oracleasm createdisk로 레이블링한 디스크는 VM2에서 scandisks만 실행하면 자동으로 인식
- createdisk를 VM2에서 다시 실행하지 않음
- 디스크가 인식되지 않으면 VMware 설정에서 해당 .vmdk 파일이 VM2에 실제로 연결되어 있는지 확인
-- [VM1 — 비교 확인] $ oracleasm listdisks DATA1 DATA2 ... REDO2 -- 양 노드 목록이 동일해야 함
VM1에서 ASM 디스크 목록
7. gridSetup.sh (Cluster 모드) — 2 Node RAC Grid Infrastructure 설치
- Grid Infrastructure를 Cluster 모드로 설치
- 설치는 VM1에서만 실행하며 VM2는 설치 과정 중 원격으로 구성
-- [VM1 — grid 계정] $ cd $ORACLE_HOME $ ./gridSetup.sh
VM1의 grid 계정에서 Grid 설치 설치 화면 주요 선택 항목은 다음과 같음
단계 선택 값 Configuration Option Configure Oracle Grid Infrastructure for a New Cluster Cluster Configuration Configure an Oracle Standalone Cluster Cluster Name oelsvr-cluster SCAN Name oelsvr-scan SCAN Port 1521 Cluster Nodes 추가 oelsvr1 (local) + oelsvr2 추가 Network Interface Usage ens37 (Host-only NIC 선택) : ASM & Private Storage Option Use Oracle Flex ASM for storage ASM Disk Group +OCR (OCR 1, OCR 2, OCR 3 선택, NORMAL Redundancy) ASM Password 설정 OS Groups asmadmin / asmdba / asmoper Install Location $GRID_HOME root script execution Automatically (자동 실행) 
Configuration Option: Configure Oracle Grid Infrastructure for a New Cluster 선택 
Cluster Configuration: Configure an Oracle Standalone Cluster 선택 
Cluster Name, SCAN Name, SCAN Port 설정 
Cluster Node Information에서 Add 선택 
oelsvr2와 oelsvr2-vip 입력 후 OK 
노드 추가된 것 확인 후 SSH connectivity -> Grid 계정 OS Password 입력 -> Setup 
SSH 연결이 성공적으로 이루어진 것 확인 
Network Interface Usage: ASM & Private 선택 
Storage Option: Use Oracle Flex ASM for storage 선택 
Create Grid Infrastructure Management Repository: No 선택 (관리용 DB 생성 여부) 
디스크 그룹 이름: OCR, Redundancy는 Normal, Change Discovery Path -> /dev/oracleasm/disks/* 
OCR 1-3 체크 
ASM Password는 똑같이 부여했음 
Failure Isolation: IPMI 사용 안 함 
Management Options: EM Cloud Control 사용 안 함 
Operating System Groups: OS 그룹은 그대로 
Installation Location: Oracle Base와 Grid Home 경로 확인 
Create Inventory: 인벤토리 경로 확인 
Root script execution: 자동 실행 선택 
Prerequisite Checks: Ignore All 선택 - resolv.conf Integrity, DNS/NIS name service는 DNS 서버가 구축되지 않아 발생한 오류. 테스트 환경에서는 지장 없음 (Host name은 /etc/hosts 파일 수정으로 해결)

Summary에서 세팅값 확인 
설치 진행 중 
root 스크립트 실행할거냐는 메시지, Yes 선택 
설치가 끝날 때 쯤 인증 오류 발생하나 무시해도 됨, OK 선택 
이것도 Yes 선택, 설치 완료
8. 클러스터 리소스 상태 확인 — crsctl stat res -t
Grid 설치 완료 후 클러스터 리소스 전체가 정상 기동되었는지 확인
-- [VM1 — grid 또는 root] $ crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.LISTENER.lsnr ONLINE ONLINE oelsvr1 STABLE ONLINE ONLINE oelsvr2 STABLE ora.chad ONLINE ONLINE oelsvr1 STABLE ONLINE ONLINE oelsvr2 STABLE ora.net1.network ONLINE ONLINE oelsvr1 STABLE ONLINE ONLINE oelsvr2 STABLE ora.ons ONLINE ONLINE oelsvr1 STABLE ONLINE ONLINE oelsvr2 STABLE -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup) 1 ONLINE ONLINE oelsvr1 STABLE 2 ONLINE ONLINE oelsvr2 STABLE 3 OFFLINE OFFLINE STABLE ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE oelsvr2 STABLE ora.LISTENER_SCAN2.lsnr 1 ONLINE ONLINE oelsvr1 STABLE ora.LISTENER_SCAN3.lsnr 1 ONLINE ONLINE oelsvr1 STABLE ora.OCR.dg(ora.asmgroup) 1 ONLINE ONLINE oelsvr1 STABLE 2 ONLINE ONLINE oelsvr2 STABLE 3 OFFLINE OFFLINE STABLE ora.asm(ora.asmgroup) 1 ONLINE ONLINE oelsvr1 Started,STABLE 2 ONLINE ONLINE oelsvr2 Started,STABLE 3 OFFLINE OFFLINE STABLE ora.asmnet1.asmnetwork(ora.asmgroup) 1 ONLINE ONLINE oelsvr1 STABLE 2 ONLINE ONLINE oelsvr2 STABLE 3 OFFLINE OFFLINE STABLE ora.cvu 1 ONLINE ONLINE oelsvr1 STABLE ora.oelsvr1.vip 1 ONLINE ONLINE oelsvr1 STABLE ora.oelsvr2.vip 1 ONLINE ONLINE oelsvr2 STABLE ora.qosmserver 1 ONLINE ONLINE oelsvr1 STABLE ora.scan1.vip 1 ONLINE ONLINE oelsvr2 STABLE ora.scan2.vip 1 ONLINE ONLINE oelsvr1 STABLE ora.scan3.vip 1 ONLINE ONLINE oelsvr1 STABLE --------------------------------------------------------------------------------
클러스터 리소스 상태 확인, 모두 정상 작동중 - 모든 리소스의 Target과 State가 ONLINE / ONLINE 이어야 함
- OFFLINE 상태인 리소스는 crsctl start res <리소스명> 으로 수동 기동한 후 원인 확인
- SCAN 리스너 3개, VIP 2개, OCR 디스크 그룹이 자동 등록되어 있는지 확인
-- OCR · Voting Disk 배치 확인 $ crsctl query css votedisk ## STATE File Universal Id File Name Disk group -- ----- ----------------- --------- --------- 1. ONLINE xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (/dev/oracleasm/disks/OCR1) [OCR] 2. ONLINE xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (/dev/oracleasm/disks/OCR2) [OCR] 3. ONLINE xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (/dev/oracleasm/disks/OCR3) [OCR] Located 3 voting disk(s). $ ocrcheck [grid@oelsvr1 ~]$ ocrcheck Status of Oracle Cluster Registry is as follows : Version : 4 Total space (kbytes) : 491684 Used space (kbytes) : 84036 Available space (kbytes) : 407648 ID : 117449484 Device/File Name : +OCR Device/File integrity check succeeded Device/File not configured Device/File not configured Device/File not configured Device/File not configured Cluster registry integrity check succeeded Logical corruption check bypassed due to non-privileged user
OCR과 Voting Disk 배치 확인 - Voting Disk는 +OCR 디스크 그룹 내에 NORMAL Redundancy 기준으로 3개 자동 배치됨
- OCR도 동일하게 +OCR 디스크 그룹에 저장됨
9. ASMCA 실행 — 디스크 그룹 DATA, FRA, REDO 생성
-- [VM1 — grid 계정] $ asmca
VM1 grid 계정에서 asmca 실행 
디스크 그룹 DATA, FRA, REDO를 Redundancy Normal로 생성
10. DB 소프트웨어 설치 — runInstaller
-- [VM1 — oracle 계정] $ cd $ORACLE_HOME $ ./runInstaller
VM1 Oracle 계정에서 ORACLE_HOME으로 이동, runInstaller 실행 runInstaller 주요 선택 항목:
단계 선택 값 Configuration Option Set Up Software Only Node Selection oelsvr1 · oelsvr2 모두 체크 SSH Connectivity 패스워드 없이 노드 간 통신 설정 
Configuration Option: Set Up Software Only 선택 
Database Installation Option: Oracle Real Application Clusters database installation 선택 
Nodes Selection: oelsvr2 선택 후 SSH connectivity -> OS Password 입력 -> Setup 
oelsvr2 연결 성공 
Database Edition: Enterprise Edition 선택 
Installation Location: Oracle Base와 Oracle Home 위치 확인 
Operating System Groups: OS 그룹 확인, 그대로 유지 
자동 Root 스크립트 실행 선택 후 root 비밀번호 입력 Prerequisite Check 오류 처리
설치 전 사전 점검 단계에서 아래 오류가 발생 가능

Prerequisite Checks: 여러 오류가 뜸 1. PRVG-11932 — oelsvr2에 디렉토리 생성 불가
- oelsvr1의 설치 프로그램이 oelsvr2에 원격으로 디렉토리를 생성하려 할 때 권한이 없어 실패한 문제
- 조치 후 설치 화면에서 [Check Again] 클릭
-- [VM2 — root] -- 디렉토리 사전 생성 $ mkdir -p /u01/app/oracle/product/19.3.0/dbhome -- oracle 계정으로 소유권 변경 $ chown -R oracle:oinstall /u01/app/oracle -- 쓰기 권한 부여 $ chmod -R 775 /u01/app/oracle
VM2에 오라클 홈 디렉토리 생성 후 소유권 및 쓰기 권한 부여 
Check Again 클릭 
사라짐, 문제 해결 2. PRVG-13606 — VM2 chrony 시간 동기화 실패
-- [VM2 — root] -- chronyd 재시작 $ systemctl restart chronyd -- 즉시 시간 동기화 강제 실행 $ chronyc makestep 200 OK -- 외부 시간 서버 연결 확인 $ chronyc sources -v
VM2에서 chrony 재시작 후 시간 동기화, 외부 시간 서버 연결 확인 
다시 Check Again 
해결 안 됨 
VM1에서도 chrony 다시 동기화 
Check Again 눌렀지만 해결 안 됨 
VM1과 VM2 재부팅하니까 해결됨 - 출력 결과 왼쪽에 ^* 기호가 표시되어야 정상 동기화 완료. ^?만 나오면 수 초 후 재확인
- oelsvr1에서도 동일 오류가 발생했다면 같은 절차 반복
- 그래도 안 되면 VM1 & VM2 재부팅
3. resolv.conf Integrity, DNS/NIS name service 'oelsvr-scan' — 해결 불가, 무시
- 실제 DNS 서버 없이 /etc/hosts에 SCAN IP를 등록한 VM 환경에서는 이 오류를 해결할 수 없음
- 설치 화면에서 [Ignore All] 체크 후 [Next]로 넘어감

DNS 문제이기 때문에 해결할 수 없음, Ignore All 선택 
Summary: 설치 정보 확인 
설치 진행 중 
하지만 SELinux 오류로 중단됨 SELinux 오류 해결법
-- [VM1 · VM2 — root] -- 영구 비활성화 (재부팅 후에도 유지) $ vi /etc/selinux/config -- SELINUX= 항목을 아래와 같이 수정 SELINUX=disabled
VM1, VM2에서 /etc/selinux/config 편집, SELINUX=disabled로 변경 -- [VM1 · VM2 — root] -- 방화벽 중지 및 영구 비활성화 -- SELinux가 켜진 환경은 방화벽도 켜져 있을 가능성이 높다 -- 방화벽이 켜져 있으면 Private IP 노드 간 통신이 차단되어 설치가 실패한다 $ systemctl stop firewalld $ systemctl disable firewalld
VM1, VM2에서 방화벽 중지 및 비활성화 설치 실패 후 재설치 절차
설치 도중 Install Product 단계에서 오류로 중단된 경우, 찌꺼기 파일과 설정을 완전히 초기화한 후 재시작
1단계 — 설치 창 종료
- 오류 창을 닫고 설치 프로그램 하단 [Cancel] → [Yes]를 클릭해 설치 완전히 종료
2단계 — 양 노드 $ORACLE_HOME 초기화
-- [VM1 · VM2 — oracle] $ cd $ORACLE_HOME $ pwd -- 경로가 정확한지 반드시 확인 후 진행 -- 내부 파일 및 숨김 파일 모두 삭제 $ rm -rf * $ rm -rf .[^.]* -- 빈 폴더 확인 (. 과 .. 만 보여야 함) $ ls -al
VM1, VM2에서 오라클 홈 디렉토리 초기화 3단계 — Inventory 기록 삭제
-- [VM1 — oracle] $ vi /u01/app/oraInventory/ContentsXML/inventory.xml
VM1의 inventory.xml에서 DB 경로 적힌 줄 삭제 - <HOME_LIST> 아래에서 DB 경로(/u01/app/oracle/product/19.3.0/dbhome)가 적힌 줄만 dd로 삭제 후 :wq 저장
- Grid 경로(/u01/app/19.3.0/grid)가 적힌 줄은 절대 건드리지 말 것
- DB 경로 줄이 없으면 :q로 종료
4단계 — VM1 · VM2 재시작
-- [VM1 · VM2 — root] $ reboot
VM1 VM2 재시작 5단계 — VM1에 설치 파일 압축 해제
-- [VM1 — oracle] $ cd $ORACLE_HOME $ unzip LINUX.X64_193000_db_home.zip
VM1에서 오라클 홈 디렉토리로 이동, 설치 파일 압축 해제 6단계 — 재설치 시작
-- [VM1 — oracle] $ cd $ORACLE_HOME $ ./runInstaller
재설치 시작 
설치 중 root 스크립트 실행 여부 메시지, Yes 선택 
설치 완료
11. RAC DB 생성 — dbca
양 노드 소프트웨어 설치가 완료된 후 dbca 실행
-- [VM1 — oracle 계정] $ dbca
VM1에서 dbca 실행 dbca 주요 선택 항목:
단계 선택 값 Database Operation Create a Database Creation Mode Advanced Configuration Deployment Type Oracle Real Application Clusters (RAC) database Node Selection oelsvr1 · oelsvr2 모두 선택 Database Identification Global Name: orcl, SID Prefix: orcl Storage Option Oracle Automatic Storage Management (ASM) Storage Location +DATA Fast Recovery Area +FRA Configuration Type General Purpose Memory 적절히 조정 (각 노드 RAM 기준) Character Set AL32UTF8 Connection Mode Dedicated Server Mode 
Database Operation: Create a database 선택 
Creation Mode: Advanced configuration 선택 
Deployment Type: Database Type은 RAC, 탬플릿은 General Purpose 선택 
Nodes Selection: oelsvr2 선택 
Database Identification: Global DB name과 SID Prefix 모두 orcl 입력, CDB는 해제 
Storage Option: Type은 ASM 선택 , DB 파일 위치는 그대로 유지, Multiplex redo logs and control files 클릭 
1번에 '+REDO', 2번에 '+FRA' 입력 
Fast Recovery Option: FRA 체크 후 FRA 영역은 +FRA 디스크 그룹 지정, 아카이브 모드 활성화 
Data Vault Option: 체크 안 하고 Next 
Configuration Options: 메모리는 ASMM 설정 그대로 유지 
캐릭터 셋도 그대로 유지 
Connection Mode도 Dedicated server mode 그대로 유지 
HR 샘플 스키마는 체크 
Management Options: CVU는 체크 해제, EM은 그대로 유지 
User Credentials: 관리자 암호는 똑같이 설정 
Creation Option: Create database 체크 
Prerequisite Checks: DNS 설정 때문에 생기는 오류, Ignore All 선택 
Summary: DB 생성 설정값 확인 
DB 생성 중 
DB 생성 완료 -- DB 생성 완료 후 인스턴스 확인 $ srvctl status database -d orcl Instance orcl1 is running on node oelsvr1 Instance orcl2 is running on node oelsvr2
DB 생성 완료 후 인스턴스 확인 
crsctl stat res -t에서 ora.orcl.db 리소스 추가된 것 확인 - SID Prefix가 orcl이면 인스턴스명은 자동으로 orcl1, orcl2로 부여됨
12. 설치 결과 확인
-- [VM1 — oracle 계정] -- ORACLE_SID를 RAC 인스턴스명으로 변경 $ vi ~/.bash_profile -- 아래 항목을 찾아 orcl1으로 수정 export ORACLE_SID=orcl1 -- 변경 사항 적용 $ source ~/.bash_profile $ sqlplus / as sysdba -- 각 노드별 인스턴스 정보 확인 SQL> SELECT inst_id, instance_name, host_name, status FROM gv$instance; -- INST_ID INSTANCE_NAME HOST_NAME STATUS -- ---------- ---------------- ------------------------------ ------------ -- 1 orcl1 oelsvr1.localdomain OPEN -- 2 orcl2 oelsvr2
VM1 oracle 계정의 .bash_profile 편집, ORACLE_SID=orcl1로 변경 
변경 적용 후 sqlplus로 접속 
각 노드별 인스턴스 정보 확인 - gv$instance에서 양 노드(inst_id 1, 2)가 OPEN 상태이면 2 Node RAC 구축 완료
-- ASM 인스턴스 확인 (양 노드) $ srvctl status asm ASM is running on oelsvr2,oelsvr1 -- 리스너 확인 $ srvctl status listener Listener LISTENER is enabled Listener LISTENER is running on node(s): oelsvr2,oelsvr1 -- SCAN 리스너 확인 $ srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is running on node oelsvr1 SCAN Listener LISTENER_SCAN2 is enabled SCAN listener LISTENER_SCAN2 is running on node oelsvr2 SCAN Listener LISTENER_SCAN3 is enabled SCAN listener LISTENER_SCAN3 is running on node oelsvr2
ASM 인스턴스, 리스너 및 SCAN 리스너 확인 -- crsctl stat res -t 최종 확인 $ crsctl stat res -t -- 모든 리소스 ONLINE / ONLINE 확인
crsctl stat res -t 최종 확인
13. 주요 명령어 정리
명령어 설명 oracleasm scandisks ASM 공유 디스크 재스캔 oracleasm listdisks 인식된 ASM 디스크 목록 조회 crsctl stat res -t 전체 클러스터 리소스 상태 확인 crsctl query css votedisk Voting Disk 위치 및 상태 확인 ocrcheck OCR 무결성 확인 srvctl status database -d <db> RAC DB 전체 인스턴스 상태 확인 srvctl status asm ASM 인스턴스 상태 확인 srvctl status listener 노드 리스너 상태 확인 srvctl status scan_listener SCAN 리스너 상태 확인 crsctl start res <리소스명> 특정 리소스 수동 기동
핵심 요약
주제 핵심 포인트 VM 사전 준비 VM1 스냅샷 복구 → VM2 Clone 활용 · VM3 종료 유지 /etc/hosts Public · VIP · Private · SCAN 양 노드 완전 일치 필수 Private NIC ens34 (Host-only) ONBOOT=yes · 양 노드 ping 확인 VMX 설정 disk.locking=FALSE · disk.EnableUUID=TRUE — 공유 디스크 사용 전제 조건 ASM 디스크 VM2에서 scandisks만 실행 — createdisk는 VM1에서만 Grid 설치 Cluster 모드 · +OCR 디스크 그룹에 Voting Disk · OCR 자동 배치 root.sh 순서 VM1 완료 → VM2 순서 반드시 준수 설치 결과 crsctl stat res -t 전체 ONLINE · gv$instance 양 노드 OPEN 확인
'DB 스터디 > 04_RAC' 카테고리의 다른 글
RAC 05: RMAN 백업 & Recovery — Catalog 서버 구축 · 인스턴스 장애 복구 (0) 2026.07.02 RAC 04: RAC 파라미터 · SPFILE · Redo · UNDO 관리 (0) 2026.06.19 RAC 03: Clusterware 관리 — crsctl · srvctl · OCR · 로그 분석 (0) 2026.06.18 RAC 01: 개념 & 아키텍처 — Cluster · GCS/GES · Cache Fusion (0) 2026.05.06