High Availability
흔히 "고가용성"이라고 한다.
가용성이란 무엇인가?
서버와 네트워크 또는 프로그램 등의 다양한 정보 시스템이 정상적으로 사용 가능한 정도를 의미한다.
즉, 시스템의 가동률과 비슷한 의미이다.
가용성을 수식으로 표현하면 (정상적인 사용시간) / (전체 사용시간) 이다.
이 값이 높을수록 '가용성이 높다'고 표현한다.
그렇다면, 고가용성이란 무엇인가?
고가용성이란 일반적으로 서버와 네트워크 또는 프로그램 등의 정보 시스템이 상당히 오랜 기간 지속적으로 장애 없이 정상 운영이 가능한 성질을 의미한다.
따라서 DB와 관련하여 이런 고가용성을 위해 설계를 하는데, HA와 RAC 설계 방식 등이 있다.
고가용성을 위해서는 '백업'이나 '장애 극복 처리' 및 '데이터 저장' 및 '엑세스'에 집중되어 있다.
HA (High Availability)
HA(High Availability)는 2개의 서버를 이용하여 하나는 Active, 나머지하나는 Standby 상태로 정해놓는다. Active상태의 서버가 모든 부하를 담당하며 장애가 발생하는 경우 Standby 서버가 Active가 되면서 다시 서비스를 정상 작동할 수 있게 해주는 구성이다. 각 서버별로 별도의 스토리지를 가지고 있기에 수시로 동기화가 이뤄져야한다.
문제점으로는 서로 싱크가 맞지 않는 상황도 발생할 수 있다. Active서버 서비스가 멈추면 Standby 서버가 활성화 될 때 트랙잭션들이 모두 유실된다는 것이다. 실시간 트랜잭션량이 많은 서비스에는 치명적인 문제이다.
RAC (Real Application Cluster)
2개, 혹은 그 이상의 인스턴스가 하나의 storage를 바라보고 있는 구성이다. 각각의 인스턴스를 서버라고 생각하고 HA와 비교한다면 Active, Standby가 아닌 모두 Active 상태라고 할 수 있다. 그리고 모두 하나의 storage를 바라보는 상황이므로 별도의 동기화로 인한 성능 저하는 없다. 또, 하나의 인스턴스에서 장애가 발생해도 곧바로 다음 인스턴스에서 처리해줄 수 있으므로 데이터 유실에 대한 우려도 없다.
이때 변경된 데이터를 디스크를 거치지 않고 바로 인스턴스로 가져올 수 있는 기능이 Cache Fusion이라는 기능이다.
HA에서는 하나의 서버가 모든 처리를 해야했으므로 상대적으로 큰 부하가 발생하지만, RAC 구성에서는 균형있게 분산되어 처리할 수 있다.
하지만, 이 역시도 단점이 존재한다. 우선 Oracle RAC가 매우 고가의 제품이라는 것이다. 또한 매우 복잡한 환경 구성으로 인해 유지보수 절차 역시도 복잡하며, 운영 인력은 RAC에 대한 충분한 이해도 필수이다. HA구조보다 빠른 복구 시간을 보장하지만, 실제로는 RAC 구조를 다루는데 미숙해서 복구시간을 연장시킬 가능성도 있다.
cf.
cache fusion
instance1에 있는 데이터와 instance2에 있는 데이터를 서로 즉시 볼 수 있고, 어떤 물리적인 instance에서 작업을 하든지 내용이 구분없이 섞여 있으므로 cache fusion이라고 부른다.
cf.
db bcv
Ref.
https://thefif19wlsvy.tistory.com/19
https://m.blog.naver.com/suin2_91/221542121358
https://greatepig.tistory.com/14
'Database' 카테고리의 다른 글
[DB] 프로젝트 데이터베이스 모델링 기록 (14) | 2023.07.24 |
---|---|
[Database] Cluster (0) | 2023.06.21 |
[SQL] DQL, DML, DDL, DCL, TCL (0) | 2023.06.21 |