백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.
1. InnoDB 클러스터
- 복제 기능을 통해 고가용성을 확보할 수 있으나, 단순한 문제는 아님
- 소스 서버에 장애가 발생할 때, failover 작업을 수동으로 수행해야 함 (레플리카 서버 승격)
- 레플리카 서버의 읽기 모드 해제
- 소스 서버에서 데이터 변경 수행 비활성화 (스플릿 브레인 현상 방지)
- 애플리케이션 서버는 커넥션 설정을 해야 함 (새로운 소스 서버를 바라보도록)
- failover 작업을 자동화하기 위해 HA 솔루션을 사용함
- 사용 환경에 맞게 수정하는 작업이 필요 (지속적인 유지보수 및 관리가 필요함)
- ex) MMM, MHA, Orchestrator
- MySQL에서 빌트인 형태의 HA 솔루션인 InnoDB 클러스터가 도입됨 (5.7.17~)
- 즉, InnoDB 클러스터는 고가용성 실현을 위해 만들어진 여러 구성 요소들의 집합체
2. 아키텍쳐
그룹 복제
- 소스 서버의 데이터를 레플리카 서버로 동기화하는 복제 역할
- 목제에 참여하는 서버들에 대한 자동화된 멤버십 관리 (새로운 멤버 추가 및 삭제)
- 설정에 따라 프라이머리 서버(소스 서버)의 수를 여러 대 지정할 수 있음
- 고가용성을 위해 서버가 최소 3대 이상 구성되어야 함
- 서버 장애 감지
- 토폴로지 변경
- 자동으로 장애 서버를 그룹에서 제외시킴
서버
- 프라이머리
- 읽기/쓰기 모두 가능
- 소스 서버
- 세컨더리
- 읽기만 가능
- 레플리카 서버
MySQL 라우터
- 애플리케이션 서버와 MySQL 서버 사이에서 동작하는 미들웨어
프록시 역할
- 애플리케이션이 실행한 쿼리를 적절한 MySQL 서버로 전달
- InnoDB 클러스터로 구성된 서버들의 메타데이터 정보를 가짐
- InnoDB 클러스터 환경에서는 MySQL 서버로 직접 접근해서 쿼리를 실행하지 않음
MySQL 셸
- 기존 MySQL 클라이언트보다 좀 더 확장된 기능을 가진 클라이언트 프로그램
스크립트 작성 기능
- Javascript, Python 등의 언어 사용 가능
어드민 작업
- 클러스터 확인, 구성
- 서버 설정 변경
'Database > Mysql' 카테고리의 다른 글
[Real MySQL] 17-3. InnoDB 클러스터: MySQL (0) | 2024.09.07 |
---|---|
[Real MySQL] 17-2. InnoDB 클러스터: 그룹 복제 (0) | 2024.09.07 |
[Real MySQL] 16-5. 복제: 복제 토폴로지 (0) | 2024.09.07 |
[Real MySQL] 16-4. 복제: 동기화 방식 (0) | 2024.09.07 |
[Real MySQL] 16-3. 복제: 데이터 포맷 (0) | 2024.09.07 |