DB Replication(데이터베이스 복제)
DB Replication은 하나의 데이터베이스에서 데이터를 복사하여 다른 데이터베이스 서버로 동기화하는 프로세스를 의미합니다. 주로 데이터의 가용성과 성능 향상, 백업 및 복구를 목적으로 사용됩니다.
DB Replication의 개념
- 마스터-슬레이브(Master-Slave) 모델:
- Master DB: 데이터가 작성되는 주 데이터베이스. 데이터를 읽고 쓰는 작업이 가능.
- Slave DB: 마스터 DB의 데이터를 복제받아 유지하는 보조 데이터베이스. 주로 읽기 작업(read-only)에 사용.
- 데이터 동기화: 마스터에서 발생한 변경 사항이 슬레이브로 자동 복제.
- 복제를 통해 여러 DB 인스턴스 간 데이터 일관성을 유지.
Replication의 동작 방식
-
Master DB에서의 작업:
- 사용자가 데이터를 삽입, 수정, 삭제하면 트랜잭션 로그에 해당 변경 사항이 기록됩니다.
-
Change Logging:
-
Slave DB로 전달:
- Slave DB는 Master DB의 로그를 읽어와 이를 자체적으로 재적용하여 데이터를 동기화합니다.
Replication의 종류
1. 동기식 복제(Synchronous Replication)
- 동작: Master DB에 데이터가 기록되면 Slave DB에서도 동시에 기록이 완료되어야 작업이 완료됨.
- 장점: 데이터의 일관성이 보장됨.
- 단점: 네트워크 지연 또는 장애로 인해 성능이 저하될 수 있음.
2. 비동기식 복제(Asynchronous Replication)
- 동작: Master DB에서 데이터 변경 후, Slave DB로 복제 작업이 별도로 진행됨.
- 장점: 성능에 미치는 영향이 적음.
- 단점: 데이터 일관성이 지연될 수 있음(데이터 손실 가능성).
3. 반동기식 복제(Semi-Synchronous Replication)
- 동작: Master DB가 변경 사항을 Slave DB에 전송 후 일부 확인을 받을 때만 작업 완료로 간주.
- 장점: 동기식보다 성능이 우수하고, 비동기식보다 데이터 손실 가능성이 낮음.
Replication의 목적 및 장점
-
가용성(High Availability):
- 하나의 DB 서버에 장애가 발생하더라도 다른 복제된 DB를 통해 서비스 지속 가능.
-
성능 향상:
- 읽기 작업을 Slave DB로 분산(Read Scaling)하여 Master DB의 부하를 줄임.
-
백업 및 복구:
- Slave DB는 Master DB의 백업 역할을 하여 데이터 손실 시 복구 가능.
-
데이터 분석 및 테스트 환경:
- Slave DB를 분석용이나 테스트 환경으로 활용 가능.
Replication 설정 시 주의사항
-
네트워크 대역폭:
- 복제 과정에서 대량의 데이터를 동기화하므로 충분한 네트워크 대역폭이 필요.
-
지연(Lag):
- 비동기 복제의 경우 Master와 Slave 간 데이터 일치에 시간이 걸릴 수 있음.
-
데이터 충돌 방지:
- 복제를 사용하는 경우 데이터가 일관되게 유지되도록 주의해야 함.
- Master-Slave 구성이 아닌 경우 충돌을 방지하기 위한 Conflict Resolution 필요.
-
복제 모니터링:
- 복제가 중단되거나 데이터가 손상되는 문제를 방지하려면 지속적인 모니터링이 중요.
실제 활용 예
MySQL에서 Replication 설정 예시
-
Master 설정:
-
Slave 설정:
my.cnf
파일에서 서버 ID 설정:[mysqld]
server-id = 2
- Master에 연결하여 복제를 설정:
CHANGE MASTER TO
MASTER_HOST='master_host_ip',
MASTER_USER='replication_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
START SLAVE;
-
상태 확인:
SHOW SLAVE STATUS\G;
Replication의 한계
- 복제 지연(Latency)으로 인해 최신 데이터가 모든 Slave DB에 즉시 반영되지 않을 수 있음.
- 동기식 복제의 경우 성능 저하 가능.
- Master DB가 과부하 상태일 경우 복제 작업에 지연이 발생할 수 있음.
결론
DB Replication은 데이터의 가용성과 성능을 높이는 중요한 기술입니다. Master-Slave 구조는 읽기 작업 분산과 데이터 백업에서 유리하며, 설정 및 관리 과정에서 네트워크와 지연 문제를 고려해야 효과적으로 사용할 수 있습니다.
추가 학습 자료