본문 바로가기
9. 실습 Hands-on Lab

나도한다 시리즈N - OCI 기본 실습 DBCS (고가용성 이중화 - RAC)

by MY잭슨 2022. 7. 21.
※ 사전 준비 - 네트워크 구성, SSH 툴, Key Pair

2022.05.14 - [7. 실습 Hands-on Lab] - 나도한다 시리즈 - OCI 기본 실습 IaaS (가상 네트워크)

2022.05.14 - [7. 실습 Hands-on Lab] - 나도한다 시리즈 - OCI 기본 실습 IaaS (컴퓨트 인스턴스)



2022.07.20 - [7. 실습 Hands-on Lab] - 나도한다 시리즈N - OCI 기본 실습 DBCS (생성, 연결)

2022.07.20 - [7. 실습 Hands-on Lab] - 나도한다 시리즈N - OCI 기본 실습 DBCS (백업, 복구, 패치)


2022.07.20 - [7. 실습 Hands-on Lab] - 나도한다 시리즈N - OCI 기본 실습 DBCS (재해복구 이중화 - 데이터가드) 

 

Oracle Real Application Clusters

고객은 오라클 RAC(Real Application Clusters)를 통해 단일 오라클 데이터베이스를 여러 서버에서 실행하여 가용성을 극대화하고 수평적 확장성을 지원하는 동시에 공유 스토리지에 액세스할 수 있습니다. 오라클 RAC 인스턴스에 연결하는 사용자 세션은 애플리케이션을 변경하지 않고 운영 중단될 경우에도 변경 사항을 페일오버하여 적용하고 안전하게 수행하여 최종 사용자의 운영에 영향도 없이 업무 진행할 수 있습니다.

 

Database Cloud Service DBCS (RAC 구성)

1. 메뉴에서 오라클 데이터베이스 >> 오라클 기본 위치 데이터베이스 >> DB 시스템 >> DB 시스템 상세 >> 데이터베이스로 이동합니다.

 

앞선 실습에서 구성했던 환경을 확인

CPU core count: 4
Oracle Database Software Edition: Enterprise Edition Extreme Performance
SCAN DNS Name: ocidbrac-scan.sub05131637190.vcnocikr.oraclevcn.com

sudo su -
su - grid

crsctl stat res -t

 

양쪽 노드 모두 인스턴스가 오픈 상태로 읽고, 쓰는 작업이 가능한 상태로 조회

 

2. 데이터베이스 인스턴스에 연결하여 설정을 확인하고 RAC 환경에 대한 SQL 테스트를 진행합니다.

 

이전 실습 데이터가드 구성과는 다르게 Primary-Standby 구조가 아닌 양쪽 노드가 동일하게 Primary-Primary구조로 되어 있고 DB_UNIQUE_NAME도 동일함.

sudo su -
su - oracle

sqlplus "/as sysdba"

set linesize 200
col DB_UNIQUE_NAME for a20
select name, db_unique_name, open_mode, protection_mode, database_role from v$database;

select instance_name, status from gv$instance;
select instance_name, status from v$instance;

 

 

1) 첫번째 노드 OCIDBRAC1 에서 테이블 생성과 동시에 백만건 입력

2) 두번째 노드 OCIDBRAC2 에서 테이블 데이터 조회

3) 양쪽 노드 OCIDBRAC1과 OCIDBRAC2에서 데이터 각각 백만 건씩 추가 입력 (기존 백만건 있음)

4) 양쪽 노드 OCIDBRAC1과 OCIDBRAC2에서 데이터 조회

 

sudo su -
su - oracle

sqlplus "/as sysdba"

select instance_name, status from v$instance;

create table system.tempx_rac
as
SELECT LEVEL a1
FROM dual
CONNECT BY LEVEL <= 1000000;

select count(*) from system.tempx_rac;

--node1
insert into system.tempx_rac
SELECT LEVEL a1
FROM dual
CONNECT BY LEVEL <= 1000001;

--node2
insert into system.tempx_rac
SELECT LEVEL a1
FROM dual
CONNECT BY LEVEL <= 1000002;


select count(*) from system.tempx_rac;

commit;

select count(*) from system.tempx_rac;

 

 

commit 전까지는 각 노드의 세션에서 처리된 트랜잭션만 반영

 

commit 후에는 트랜잭션 최종 반영으로 양쪽에서 동일하게 조회

 

 

 

 

 

 

 

 

 

 

 

 

 

참조

https://docs.oracle.com/en/database/oracle/oracle-database/19/haiad/

댓글