ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RAC(Real Application Clusters)
    STUDY/DB 2023. 5. 24. 01:35

     

    DB 이중화 구성은 데이터베이스 시스템의 가용성과 내결합성을 향상시키기 위해 사용된다. 

    • HA(Hign Availability: 고가용성)
    • OPS(Oracle Parallel Server)
    • RAC(Real Application Clusters)

     

    HA(Hign Availability: 고가용성)

    두 대의 서버를 동일하게 구성해서 서버 1대는 Active 상태로 두고 다른 1대는 Standby 상태로 설정해서, 만약 Active 상태의 서버에 장애가 발생할 경우 Standby 서버가 즉시 Active 상태로 바뀌면서 서비스 중단이 발생하지 않도록 하는 구성이다.

     

     

    문제점

     

    1. 비용이 많이 든다.
    2. Active 상태의 서버에서 작업을 하다 장애가 발생하면 Standby 상태의 서버로 작업은 가능하지만, 데이터가 동기화 되지 않았으므로 데이터는 날아간 상태가 된다.
    3. Active 서버가 동작을 멈추면 Standby 서버가 활성화 될 때까지의 트랜잭션을 모두 유실하게 된다.

     

    OPS(Oracle Parallel Server)

    하나의 스토리지에 두 개의 인스턴스가 연결되어 있는 구성으로, 사용자가 각각 다른 인스턴스에 접속해도 스토리지가 동일하므로, 같은 데이터를 조회/변경할 수 있다.

     

     

    RAC ping 문제점

     

    인스턴스1에서 변경 완료된 데이터를 인스턴스2로 가져오기 위해서는 우선 디스크에 저장한 후, 해당 데이터를 인스턴스2로 복사해 오는 작업을 거쳐야 한다. 이런 과정이 디스크를 사용해서 시간이 오래 걸리기 때문에, OPS 환경에서 RAC ping 작업은 성능 저하의 주요 요인이 된다.

     

    RAC(Real Application Clusters)

    OPS의 RAC ping 문제가 개선되어 성능이 크게 향상된 구성으로, 서로 다른 인스턴스에서 변경된 데이터를 디스크를 거치지 않고 바로 인스턴스로 가져올 수 있는 Cache Fusion(캐쉬 퓨전)이라는 기능이 사용된다.

     

    특징

     

    - 고가용성: RAC은 여러 개의 노드로 구성되어 있기 때문에, 하나의 노드에 장애가 발생하더라도 다른 노드가 서비스를 계속할 수 있다. 이를 통해 데이터베이스 시스템의 가용성이 향상되고, 중단 시간을 최소화할 수 있다.
     
    - 확장성: RAC은 클러스터에 새로운 노드를 추가하여 시스템을 확장할 수 있는데, 새로운 노드를 추가하면 데이터베이스 작업이 분산되어 처리되므로 처리량이 증가하고 성능이 향상된다. 이를 통해 시스템이 더 많은 사용자 및 작업을 처리할 수 있다.
     
    - 데이터 공유와 공유 캐시: RAC은 여러 노드 간에 데이터를 공유하고 공유 데이터 캐시를 유지한다. 이를 통해 데이터 액세스의 지역성을 개선하고, 데이터의 로컬 캐시에 있는 데이터에 대한 빠른 액세스가 가능해진다.
     
    - 데이터 일관성: RAC은 데이터베이스 작업의 일관성을 보장하기 위해 GES, GCS같은 서비스를 사용하여 여러 개의 인스턴스 간에 데이터를 동기화하고 동시성을 제어한다.

     

     

    Cache Fusion

     

    특정 인스턴스에 존재하는 블록을 Interconnetc를 통해 다른 인스턴스로 이동시키는 기술로, 다중 노드로 구성된 클러스터 환경에서 디스크 I/O 발생없이, 데이터 공유와 빠른 액세스를 가능하게 한다.

     

    • 동작

     

     

    1. 인스턴스2에 접속한 A프로세스는 인스턴스1에 존재하는 1번 Block을 액세스하기 위해 호출한다.

    2. 인스턴스1에 존재하는 1번 Block은 인스턴스2의 호출에 응답하기 위해 인스턴스2의 SGA의 DB Buffer Cache로 이동해야 한다. 이동을 위해 공유 스토리지에 존재하는 DB를 이용하지 않고 인스턴스 사이의 Interconnect를 이용한다.

    3. Interconnect를 이용하여 인스턴스2로 캐싱된 1번 Block을 A 프로세스가 액세스할 수 있게 된다.

     

    * DB Buffer Cache : 유저가 요청한 SQL문을 수행하기 위해서 필요한 Data Block을 Disk로부터 메모리로 올리는(Caching) 하는 영역

    * Interconnect : 클러스터 내의 각 노드가 데이터를 주고받을 수 있는 전용 네트워크로, 주로 고속 네트워크 인터페이스를 사용하며 데이터 베이스 인스턴스 간의 데이터 통신 및 동기화를 지원

     

    • 구성 요소

     

     - GRD(Global Resource Directory)

     RAC에서 Global Resource를 관리한다. Cluster의 동기화를 위해서 Cluster 내의 Resource 정보들(Resource Master, Resource Holder)을 저장한다.

     

    - GCS(Global Cache Service)

     Data의 일관성 및 무결성을 유지하는 서비스로, DB Buffer Cache 동기화에 대한 Global 정보를 저장한다. 즉, Block에 대한 Lock 정보를 관리한다.

     

    - GES(Global Enqueue Service)

     DB Lock에 대한 정보를 관리하는 서비스로 Block 이외의 Lock 정보를 저장한다. 즉, Enqueue Lock, Library Cache Lock, Row Cache Lock 등의 정보를 관리한다.

     


    인스턴스(Instance)

     

    사용자가 DB에 접근하여 호출/실행을 통해 트랜잭션을 처리할 수 있는 프로세스와 메모리 영역으로, 사용자는 반드시 인스턴스를 통하여 데이터베이스에 접근이 가능하며, 데이터베이스의 내용을 인스턴스 위에 올려놓고 트랜잭션을 처리하고, 변경된 데이터를 다시 데이터베이스에 기록하는 방식으로 동작한다.

     

    - 프로세스(Processes): 인스턴스는 데이터베이스 작업을 처리하기 위해 여러 가지 유형의 프로세스를 실행한다. 예를 들어, 백그라운드 프로세스, 서버 프로세스, 클라이언트 연결 관리 프로세스 등이 있다. 이러한 프로세스들은 데이터베이스 작업을 수행하고, 데이터를 읽고 쓰며, 트랜잭션을 관리한다.

     

    - 메모리(Memory): 인스턴스는 데이터베이스 작업에 필요한 메모리를 관리한다. 이는 공유 메모리와 개별 인스턴스 메모리로 구분된다. 공유 메모리는 여러 인스턴스가 공유하는 영역으로, 데이터 캐시, SQL 캐시, 라이브러리 캐시 등을 포함하고, 개별 인스턴스 메모리는 각 인스턴스가 독립적으로 사용하는 메모리 영역으로, PGA(Process Global Area)와 SGA(System Global Area) 등을 포함한다.

     

    - 데이터베이스 파일: 인스턴스는 데이터베이스 파일에 접근하여 데이터를 읽고 쓰며, 데이터베이스 객체를 관리한다. 이러한 데이터베이스 파일은 스토리지 시스템에 저장되며, 인스턴스는 이를 바탕으로 데이터베이스 작업을 수행한다. RAC에서는 여러 인스턴스가 하나의 스토리지를 공유하므로, 모든 인스턴스가 동일한 데이터베이스 파일에 액세스할 수 있다.

     

     

     

     

    참고

    RAC구성 https://12bme.tistory.com/322

    Cache Fusion https://myalpaca.tistory.com/26

    'STUDY > DB' 카테고리의 다른 글

    파티셔닝  (0) 2023.06.07
    DBCP(Database Connection Pool)  (0) 2023.05.17
    Spring Transactional  (0) 2023.05.10
    Database Lock  (0) 2023.04.26
    Isolation Level  (0) 2023.04.25
Designed by Tistory.