용어 정의

마스터 데이터베이스

복제의 대상이 되는 원본 데이터베이스이며 마스터 데이터베이스는 읽기, 쓰기 등 모든 데이터베이스 연산이 허용된다.

슬레이브 데이터베이스

마스터 데이터베이스와 동일한 내용의 복제된 데이터베이스(replica)이며, 마스터 데이터베이스의 변경이 자동적으로 반영되는 데이터베이스이다. 마스터 데이터베이스와 달리 슬레이브 데이터베이스는 읽기 연산만 사용될 수 있다.

Active 서버

'primary 서버'라고도 하며, 사용자에게 서비스를 제공하는 서버이다. active 서버는 마스터 데이터베이스를 사용한 읽기, 쓰기 등 모든 서비스를 제공한다.

Standby 서버

'secondary', 'passive' 혹은 'failover 서버'라고 하며, active 서버가 장애로 인해 서비스를 할 수 없을 때, active 서버를 대신하여 서비스를 제공할 수 있다. standby 서버는 슬레이브 데이터베이스를 사용한 읽기 서비스를 제공한다.

Failover

active 서버 또는 active 서버가 존재하는 시스템에 장애가 발생하여 서비스를 제공할 수 없는 상태가 검출되면, 자동으로 standby 서버를 active 서버로 절체하여 서비스를 계속 제공하는 기능이다.

Failback

failover 이후, active 서버가 장애 이전의 상태로 복구되면 자동으로 복구된 active 서버를 통하여 서비스가 수행되도록 원래의 상태로 다시 절체되는 기능이다.

Role change

이전 active 서버에서 장애가 복구가 되어도 failback 하지 않고 현재의 상태로 서비스를 계속 제공하는 기능이다.

Heartbeat

HA 기능을 제공하기 위한 핵심 구성 요소이다. 이 기능은 데이터, 응용 프로그램, 서비스와 같은 시스템을 구성하는 중요한 자원의 가용 상태를 확인하고 failover, failback, monitoring 기능을 제공한다

서버 이중화(Duplex, Duplicate)

HA기능을 제공하기 위해 서버 HW를 중복으로 구성하여 시스템을 구축하는 것이다. 장애 발생시 standby 서버가 active 서버의 기능을 수행하는 방식(Active-Standby. 아래 그림)과 장애 발생 서버의 역할을 추가로 대행하면서 서비스기능을 수행하도록 이중 체계를 구축하는 방식(Active-Active)이 있다.

데이터베이스 서버 다중화 구조

하나의 데이터베이스에 장애가 발생하여도 서비스를 계속 제공할 수 있도록 여러 대의 데이터베이스 서버를 구성한 구조이다. 서비스를 제공 중이던 active 데이터베이스 서버에 장애가 발생하면, 동일한 데이터를 가지고 있는 standby 데이터베이스 서버가 서비스를 제공할 수 있다.

브로커 다중화 구조

브로커를 다중화 하여 특정 브로커에 장애가 발생하여도 다른 브로커를 통한 서비스를 계속 제공할 수 있도록 구성한 구조이다. 또한 각각의 브로커는 아래에서 설명하는 것과 같이 다른 특성을 가질 수 있다.

트랜잭션 로그 다중화(Transaction Log Multiplication)

active 서버에서 생성되는 트랜잭션 로그가 하나 이상의 standby 서버에 실시간으로 전송하여 모든 서버에 동일한 로그가 기록되도록 하는 기능이다.

CUBRID 데이터베이스 서버의 HA 모드