백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.
1. MySQL 셸
- 고급 클라이언트 툴
다양한 언어 모드 지원
mysqlsh> \py
mysqlsh> \sql
mysqlsh> \js
API
X DevAPI
- X 프로토콜을 사용해 MySQL 서버에서 관계형 데이터와 문서 기반 데이터를 처리할 수 있음
Admin API
- InnoDB 클러스터 및 InnoDB 레플리카 셋 구축 지원
글로벌 객체
session
- 셸에서 MySQL 서버에 연결했을 때 생성된 세션에 매핑되는 객체
- 세션 단위에서 사용할 수 있는 기능 제공
dba
- Admin API 사용 시 쓰이는 객체
cluster
- InnoDB 클러스터에 매핑되는 객체
- 클러스터 제어 기능 제공
rs
- InnoDB 레플리카 셋에 매핑되는 객체
- 레플리카셋 제어 기능 제공
db
- X 프로토콜을 사용해 MySQL에 연결된 경우, 지정했던 데이터베이스에 매핑되는 객체
- 데이터베이스 제어 기능 제공
shell
- MySQL 셸 제어 기능 제공
util
- MySQL 서버 버전을 업그레이드할 준비가 됐는지 확인
- MySQL 서버에 데이터를 로딩 또는 추출하는 등의 작업 기능 제공
2. MySQL 라우터
InnoDB 클러스터의 프록시 역할
쿼리 부하 분산
- 애플리케이션 서버로부터 유입된 쿼리 요청을 클러스터 내 적절한 MySQL 서버로 분배함
- 반환된 쿼리 결과를 다시 애플리케이션 서버로 전달
- 클러스터 내 부하가 균형을 이루고, 특정 서버에 과부하가 걸리는 것을 방지할 수 있음
구성 변경 자동 감지
- 서버 구성이 변경될 경우, 애플리케이션에서 MySQL 서버의 커넥션 정보도 바뀌여야 함
- MySQL 라우터는 클러스터의 정보를 캐싱하고 주기적으로 업데이트
- 라우터가 알아서 새로운 서버 정보를 반영하여 애플리케이션이 끊기지 않도록 함
- 애플리케이션의 커넥션 설정을 수동으로 변경할 필요 없음
자동 페일오버
- 리더 서버가 다운되면, MySQL 클러스터는 자동으로 새로운 리더를 선출함
- MySQL 라우터는 장애 감지 후 새로운 리더 또는 가용한 서버로 자동으로 커넥션을 재설정하여 장애 복구를 지원
- 애플리케이션이 중단 없이 지속적으로 MySQL 클러스터와 연결될 수 있음
- 별도의 페일오버 필요 없음
'Database > Mysql' 카테고리의 다른 글
[Real MySQL] 6. 데이터 압축 (1) | 2025.03.08 |
---|---|
[Real MySQL] 17-4. InnoDB 클러스터: 구축 (0) | 2024.09.07 |
[Real MySQL] 17-2. InnoDB 클러스터: 그룹 복제 (0) | 2024.09.07 |
[Real MySQL] 17-1. InnoDB 클러스터: 아키텍처 (0) | 2024.09.07 |
[Real MySQL] 16-5. 복제: 복제 토폴로지 (0) | 2024.09.07 |