영우
이중화(DB) 본문
이중화는 무엇인가요?
- 이중화는 시스템의 장애에 대비해 같은 시스템을 두개 이상 만들어 두고 하나의 시스템에 장애가 생겼을때 다른 시스템으로 전환되도록 만들어진 구조입니다.
- 특정 지점에 문제가 발생하더라도 서비스를 계속 사용할 수 있습니다.
- 즉 고가용성(high availability)을 확보할 수 있습니다
- 종류
- 액티브 - 스탠바이
- 액티브 - 액티브
액티브 - 스탠바이
- 액티브로 지정된 프로세스만 실제로 서비스에서 사용되고 스탠바이 프로세스는 대기합니다.
- 하나는 항상 대기상태이기 때문에 비효율적이라는 단점이 있습니다.
핫 스탠바이
- primary DB가 장애시, secondary DB를 즉시 새로운 new primary DB로 사용합니다.
- 기본서버가 다운된것을 식별하는 것 이외에 다운타임이 발생하지 않습니다.
- 동기복제를 통해 항상 동기상태를 유지하고, 모두 동기화 되었을떄 트랜잭션이 완료됩니다.
- 특정 시점에서 primary DB와 secondary DB가 항상 동일한 상태입니다.
- 항상 동기화를 유지하기 때문에 쓰기 성능이 낮습니다.
웜 스탠바이
- primary DB 장애시 약간의 준비 후 secondary DB를 새로운 new primary DB로 사용합니다.
- 비동기 복제를 통해 동기화합니다.
- primary DB의 변경사항은 로그파일에 저장되고, 변경사항은 짧은 시간 후 secondary DB에 전달됩니다.
- secondary DB는 수신하면 변경사항을 읽고, 적용합니다.
- 비동기 방식이기 때문에 항상 동기화된 상태가 아닙니다. 그렇기 때문에 장애시 동기화 하는 시간동안 다운타임이 발생합니다.
- 쓰기 성능이 핫 스탠바이보다 높습니다.
콜드 백업
- secondary DB를 정지시켜 놓고 primary DB장애시 secondary DB에 데이터를 복구해 사용합니다.
- 정기적으로 primary DB를 백업해 secondary DB에 적용합니다.
- 장애 발생시 최신백업 이후의 정보는 리두로그를 사용해 secondary DB에 적용합니다.
- 다운타임이 가장 깁니다.
액티브 - 액티브 구성
- 여러개의 액티브 프로세스를 사용해 하나의 프로세스에 장애가 발생해도 다른 액티브 프로세스가 서비스를 제공할 수 있습니다.
- 모든 엑티브 프로세스는 데이터의 일관성을 유지하기 위해 동기화 작업을 합니다.
- 가용성이 매우 높아지지만, 데이터 동기화를 위한 비용이 큽니다.
출처
https://m.blog.naver.com/bizblocklll/222161660908
https://medium.com/@unel.safak/database-recovery-c975d044b2cc
https://haeunyah.tistory.com/122
'CS > 데이터베이스' 카테고리의 다른 글
엘라스틱서치란 뭘까? (1) | 2024.04.12 |
---|---|
RealMySQL 8.0 스터디 회고 (0) | 2024.04.05 |
DB replication은 언제 사용할까요? (0) | 2024.03.22 |
데이터 베이스에 완전한 한글 문자만 저장하는 방법이 있을까?(’ㅇ’, ‘ㅏ’ 같은 문자는 저장하기 싫음!) (0) | 2024.03.15 |
MySQL Full-Text Search (0) | 2024.03.08 |