백지부터 시작하는 이세계 코딩 생활

HA 와 RAC 특징 본문

Service || Server

HA 와 RAC 특징

조아덕 2021. 5. 25. 11:59

HA 와 RAC 모두 DB 서버 구성과 관련된 내용이다.

고가용성을 위해 만들어진 구성이다.

 

<개요>

HA (High Availability)
  • DabaBase HA구성 or DataBase 이중화 하는 방식이다.
  • 여러개의 Database Server를 세팅하여 Active - Active or Active - Standby로 동작 한다.
  • 일부의 Database Server에 문제가 발생하여도 서비스에 이상이 없도록 구성 한다.

    • 모든 Database Server는 모두 공통된 최신 데이터를 가지고 있어야 한다. (DB Replication)
    •  전달되는 각종 Request들이 여러 Database Server 전달되어 실행되는 분산 환경이 구성되어있어야 한다. (Load Balance)
    •  Active - Standby의 경우 Active Server에 문제가 생겼을경우 Standby Server 가 이를 감지하고 Active 되어야한다. (Failover)

 

HA솔루션이 갖추어야 할 기본기능
  • A. 데이터 복제기능
    • 1번서버에서 장애 발생 시, 2번 서버를 바로 서비스하기위해서는 양쪽의 데이터가 항상 100% 동일해야하는 무결성을 보장해야한다. Data Replication 기능이 반드시 필요하다.
  • B. 장애 감시기능
    • 네트워크 장애
    • OS 및 서비스 프로그램 장애
    • 서버 하드웨어 장애
  • 장애를 감시할 수 있는 Agent는 각각 서버에 설치되어야 하며, 1번서버는 2번서버를 감시, 2번서버는 1번서버를 상호감시하여 고가용성을 유지하게 된다. 1번서버 문제발생 시 2번서버로 서비스가 자동전환 되기 위해 필수적인 기능이다.





<특징 비교>

HA (High Availability)
  • HA(High Availability)는 2개의 서버를 이용하여 하나는 Active 상태, 나머지 하나는 Standby 상태로 정해놓는다. 
  • 이해하기 쉬운만큼 구조도 단순하고 따라서 구축 비용도 저렴하다. 또한, 서버 하나만 가동되면 되므로 유지비 역시 저렴하다는 장점이 있다.
  • 각 서버 별로 별도의 storage를 가지고 있기 때문에 수시로 동기화가 이루어져야 한다.
  • Active 서버가 동작을 멈추고  Standby 서버가 활성화 될 동안에 발생한 트랜잭션은 모두 유실된다.

 

Oralce RAC (Real Application Cluster)
  • RAC(Real Application Cluster)는 2개, 혹은 그 이상의 인스턴스가 하나의 storage를 바라보고 있는 구성이다.
  • 각각의 인스턴스를 서버라고 생각하고 HA와 비교한다면 Active, Standby가 아닌 모두 Active 상태라고 할 수 있다. 그리고 모두 하나의 storage를 바라보는 상황이므로 별도의 동기화로 인한 성능 저하 발생이 적다.
  • Oracle RAC가 매우 고가의 제품이다.
  • 매우 복잡한 환경 구성으로 인해 유지보수 절차 또한 복잡하며, 운영 인력은 RAC에 대한 충분한 이해도 필수로 한다. RAC 구조를 다루는데 미숙해서 복구시간을 연장시킬 가능성도 있다.

Ref.

ㅁ HA 정리
https://danew.tistory.com/26

ㅁ HA 와 RAC 비교
https://yoo-hyeok.tistory.com/120
https://greatepig.tistory.com/14

ㅁ RAC 개요 (Oracle Real Application Cluster)
https://thefif19wlsvy.tistory.com/19

ㅁ RAC 개요 (Oracle Real Application Cluster)
https://myalpaca.tistory.com/17

 

'Service || Server' 카테고리의 다른 글

DTO, DAO, Entity, Repository 에 대해서  (0) 2021.05.28
Linux 개요  (0) 2021.05.28
Debug.Assert & throw Exception  (0) 2021.05.24
Google analytics (GA)  (0) 2021.03.18
Node js : API 서버 만들기  (0) 2021.03.16
Comments