∞. 기술 면접/4. 데이터베이스

11. 기술 면접 - 데이터베이스 - 리플리케이션 (Replication)

THE HEYDAZE 2021. 10. 18. 09:31
공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다

 

리플리케이션 (Replication)

- DB를 이중화, DB 복제 라고 보면 된다

- 정의
    리플리케이션(Replication)은 복제를 뜻하며 2대 이상의 DBMS를 나눠서 데이터를 저장하는 방식이며, 사용하기
    위한 최소 구성은 Master / Slave 구성을 하여야 됩니다.
    -> 여러 개의 DB를 권한에 따라 수직적인 구조(Master-Slave)로 구축하는 방식

https://server-talk.tistory.com/240

 

사용 목적

MySQL 리플리케션(Replication)은 사용목적은 크게 실시간 Data 백업과 여러대의 DB서버의 부하를 분산 시킬수 있습니다

 

 

 

간단 요약

아주 단순한 Database를 구성할때에는 아래의 그림처럼 하나의 서버와 하나의 Database를 구성하게 된다.

https://nesoy.github.io/articles/2018-02/Database-Replication

하지만 사용자는 점점 많아지고 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 영향없이 로그를 분석할 수 있다.

 

주의 할 점

https://server-talk.tistory.com/240

 

리플리케이션 vs 클러스터링

https://mangkyu.tistory.com/93

 

참고

https://server-talk.tistory.com/240

 

MySQL Replication(복제) - 단방향 이중화

MySQL Replication을 이용하여 DBMS 단방향 이중화하기 웹서버 부하로 인해 L4를 이용하여 로드밸런싱으로 웹서버의 부하를 해결하였지만, DB 서버의 부하로 인하여 사이트가 느리게 열리는 현상이 발

server-talk.tistory.com

 

 

https://mangkyu.tistory.com/93

 

[기술면접] CS 기술면접 질문 - 데이터베이스 (6/8)

6. 데이터베이스 [ 인덱스(index)란? ] 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내

mangkyu.tistory.com