한국말로는 주-부 관계라고 하는 데이터베이스 Master-Slave 구조는 말 그대로, 주인과 노예의 관계라고 생각하면 된다.
Slave 데이터베이스는 Master의 복제본으로, 이렇게 Master, Slave 데이터베이스를 둠으로써 성능과 가용성을 향상시키기 위한 구조다.
1. Master
- 모든 쓰기(INSERT, UPDATE, DELETE) 작업이 Master 서버에서 이루어진다.
- 데이터에 변경사항이 발생하면, 여기서 변경이 이루어진 후에 변경사항이 Slave 서버로 복제된다.
2. Slave
- Master 서버의 복제본으로, 주로 읽기(SELECT) 작업에 사용된다.
- Master 서버에서 변경된 데이터를 주기적으로 받아 업데이트한다.
- 여러 개의 Slave 서버를 두면 읽기 작업을 분산시킬 수 있다.
이러한 Master-Slave 구조는 Slave 서버가 죽을 경우에는 문제가 발생하지 않지만, Master 서버가 죽었을 경우 MHA (Master High Availability) 방식으로 문제를 해결해야 한다.
MHA
MHA는, Master-Slave 구조에서 Master 서버의 장애 발생 시 자동으로 Slave 서버 중 하나를 새로운 Master로 승격시켜 FailOver를 최소화시키는 것을 말한다.
728x90
'study > Server' 카테고리의 다른 글
[Gradle] 스프링부트 빌드 시 plain.jar vs .jar 차이점 (0) | 2024.09.24 |
---|---|
Caddy로 도메인 없이 https 설정하기 (1) | 2024.09.07 |
HTTP 응답 헤더, Content-Disposition (0) | 2024.08.01 |
[error] Node.js Error <SyntaxError: Cannot use import statement outside a module> (0) | 2023.11.20 |