일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- UnrealEngine5
- UnrealEngine
- 정보처리기사
- 정처기
- 요구사항 분석
- 파이프 필터 패턴
- 백준
- C++
- 메타 데이터
- 브로커 패턴
- 알고리즘 문제
- 팬아웃
- 요구사항 확인
- 기능 모델링
- DBMS
- 언리얼엔진 함수
- 정보처리기사 실기
- 언리얼엔진5
- baekjoon
- 마스터 슬레이브 패턴
- 클라이언트 서버 패턴
- 데이터베이스
- Unreal Engint4
- UML 다이어그램
- 동적 모델링
- UML
- 데이터 입출력
- 아키텍처 패턴
- 단계적 분해
- 정보 은닉
- Today
- Total
게임 개발자를 향해
데이터베이스 이중화/서버 클러스터링 본문
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 |