[Back-end] 리플리케이션

Geun·2022년 3월 23일
0

Back-end

목록 보기
33/74
post-custom-banner

Replication

리플리케이션은 여러 개의 DB를 권한에 따라 수직적인 구조(Master-Slave)로 구축하는 방식이다.
리플리케이션에서 Master Node는 쓰기 작업만을 처리한다. Slave Node는 읽기 작업만을 처리한다.

리플리케이션은 비동기 방식으로 노드들간의 데이터를 동기화한다.

방식

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://nesoy.github.io/articles/2018-02/Database-Replication
https://mangkyu.tistory.com/97

post-custom-banner

0개의 댓글