[DataBase] Replication이란 ?

GonnabeAlright·2021년 11월 27일
0
post-thumbnail

배경

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

하지만 사용자는 점점 많아지고 Database는 많은 Query를 처리하기엔 힘든 상황이 오게된다.
Query의 대부분을 차지하는 SELECT를 어느정도 해결하기 위해서 Replication이란 방법이 나오게 되었다.

Replication이란 ?

두 개 이상의 DBMS 시스템을 Master / 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 영향없이 로그를 분석할 수 있다.

0개의 댓글