Tibero/아키텍쳐

HA (High Availability), TAC, TSC

havy 2022. 12. 28. 09:50
Tibero는 서비스 제공 중 장애가 발생할 시에도 서비스 제공이 중단되지 않고
지속적으로 서비스를 제공하기 위해 여러 가지 방법으로 고가용성 및 재해복구를 보장한다.
특히 내가 속해있는 부서의 경우 DB가 먹통이 되는 등의 이슈가 발생 시
상당히 치명적이기 때문에 해당 기능이 더 중요시된다.

 

 

그렇다면 Tibero가 어떠한 방법으로 고가용성 및 재해복구를 보장하는지 살펴보도록 하자.

 

 

 

 

디스크 절체 방식 HA (High Availability)

- 2개의 서버를 이용하여 하나는 Active 상태, 다른 하나는 Standby 상태로 정해 둔다.

- 거의 모든 부하를 Active에서 부담하고, Standby 서버는 Active 서버에 장애가 발생할 경우만 가동된다.

 

 

 

 

> Active 서버가 장애로 인해 작동이 멈춘다면 Standby 서버가 Active가 되며 서비스를 정상 작동시키는 방식,
이때 디스크도 standby로 넘어가게 된다.

 

- Active 상태의 서버가 가상IP를 가지고 있는데(VIP), 장애로 인해 Standby 서버가 Active되면 이 VIP 또한 Standby 서버로 넘어가게 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

디스크 미러 방식 HA (High Availability)

- 2개의 서버를 이용하여 하나는 Active 상태, 다른 하나는 Standby 상태로 정해 둔다.

 

 

 

 

디스크 미러 방식 HA (High Availability)

디스크 미러 방식 HA (High Availability)

- activedisk에서 블록이 변경되면 standby의 블록에 변경분을 반영하는 것.

 

 

 

 

 

 

 


active
에서 장애가 발생하면 standbyactive가 되므로 standby의 블록 변경분을 active가 장애 회복될 때 active 블록에 반영한다.

 

 

 

 

 

 

 

 

 

- Datafile,controlfile,passwd,redo logmirroring한다.
DB file
optional하게 mirroring한다.

 

 

 

 

 

 

 

 

 

 

TAC (Tibero Active Cluster)

- 확장성, 고가용성을 목표로 하는 Tibero의 주요 기능이다.

 

- 하나의 노드 안에 CM,DB가 있음
- 모든 인스턴스는 공유된 데이터베이스를 통해 트랜잭션을 수행하며 공유된 데이터에 대한 접근은 데이터의 일관성과 정합성 유지를 위해 상호 통제하에 이뤄진다.

- 여러 시스템이 공유 디스크를 기반으로 데이터 파일을 공유한다.

 

- 노드가 하나의 공유 캐시(shared cache)를 사용하는 것처럼 동작하고, 운영 중에 한 노드가 멈추더라도 동작 중인 다른 노드들이 서비스를 지속하게 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

- 2개의 서버가 가용되고 있기 때문에 VIP 또한 2개가 필요하다.

VIP는 장애 발생 시 반대쪽 노드로 옮겨지게 된다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TSC (Tibero Standby Cluster)

- 데이터베이스의 고가용성, 데이터의 보호, 재난 복구 등을 목적으로 제공하는 Tibero의 핵심 기능이다.

- Tibero Standby 서버는 물리적으로 독립된 장소에 원본 데이터베이스의 복사본을 트랜잭션 단위로 보관한다.
  복사할 대상이 되는 원본 데이터베이스를 가진 서버를 Active 상태
,

  복사된 데이터가 저장되는 데이터베이스를 가진 서버를 Standby 상태라고 정한다.

 

- Active 서버 DB에서 생성된 Redo 로그를 배경 프로세스가 Standby 서버 DB로 전송하고,

  Standby 서버 DB는 Redo 로그를 이용해 ACtive 서버 DB의 모든 변화를 똑같이 반영하는 것이다.

 

 

 

-Mirroring HA랑 다르게 블록을 미러링하는게 아니라 노드를 미러링한다. 따라서 standby 노드에서 블록에 데이터를 입력해야 하므로 standbydb에서 read,write가 모두 가능하다.

 

 

 

 

 

 

 

 

 

(하지만 clientstandby에서 write하는건 불가능하다.)

 

 

 

 

 

 

 

 

Active에서 계속 DF, CTR FILE, REDO, .PASSWDStandby로 복사한다.

 

 

 

 

 

 

 

 

 

 

 

- Active에서 장애가 발생할 시 StandbyActive가 되고, Standby에 있는 DF, CTR FILE, REDO, .PASSWDActive로 수동 복사한다. 그 후 Active가 정상화되면 파일 손실 없이 서비스를 운영할 수 있는 것이다.

 

 

 

 

 

 

 

미러링 HA와 달리 TSC는 수동이다. (, 사람이 장애를 알아채야 장애대응이 가능하다미러링 HA는 자동으로 대응하는데..)

그래서 나온게 TSC - Observer 구조 (근데 얘도 VM 3개 써야하고,,,수동임 걍 킹받음)

 

 

 

 

 

 

 

 

 

 

 

 

 

다음은 앞서 설명한 3가지 구조를 비교한 표이다.

 

이렇게 보니까 진짜 TSC는 왜 쓰는지 모르겠다;;;;

'Tibero > 아키텍쳐' 카테고리의 다른 글

tbdown 옵션 정리  (0) 2023.01.26
tbboot 단계 정리  (0) 2023.01.26
티베로 설치시 기본적으로 생성되는 파일 정리  (1) 2023.01.19
Tibero 아키텍쳐 정리 2  (0) 2022.12.22
Tibero 아키텍쳐 정리 1  (0) 2022.12.22