게임 개발자를 향해

데이터베이스 이중화/서버 클러스터링 본문

정보처리기사/2. 데이터 입출력 구현

데이터베이스 이중화/서버 클러스터링

뿌단이 2022. 9. 15. 18:57

1. 데이터베이스 이중화

  • 데이터베이스 이중화는 시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것이다.
  • 데이터베이스 이중화를 수행하면 하나 이상의 데이터베이스가 항상 같은 상태를 유지하므로 데이터베이스에 문제가 발생하면 복제된 데이터베이스를 이용하여 즉시 문제를 해결할 수 있다.
  • 여러 개의 데이터베이스에서 분산 처리하므로 데이터베이스의 부하를 줄일 수 있다.
  • 데이터베이스 이중화를 이용하면 손쉽게 백업 서버를 운영할 수 있다.

 

<여기서 Tip!>

이 챕터에서 배우는 것은 데이터베이스 이중화와 서버 클러스터링이다.

둘의 차이점을 알고 가야한다.

데이터베이스 이중화 :  DB에 문제가 생길 때를 대비하여  DB를 하나 더 만들어 두는 것.

서버 클러스터링 : 서버 장애가 발생할 때 생기는서비스 중단을 방지하기 위해 여러 서버로 운영하는 것. 

 

 

2. 데이터베이스 이중화 분류

분류 설명
Eager 기법 - 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법
Lazy 기법 - 트랜잭션 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법
- 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주됨

<여기서 Tip!>

Eager 기법 : Eager는 열심히라는 뜻으로 데이터 변경시 이중화된 DB에 바로바로 전달하여 적용시키는 기법.

Lazy 기법 : 게으른 기법. 변경사실을 저장했다가 나중에 최신화하는 것

 

 

3. 데이터베이스 이중화 구성 방법

방법 설명
활동 - 대기 방법 - 한 DB가 활성 상태로 서비스하고 있으면 다른 DB는 대기하고 있다가 활성 DB에 장애가 발생하면 대기하던 DB가 자동으로 모든 서비스를 대신 수행
- 구성 방법 관리가 쉬워 많은 기업에서 이용됨
활동 - 활동 방법 - 두 개의 DB가서로 다른 서비스를 제공하다가 둘 중 한쪽 DB에 문제가 발생하면 나머지 다른 DB가 서비스를 제공
- 두 DB가 같이 서비스 하기 때문에 처리율이 높지만 구성방법 및 설정이 복잡함

<여기서 Tip!>

서비스할 DB, 이중화한 DB 총 2개의 DB가 있다 치자.

 

  <활동 - 대기 방법>

하나는 운영하고 하나는 대기하는것.

하나가 장애가 발생하면 대기하던 DB로 서비스를 유지한다.

 

  <활동 - 활동 방법>

둘 다 운영한다.

둘 다 운영하기 때문에 하나가 장애가 발생해도 계속 서비스 유지 가능.

둘 다 운영하기 때문에 처리율이 높다.

하지만 설정이 복잡함 (아마 데이터 일관성을 위해 DB1의 데이터 변경과 DB2 데이터 변경을 서로 공유해야하기 때문이지 않을까?)

 

 

4. 클러스터링(Clustering)

  • 클러스터링은 두 대 이상의 서버하나의 서버처럼 운영하는 기술이다.
  • 클러스터링은 서버 이중화공유 스토리지를 사용하여 서버의 고가용성을 제공한다.
종류 설명
고가용성 클러스터링 - 하나의 서버에 장애가 발생하면 다른 노드(서버)가 받아 처리하여 서비스 중단을 방지하는 방식
- 일반적으로 언급되는 클러스터링
병렬 처리 클러스터링 - 전체 처리율을 높이기 위해 하나의 작업여러 개의 서버에서 분산하여 처리하는 방식

* 고가용성(HA; High Availability) : 시스템을 오랜 시간동안 계속해서 정상적으로 운영이 가능한 성질을 의미한다.

* 공유 스토리지(NAS; Network Attacjed Storage) : 데이터 저장소를 네트워크로 연결하며 파일 및 데이터를 공유하는 것으로, 다수의 사용자 또는 서버가 데이터를 안전하고 편리하게 사용할 수 있다.

 

 

<여기서 Tip!>

클러스터링의 주요 목적은 서버의 고가용성을 제공한다.즉 클러스터링을 하는 이유는 오랜시간 안정적으로 운영하기 위한 기술이다.

 

 

5. RTO/RPO

종류 설명
RTO
(Recovery Time Objecive)
(목표 복구 시간)
비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요시간을 의미함
RPO
(Recovery Point Objecive)
(목표 복구 시점)

비상사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기준점을 의미함

 

 

<여기서 Tip!>

Time과 Point로 나누면 되겠다.

RTO는 데이터가 얼마나 빨리 복구할 수 있을지를 가리킴

RPO는 데이터가 얼마나 복구될 수 있을지를 가리킴

 

 

 

읽어주셔서 감사합니다!

정처기 화이팅!

 

 

 

'정보처리기사 > 2. 데이터 입출력 구현' 카테고리의 다른 글

데이터베이스 백업  (1) 2022.09.16
데이터베이스 보안  (0) 2022.09.15
분산 데이터베이스 설계  (0) 2022.09.13
파티션(Patition)  (0) 2022.09.13
뷰 / 클러스터 (View / Cluster)  (0) 2022.09.13