Develop Note by J.S.

[DataBase] Replication - 데이터 정합성 본문

Knowledge/DataBase

[DataBase] Replication - 데이터 정합성

js-web 2023. 7. 26. 09:38
반응형

DB Replication Sync Issue(데이터 정합성) 발생 원인 분석 및 조치 방법입니다.

1. 복제지연 가능성

 1) SBR(query기반 복제) 인지 RBR (row기반 복제) 인지 체크
  - 한번의 트랜잭션이 영향을 미치는 row의 개수가 적을 수록 RBR이 더 좋음.
 2) Write 쿼리량 증가 - master의 Multi-Threaded Replication 설정의 worker 스레드 개수 (16개 이상은 차이가 없다고 함)
 3) Slave 로드 증가 - Slave에서 실행되는 Select(조회) 트래픽으로 인해 처리 성능이 지연되면서 복제 지연이 발생하는 경우

2. 조치방법

1) 반동기 복제방식 (Semi-Sync Replication)

- Master에 write commit 시 Slave와 통신하여 ACK 신호(트랜잭션 수신 신호, update relay log)를 받을 때 까지 대기하는 방식
- Master에서 Slave로 트랜잭션이 정확하게 복사되는 건 보장하지만 실제로 반영되었는지는 보장되지 않음
- 기존의 비 동기 복제보다는 정합성을 더 가져갈 수 있지만, 성능에 영향을 미침 

- 위험요소 1 : 얼마나 성능이 저하되는지에 따라 리플리케이션의 의미가 없을 수 있음
- 위험요소 2 : Slave의 오류가 Master에 영향을 미칠 위험성이 있음

2) 데이터 정합성이 중요한 내용은 Master에서 조회하도록 변경

3) 성능 향상을 위한 쿼리 수정


참고사이트
https://m.blog.naver.com/sory1008/221600878238
https://sarc.io/index.php/mariadb/1078-replication
https://mystria.github.io/archivers/fail-case-replica-lag-when-scale-down

반응형