카테고리 없음
99클럽 코테 스터디 17일차 TIL DB Data Replication
차가리
2024. 6. 5. 21:20
728x90
- DB
- Index
Index 작동 원리- Index 종류
B-Tree 인덱스Hash IndexesBitmap IndexGIST(Generalized Search Tree)R-TreeFull Text IndexSpatial IndexTrie(Prefix Tree) IndexCovering Index
- Index
영속성트랜잭션- ORM
- ACID
N+1 문제DB 정규화- Data Replication
- sharding 전략
- CAP 이론
란?
- 둘 이상의 사이트나 노드에 데이터를 저장하는 프로세스
- 데이터 베이스 시스템에서 데이터를 여러 위치에 복사하고 유지하는 프로세스를 말함.
- 데이터의 가용성을 높이고, 데이터 손실에 대비하며, 읽기 성능을 향상 시킬 수 있음.
데이터 복제 타입
- 트랜잭션 복제
- 모든 데이터 변경이 주 데이터베이스와 복제본 데이터베이스에 동시에 적용됨.
- 데이터 일관성을 보장하지만, 네트워크 지연과 성능 저하가 발생할 수 있음.
- 일반적으로 트랜잭션의 커밋이 모든 복제본에서 성공적으로 완료된 후에 완료됨.
- 스냅샷 복제
- 한 데이터베이스에서 다른 데이터베이스로 데이터 변경 사항을 복사함.
- 스냅샷 복제는 데이터베이스의 중요성이 덜할 때 유용함. 또는 데이터베이스가 자주 변경되지 않는 경우에도 유용함.
- 비동기 복제
- 주 데이터베이스에 데이터 변경이 먼저 적용되고, 그 후 복제본 데이터베이스로 변경 사항이 전달됨.
- 데이터 전송 지연이 있을 수 있지만, 주 데이터베이스의 성능에 미치는 영향이 적음.
- 일관성은 보장되지 않지만, 가용성을 높일 수 있음.
- 단방향 복제
- 데이터가 한 방향으로만 복제됨. 즉, 주 데이터베이스에서 복제본 데이터베이스로 데이터가 복제됨.
- 주로 읽기 성능을 향상시키기 위해 사용됨.
- 양방향 복제
- 데이터 변경이 양방향으로 이루어질 수 있음. 즉, 주 데이터베이스와 복제본 데이터베이스 모두에서 데이터 변경이 가능함.
- 충돌 해결 메커니즘이 필요함.
- 병합 복제
- 단일 데이터베이스로 결합되는 두 개의 데이터베이스로 구성됨. 결과적으로 데이터 변경 사항이 publisher 에서 subscriber 로 업데이트 될 수 있음.
- 일반적으로 서버-클라이언트 환경에서 사용됨.
- 다중 마스터 복제
- 여러 마스터 데이터베이스에서 동시에 데이터 변경이 가능함.
- 복잡한 충돌 해결 및 데이터 일관성 관리가 필요함.
목적
- 고가용성
- DB 장애 시 복제본 DB 로 자동전환(failover) 하여 시스템 가동 시간을 최대화 함.
- 재해 복구
- 재해 상황에서 데이터를 복구하기 위해 지리적으로 분산된 데이터 복제본을 유지함.
- 성능 향상
- 읽기 작업을 복제본 데이터베이스로 분산시켜 주 데이터베이스의 부하를 줄임.
- 지리적으로 분산된 사용자를 위해 지역별로 데이터를 복제하여 지연 시간을 줄임.
- 백업
- 정기적인 백업을 수행하여 데이터 손실에 대비함.
구현 방법
- DBMS 기능 사용
- 많은 DBMS 는 내장된 복제 기능을 제공함. 예를 들어,
MySQL
의replication
,PostgreSQL
의streaming replication
,Oracle
의data Guard
등이 있음.
- 많은 DBMS 는 내장된 복제 기능을 제공함. 예를 들어,
- 서드 파티 도구 사용
- 복제를 지원하는 서드 파티 도구나 서비스(예: Apache Kafka, SymmetricDS) 를 사용할 수 있음.
- 애플리케이션 레벨 복제
- 애플리케이션 코드에서 직접 복제 논리를 구현할 수 있음. 이는 더 많은 유연성을 제공하지만, 관리와 유지보수가 복잡해질 수 있음.
데이터 복제는 많은 이점을 제공하지만, 해결해야할 부분도 존재함.
- 데이터 일관성
- 동기 복제에서는 일관성을 유지할 수 있지만, 비동기 복제에서는 데이터 전송 지연으로 인해 일관성 문제가 발생할 수 있음.
- 충돌 해결
- 양방향 복제나 다중 마스터 복제에서는 동일한 데이터에 대한 동시 변경이 충돌을 일으킬 수 있음. 이를 해결하기 위한 메커니즘이 필요함.
- 복제 지연
- 비동기 복제에서는 주 데이터베이스와 복제본 데이터베이스 간의 데이터 전송 지연으로 인해 최신 데이터가 복제본에 반영되기 까지 시간이 걸릴 수 있음.
- 네트워크 트래픽
- 복제는 네트워크 트래픽을 증가시킬 수 있으며, 특히 대량의 데이터를 전송하는 경우 네트워크 병목을 일으킬 수 있음.
728x90