11. 기술 면접 - 데이터베이스 - 리플리케이션 (Replication)
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다
리플리케이션 (Replication)
- DB를 이중화, DB 복제 라고 보면 된다
- 정의
리플리케이션(Replication)은 복제를 뜻하며 2대 이상의 DBMS를 나눠서 데이터를 저장하는 방식이며, 사용하기
위한 최소 구성은 Master / Slave 구성을 하여야 됩니다.
-> 여러 개의 DB를 권한에 따라 수직적인 구조(Master-Slave)로 구축하는 방식
사용 목적
MySQL 리플리케션(Replication)은 사용목적은 크게 실시간 Data 백업과 여러대의 DB서버의 부하를 분산 시킬수 있습니다
간단 요약
아주 단순한 Database를 구성할때에는 아래의 그림처럼 하나의 서버와 하나의 Database를 구성하게 된다.
하지만 사용자는 점점 많아지고 Database는 많은 Query를 처리하기엔 너무 힘든 상황이 오게 된다.
Query의 대부분을 차지하는 Select를 어느 정도 해결하기 위해 Replication이란 방법이 나오게 되었다.
Replication이란?
두 개의 이상의 DBMS 시스템을 Mater / Slave로 나눠서 동일한 데이터를 저장하는 방식이다.
Master DBMS에는 데이터의 수정사항을 반영만하고 Replication을 하여 Slave DBMS에 실제 데이터를 복사한다.
로그기반 복제(Binary Log)
Statement Based : SQL문장을 복사하여 진행
issue : SQL에 따라 결과가 달라지는 경우(Timestamp, UUID, …)
Row Based : SQL에 따라 변경된 Row 라인만 기록하는 방식
issue : 데이터가 많이 변경된 경우 데이터 커질 수 밖에 없다.
Mixed : 기본적으로 Statement Based로 진행하면서 필요에 따라 Row Based를 사용한다.
Replication 장점
언급했던 것처럼 Query의 대부분은 Select가 차지하고 있다.
이 부분의 부하를 낮추기 위해 많은 Slave Database를 생성하게 된다면 Read(Select) 성능 향상 효과를 얻을 수 있다.
Master Database 영향없이 로그를 분석할 수 있다.
주의 할 점
리플리케이션 vs 클러스터링
참고
https://server-talk.tistory.com/240
https://mangkyu.tistory.com/93
'∞. 기술 면접 > 4. 데이터베이스' 카테고리의 다른 글
13. 기술면접 - 데이터베이스 - ORM (Object Relation Mapping) (0) | 2021.10.18 |
---|---|
12. 기술면접 - 데이터베이스 - 파티셔닝(Partitioning) (0) | 2021.10.18 |
10. 기술면접 - 데이터 베이스 - 옵티마이저 (Optimizer) (0) | 2021.10.18 |
09. 기술면접 - 데이터베이스 - 효과적인 쿼리 저장 (0) | 2021.10.17 |
07. 기술면접 - 데이터베이스 - Statement와 PrepareStatement (0) | 2021.10.17 |
댓글
이 글 공유하기
다른 글
-
13. 기술면접 - 데이터베이스 - ORM (Object Relation Mapping)
13. 기술면접 - 데이터베이스 - ORM (Object Relation Mapping)
2021.10.18 -
12. 기술면접 - 데이터베이스 - 파티셔닝(Partitioning)
12. 기술면접 - 데이터베이스 - 파티셔닝(Partitioning)
2021.10.18 -
10. 기술면접 - 데이터 베이스 - 옵티마이저 (Optimizer)
10. 기술면접 - 데이터 베이스 - 옵티마이저 (Optimizer)
2021.10.18 -
09. 기술면접 - 데이터베이스 - 효과적인 쿼리 저장
09. 기술면접 - 데이터베이스 - 효과적인 쿼리 저장
2021.10.17