일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- for
- C언어
- Spring
- 자료구조
- 데이터
- 반복문
- 변수
- 파이썬프로그래밍기초
- 자바
- 배열
- Scanner
- 1차원배열
- java프로그래밍
- 스캐너
- 하드웨어
- FOR문
- Scanner class
- 알고리즘
- 백준
- error
- MySQL
- 스캐너클래스
- IFELSE
- 백준알고리즘
- 기본
- IF문
- 유비쿼터스
- IF
- java
- 함수
Archives
- Today
- Total
정리하고기록하자
DB Clustering & Replication 본문
반응형
DB Clustering
DB Clustering 이란 DB를 여러개의 서버가 나눠서 처리하도록 하는 것이다.
ex ) 데이터베이스 서버가 죽으면 어떻게 대응할까?
- 데이터베이스 서버를 여러개로 만들자 ( 클러스터링 )
- 서버 한 대가 죽어도 대비가 가능하다.
- 여러 데이터베이스 서버로 부하를 분산시켜 사용자의 요청을 더 많이 수용할 수 있다. ( 로드 밸런싱 )
- 여러 대의 데이터베이스 서버를 가지므로 높은 가용성을 보장한다. ( 높은 가용성 )
- DB의 가용성이란 DB가 동작하고 있는 시간과 정지한 시간의 비율이다.
- DB 시스템을 구성할 서버나 스토레지 장비를 각각 2대 이상으로 구성해서, 만의 하나 어느쪽인가에 장애가 발생했다고 하더라도 단 시간내에 운용을 재개 할 수 있도록 한다.
DB Clustering 종류 및 장점
1. Active - Active Clustering
데이터베이스 서버를 Active ( 동작중 ) 상태로 두는 방식이다.
장점
- 서버 하나가 죽어도 다른 서버가 역할을 바로 수행하여 중단되는 시간이 없다. ( 무중단 서비스 가능 )
- 같이 사용되어 CPU와 메모리 이용률을 늘릴 수 있다. ( 성능적인 측면에서 이득 )
단점
- 저장소 하나를 공유하면 병복현상이 발생될 수 있다.
- 병목현상 : 전체 시스템이 성능이나 용량이 하나의 구성요소로 인해 제한을 받는 현상이다.
- 두 대의 서버를 동시에 운용해야하기 때문에 비용이 많이 든다.
2. Active - StandBy Clustering
데이터베이스 서버 하나는 Active ( 동작중 ) , 하나는 Standby 상태로 두는 방식이다.
운영중인 서버가 정지되었을 경우에 Standby 중인 서버를 Active 상태로 전환한다.
장점
- Active - Active에 비해 적은 비용이 든다 ( 비용 절감 )
단점
- 서버가 다운되었을 경우 다른 서버가 Active로 전환되는데 시간이 들어서 서버가 중단되는 시간이 있다.
Replication
Replication 이란 두 개 이상의 DB 시스템을 Master / Slave 로 나눠서 동일한 데이터를 저장하는 방식이다.
Master DB 에는 데이터의 수정사항을 반영만 하고 Replication을 하여 Slave DB 에 실제 데이터를 복사한다.
ex ) 저장된 데이터가 손실되면 어떻게 대응할까 ?
- 서버가 죽었으 때 서비스 제공 문제 -> 서버를 여러 대 두는 Clustring으로 해결 할 수 있다.
- 데이터 손실문제 -> 저장소를 복제하는 Replication 방식으로 해결할 수 있다.
Replication 역할 ( Master DB / Slave DB )
쉽게 말해 DB를 이중화, DB 복제라고 보면 된다.
Master DB 역할 : 웹 서버로 부터 데이터 등록 / 수정 / 삭제 요청시 바이너로그를 생성하여 Slave 서버로 전달하게 된다.
Slave DB 역할 : Master DB로 부터 전달받은 바이너리로그를 데이터로 반영하게 된다.
Replication 사용 목적
1. 실시간 Data 백업한다.
2. 여러대의 DB서버의 부화를 분산 시킨다.
Replication 장,단점
장점
- 쿼리의 대부분은 SELECT가 차지한다. 이 부분의 부하를 낮추기 위해 많은 Slave DB를 생성하게 된다면 성능 향상 효과를 얻을 수 있다.
- Master DB 영향없이 로그를 분석할 수 있다.
주의할점
단점
- 테이블에 데이터 자체가 엄청나게 많다고 한다면 Slave DB서버를 N대로 늘려도 원하는 데이터를 테이블ㄹ로 부터 찾는데 많은 시간이 소요 된다.
Clustering vs Replication
Clustering
- 여러 개의 DB를 수평적인 구조로 구축하여 Fail Over한 시스템을 구축하는 방식이다.
- 동기 방식으로 노드들 간의 데이터를 동기화한다.
- 장점 : 1 개의 노드가 죽어도 다른 노드가 살아 있어 시스템을 장애없이 운영할 수 있다.
- 단점 : 여러 노드들 간의 데이터를 동기화하는 시간이 필요하므로 Replication에 비해 쓰기 성능이 떨어진다.
Replication
- 여러 개의 DB를 권한에 따라 수직적인 구조 ( Master - Slave ) 로 구축하는 방식이다.
- 비동기 방식으로 노드들 간의 데이터를 동기화한다.
- 장점 : 비동기 방식으로 데이터가 동기화되어 지연 시간이 거의 없다.
- 단점 : 노드들 간의 데이터가 동기화되지 않아 일관성있는 데이터를 얻지 못할 수 있다.
참고 :
반응형
'Database - 데이터베이스 ( DB )' 카테고리의 다른 글
invalid comparison: java.util.ArrayList and java.lang.String (0) | 2022.10.06 |
---|---|
TIMESTAMPDIFF 날짜 차이 가져오기 - mysql (0) | 2022.09.19 |
SQL (0) | 2022.06.24 |
MYSQL 음력 변환 함수 (0) | 2022.04.12 |
Unknown column '' in 'where clause' (0) | 2022.01.20 |