IT Technology

Oracle RAC 개념(Cluster, 구성요소)

by빵수 2022. 7. 8. 10:33
728x90
반응형

Oracle RAC 개념(Cluster, 구성요소)에 대해서 알아보자

 

Oracle RAC 개념(Cluster, 구성요소)

 

  • Oracle RAC는 여러 개의 Instance가 하나의 Database를 액세스 할 수 있다. 
  • 이는 application에서 접속할 수 있는 통로는 여러 개이며 Database는 하나인 형태이다.

 

Oracle RAC = N개의 Instance + 1개의 Database

 

  • 그리고 RAC로 연결된 N개의 Instance에서 동일한 Datafile을 공유하여 엑세스한다.
  • 하지만 Database 작업에 사용할 수 있는 CPU나 메모리 등의 Resource는 서로 공유하지 않으며 해당 Node의 Resource만을 사용한다.

 

 

Cluster

 

  • 두 개 이상의 독립된 서버들과 Disk를 하나로 연결하는 기법이다.
  • 사용자가 Cluster로 구성된 서버들 중 어느 서버에 접속해도 동일한 Disk를 액세스 하게 되므로 하나의 서버 또는 하나의 Disk에 연결하는 것처럼 인식한다.
  • Oracle RAC는 Oracle Clusterware를 사용하여 어느 Instance에 접속하여도 사용자에게 동일한 data를 실시간으로 조회, 변경할 수 있는 기능을 제공한다.
  • 또한 Oracle Clusterware를 사용하면 높은 처리량과 고가용성을 보장할 수 있다.
  • Clusterware의 자세한 특징은 다음에 설명하도록 하겠다.

 

단일 Instance vs Oracle RAC

 

  • 단일 Instance 환경에서와 마찬가지로 Oracle RAC 환경의 각 Instance에는 각자의 SGA와 백그라운드 프로세스가 존재한다.
  • 그러나 모든 Datafile과 Control File은 모든 인스턴스에서 동일하게 액세스 할 수 있어야 하므로 공유 Storage에 위치해야 한다. 
  • 그리고 각 Instance에는 고유한 Online Redo Log File이 존재한다.
  • Online Redo Log File은 자신이 속한 Instance에 의해서만 기록될 수 있다.
  • 그러나 online redo log file도 인스턴스 복구 시에는 다른 인스턴스에서 엑세스할 수 있어야 한다.
  • 따라서 Online Redo log file도 공유 storage에 저장되어야 한다
  • redo log group을 공유하고, redo log file에 쓰는 것은 개별적으로 쓴다.

 

 

*Data 정합성

  • Oracle RAC 환경의 Instance는 여러 Instance에서 동시에 동일한 data를 액세스 하는 구조로 data를 공유한다. 
  • 동일한 data를 여러 인스턴스가 읽어도 문제는 없지만, 동일한 data에 대해 여러 인스턴스가 동시에 수정, 삽입 등을 하는 경우 data 무결성 문제가 발생할 수 있다.
  • 그래서 Oracle RAC은 Cache lock과 Cache Fusion 등을 사용하여 이를 보장한다.
  • 자세한 것은 다음에 설명하겠다.

 

Oracle RAC 구성요소

Oracle Grid Infrastructure

 

Oracle RAC는 Grid Infrastructure에서 제공하는 Oracle Clusterware의 기반하에 여러 Database 서버를 묶어서 하나의 시스템처럼 동작하도록 지원한다.

 

*GI는 Oracle Custerware 및 ASM으로 구성되며 운영체제와 긴밀하게 통합된 소프트웨어 계층이다.

 

  • Clusterware 설치 : RAC 구성을 위해 필요한 소프웨어이며 오라클 설치 계정 이외 별도의 계정을 생성하여 설치하는 것을 권장한다.
  • Clusterware의 OS 계정 : 일반적으로 GI와 ASM을 소유하는 전용 OS 계정인 grid 계정을 사용한다.

 

 

공유 Storage

  • 각 Instance는 공유 Storage를 통해 물리적인 data를 공유하며 database에서 사용하는 ASM 및 CFS(Cluster File System)를 구성한다.
  • 공유 Storage에서 Database File은 모든 Node에 동등하게 동시에 액세스 할 수 있어야 한다. 물론 Storage에서 생성된 Disk는 공유 모드가 활성화되어야 한다.

 

Oracle RAC Network 구성 요소

 

Public IP

  • 각 Node에 대한 고유한 IP로 서버 주소와 동일하다.
  • 일반적으로 Node 관리 목적으로 사용된다.

 

Service IP

  • 클라이언트에서 Database 서버의 Public IP를 사용하여 접속할 경우 장애가 발생한 Node에서 세션을 다른 Node로 옮기는데 많은 시간이 걸릴 수 있다.
  • 이때 VIP(Virtual IP)를 사용하여 클라이언트가 node에 장애가 발생했다는 것을 신속하게 인식할 수 있도록 함으로써 다른 Node로 재연결 시간을 향상시킬 수 있다.

SCAN(Single Client Access Name)

  • GNS 및 DNS를 사용하여 정의할 수 있다.
  • SCAN을 이용할 경우 Cluster 내 서버 수에 관계없이 Load balancing 및 고가용성을 고려하여 3개의 IP 주소를 권장한다.

Private IP(Cluster Interconnect)

  • Cluster Node 별 통신을 위한 IP로 다음과 같은 목적으로 사용한다.
  • Resource 동기화를 위해 Cluster에서 Heartbeat 프로세스를 위해서 사용하는 통신 경로
  • Instance에서 다른 Instance로 data를 전송(cache fusion)하는 용도로 사용 

 

Oracle Kernal 구성 요소

오라클 커널의 구성요소는 RAC database의 각 인스턴스에 대한 추가 백그라운드 프로세스의 집합(GRD, GCS, GES)이다. 자세한 설명은 cache fusion에서 설명하겠다.

 

 

 

 

출처 : 

https://myalpaca.tistory.com/17

반응형