데이터베이스

Oracle High Availability (HA) 구성 중 RAC 에 대해 알아보겠습니다.

forward error correction Circle 2024. 7. 23. 09:45
반응형

Oracle High Availability (HA) 구성은 데이터베이스 시스템의 가용성을 최대화하고 장애 발생 시에도 서비스를 지속적으로 제공하기 위한 일련의 기술 및 아키텍처를 포함합니다. Oracle HA 구성을 통해 비즈니스 연속성을 보장하고 데이터 손실을 최소화할 수 있습니다. 아키텍처별 사용되는 기술에 대해 간단히 정리하겠습니다.ㅣ

 

1) Active-Active 구성

 - 여러 서버가 동시에 활성 상태로 데이터베이스 서비스를 제공합니다.

 - 부하 분산과 고가용성을 동시에 제공하며, 한 서버가 장애가 나도 다른 서버가 지속적으로 서비스를 제공합니다.

 -  Oracle RAC가 대표적인 예입니다.

 

2) Active-Passive 구성

 - 주 데이터베이스(Active)가 정상 작동 중일 때 대기 데이터베이스(Passive)는 준비 상태로 대기합니다.

 - 장애 발생 시 대기 데이터베이스가 활성화됩니다.

 - Oracle Data Guard가 대표적인 예입니다.

 

3) 멀티사이트 구성

- 여러 지리적 위치에 데이터베이스 복제본을 배치하여 재해 발생 시에도 서비스 지속성을 보장합니다.

- Data Guard 및 GoldenGate를 활용하여 다중 데이터 센터 간 데이터 동기화를 유지합니다.

 

Oracle 에서 부하 분산과 고가용성을 동시에 제공하며, 한 서버가 장애가 나도 다른 서버가 지속적으로 서비스를 제공하는 RAC 라는 기술에 대해 알아보겠습니다.

Ⅰ. Oracle Real Application Clusters (RAC) 란?

 Oracle Database의 고가용성 및 확장성을 제공하는 기술로, 여러 서버 인스턴스에서 단일 데이터베이스를 실행할 수 있도록 합니다. 이를 통해 애플리케이션의 지속적인 가용성과 성능 향상을 도모합니다. 

Ⅱ. RAC 의 주요 기능

 ⅰ) 고가용성(High Availability)
    1. RAC는 서버 장애 시에도 데이터베이스의 가용성을 유지하여 다운타임을 최소화합니다.
    2. 장애가 발생한 서버의 작업은 다른 서버 인스턴스가 자동으로 인계받습니다.
 ⅱ) 확장성(Scalability)
    1. 필요에 따라 서버를 추가하여 시스템의 성능을 확장할 수 있습니다.
    2. 각 서버는 동일한 데이터베이스에 액세스하여 부하를 분산합니다.
 ⅲ) 부하 분산(Load Balancing)
    1. 모든 서버 인스턴스가 동일한 데이터베이스를 공유하므로, 트랜잭션 부하가 자동으로 분산됩니다.

Ⅲ. RAC 의 구성 요소

 ⅰ) 클러스터웨어(Clusterware)
    1. 클러스터 노드 간의 통신을 관리하고, 노드의 상태를 모니터링하며, 장애 발생 시 자동으로 복구합니다.
    2. Oracle Clusterware와 같은 소프트웨어가 이를 담당합니다.
 ⅱ) 공유 스토리지(Shared Storage)
    1. 모든 클러스터 노드가 액세스할 수 있는 공유 디스크가 필요합니다.
    2. ASM(Automatic Storage Management)을 통해 스토리지를 관리할 수 있습니다.
 ⅲ) 노드(Node)
    1. RAC 클러스터를 구성하는 각 서버를 의미합니다.
    2. 각 노드는 RAC 인스턴스를 실행하며, 모두 동일한 데이터베이스를 공유합니다.
 ⅳ) 인터커넥트(Interconnect)
    1. 클러스터 노드 간의 고속 통신을 담당하는 전용 네트워크입니다.
    2. 데이터베이스 블록의 캐싱 및 동기화를 위해 사용됩니다.

Ⅳ. RAC 의 작동 원리

 ⅰ) 데이터베이스 인스턴스
    1. 각 노드는 Oracle 인스턴스를 실행하고, 이 인스턴스들은 동일한 데이터베이스에 액세스합니다.
    2. 인스턴스 간의 캐시 동기화 및 일관성을 유지하기 위해 글로벌 캐시 서비스(GCS)와 글로벌 엔큐 서비스(GES)를 사용합니다.
 ⅱ) 캐시 일관성
    1.  RAC는 캐시 일관성을 유지하기 위해 여러 인스턴스 간의 데이터 블록을 동기화합니다.

    2. 이를 통해 동일한 데이터에 대한 동시 액세스 시 일관성을 보장합니다.
 ⅲ) 장애 조치(Failover)
    1. 노드 장애 발생 시, 다른 노드가 자동으로 해당 노드의 역할을 인계받아 작업을 계속합니다.
    2. 이를 통해 데이터베이스의 지속적인 가용성을 보장합니다.

Ⅴ. RAC 의 장점

 ⅰ) 높은 가용성
    노드 장애 시에도 데이터베이스 서비스를 지속할 수 있어 다운타임이 최소화됩니다.
 ⅱ) 유연한 확장성
     필요에 따라 손쉽게 서버를 추가하여 시스템 성능을 확장할 수 있습니다.
 ⅲ) 향상된 성능
    부하 분산을 통해 여러 서버에서 작업을 병렬로 처리하여 성능을 향상시킬 수 있습니다.

Ⅵ. RAC 의 단점

 ⅰ) 복잡한 구성 및 관리
    클러스터를 구성하고 관리하는 데 많은 시간과 노력이 필요합니다.
 ⅱ) 비용 문제
   추가적인 하드웨어 및 소프트웨어 비용이 발생할 수 있습니다.

 

Oracle RAC는 고가용성과 확장성이 중요한 대규모 데이터베이스 환경에서 유용한 솔루션입니다. 이를 통해 기업은 데이터베이스 성능을 향상시키고, 장애 시에도 지속적인 서비스를 제공할 수 있습니다.

반응형