1.
MySQL InnoDB Cluster 소개
| 소속 : 락플레이스
| 날짜 : 2022년 12월 07일
2.
Agenda
MySQL 소개
1
2
4
3
InnoDB Cluster 소개
InnoDB Cluster 구성
InnoDB Cluster의 설정 및 동작방식
5 Demo : InnoDB Cluster 구축 및 변경
3.
Agenda
MySQL 소개
1
2
4
3
InnoDB Cluster 소개
InnoDB Cluster 구성
InnoDB Cluster의 설정 및 동작방식
5 Demo : InnoDB Cluster 구축 및 변경
4.
DB-Engines Ranking – Trend Popularity
MySQL 소개
1
5.
◆ 전세계에서 가장 많이 사용하는 대표적인 오픈소스 DBMS
◆ 듀얼 라이선스 (커뮤니티 버전, 상용 엔터프라이즈 버전)
◆ 플랫폼 독립성 : 다수의 OS에서 개발 및 구축할 수 있는 유연성
◆ SQL & NoSQL 액세스 : 복합 처리 및 단순한 고속 Key Value 작업 수행
◆ 빅 데이터 상호 운영성 : Hadoop 및 Cassandra를 위한 운영 데이터 저장소로서 MySQL 활용
MySQL 소개 MySQL 소개
1
6.
MySQL HA 구성방안 MySQL 소개
1
구성 방법 HA 형태 특 징 서버 대수 참 고
MySQL
Replication
Master-Slave
구조(단방향) • 부하 분산 및 백업 용도
• 네트워크 전송
• BinLog 전송을 통해 동기화
• 비동기 방식
최소 서버 대수 2대 수동 Fail-over
Master-Master
구조(양방향)
OS Cluster 방식
Active-Standby
방식
• Shared Volume 구조
• Storage 또는 OS Cluster로 MySQL
이중화 구현
• Auto Failover
• 동기 방식
최소 서버 대수 2대
SAN 스토리지 같은
공유 스토리지 필요
MySQL InnoDB
Cluster
Active-Active
방식
• Shared Nothing 구조
• Master서버 장애 시 새로운 Master에
대한 정보를 Router 에서 업데이트해 서
부하를 자동으로 분산
• Auto Failover
• Group Replication, MySQL Shell,
MySQL Router 기반 동기 방식
최소 서버대수 3대
온라인 중
Scale out 지원
7.
MySQL HA 구성방안 - Replication MySQL 소개
1
장 점
▪ SELECT Query를 Slave로 보내서 부하분산
가능
▪ Slave에서 백업을 수행하는 동안 Master
는 지속적인 서비스 가능
▪ Set-up 과정이 가장 단순하고 용이
단 점
▪ Async 방식으로 Master 와 Slave 간 데이터 차 발생 가능
▪ Master 장애발생시 기록한 binlog가 Slave로 복제되지
않을 수 있음. Slave가 Master로 승격된 경우, 데이터 손실이
발생할 수 있음
▪ 장애 발생 시 자동 Fail over 불가(수동 장애조치)
9.
MySQL HA 구성방안 – OS Cluster MySQL 소개
1
장 점
▪ Active –Standby 구성으로 Heartbeat을 통해
Auto- failover 가능
▪ Active node의 장애 발생 시 Standby node가
Active 되어 서비스
▪ MySQL에서 제공되는 모든 Storage engine
사용 가능
단 점
▪ Failover를 위한 별도의 OS 클러스터 솔루션 필요
▪ Cluster의 node 중 둘 이상에 동시에 기동 될 수
없으며 반드시 하나에서만 Active 상태
▪ 장애 시 잠깐 동안의 Failover time 발생
10.
Agenda
MySQL 소개
1
2
4
3
InnoDB Cluster 소개
InnoDB Cluster 구성
InnoDB Cluster의 설정 및 동작방식
5 Demo : InnoDB Cluster 구축 및 변경
11.
Innodb Cluster 개요 InnoDB Cluster 소개
2
그림 - InnoDB Cluster Architecture
MySQL Database
Shared Nothing Cluster Solution
• Fault tolerance
• Auto Failover
• Active/Active 업데이트
(제한적으로 적용)
• 자동 멤버쉽 관리
- 멤버 추가 삭제
- 네트워크 파티션 및 장애
• 충돌 감지 및 해결
• 데이터 유실 방지
12.
InnoDB Cluster 특징 InnoDB Cluster 소개
2
장 점
▪ Single Primary or Multi Primary의 다양한 방식의 이중화 구성 가
능
▪ Multi Primary 구성시 모든 노드에서 데이터 조회 및 변경 가능
▪ Monitoring 및 자동 Auto Failover기능 제공
▪ MySQL Router를 활용하여 R/W 부하 분산
▪ 한 노드 장애시에도 중단없이 서비스 가능(3노드 기준)
참 고
▪ 노드는 최소 3, 홀수로 증설 해야 하며 최대 9노드
▪ MySQL 5.7 미만 버전 에서 사용 불가
▪ InnoDB Storage Engine만 지원
▪ Write 가 적고 Read 가 많으면서 가용성이 중요한 경우 적합
▪ 성능은 single, replica 대비 낮으므로 사용자가 많은 서비스에는 부적합
▪ Cluster의 성능은 가장 낮은 성능의 노드에 의해 결정
13.
Innodb Cluster 운영 방식 - Single primary InnoDB Cluster 소개
2
그림 - Single Primary 구성
Single Primary Mode
• Read/Write가 가능한 Primary 노드와 Read Only의 2개의 노드로 구성
• 서버 장애를 자동으로 감지
• 그룹 내에서 장애여부 판단 후 새로운 Primary 승격
14.
Innodb Cluster 운영 방식 - Multi primary InnoDB Cluster 소개
2
그림 - Multi Primary 구성
Multi Primary Mode
• 모든 노드가 Primary 노드로 Read/Write가 가능
• 모든 노드에서 Write시 lock contention(Dead Lock) 발생 가능성 높음
• 모든 노드에 대한 엔진 버전이 동일 해야 함
15.
Innodb Cluster 요구 사항 InnoDB Cluster 소개
2
Infrastructure Server Instance Configuration
• InnoDB 스토리지 엔진
• disabled_storage_engines
="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
• Primary Key 필수
• GTID 설정
• 네트워크 성능
• Binary log active
-- log-bin[=[log_file_name]
• Slave updates logged
-- log-slave-updates = on (v8.0.26 <)
-- log_replica_updates=on (v8.0.26 >)
• Binary log row format
-- binlog-format=row
• Global transaction identifiers enabled (on)
-- gtid-mode = on
-- enforce_gtid_consistency = on
• Replication information (metadata) repositories
-- master-info-repository=TABLE
-- relay-log-info-repository=TABLE
https://dev.mysql.com/doc/refman/8.0/en/group-replication-requirements.html
16.
Agenda
MySQL 소개
1
4 InnoDB Cluster의 설정 및 동작방식
5 Demo : InnoDB Cluster 구축 및 변경
2 InnoDB Cluster 소개
3 InnoDB Cluster 구성
17.
InnoDB Cluster 구성 - Group Replication InnoDB Cluster 구성
3
특 징
• 자동그룹 멤버쉽 관리 및 장애 감지
- 자동으로 서버 페일 오버
- 탄력성 있는 확장성
- 자동 복구
• 멀티 마스터 업데이트 지원
- 자동으로 데이터 충돌 발견 및 해결
- 데이터 일관성 보장
• 훌륭한 통합성 제공
- InnoDB 엔진
- GTID 기반 복제
- PERFORMANCE_SCHEMA
https://dev.mysql.com/doc/refman/8.0/en/group-replication.html
18.
InnoDB Cluster 구성 - MySQL Shell InnoDB Cluster 구성
3
특 징
• JavaScript, Python 및SQL 지원
• 도큐먼트 스토어와 함께 관계형 모델 지원
(X 프로토콜 및 MySQL 프로토콜 지원)
• InnoDB Cluster 생성 및 관리 API 제공
• 운영에 필요한 여러가지 유틸리티 제공
https://dev.mysql.com/doc/mysql
shell/8.0/en/mysql shell utilities.html
• 명령어, 배치 스크립트 지원
https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-features.html
19.
InnoDB Cluster 구성 - MySQL Router InnoDB Cluster 구성
3
특 징
• 경량의 미들웨어
• 애플리케이션 연결 투명성 제공
• 로드 밸런싱 정책 기반으로 커넥션에 대한 자동
Failover를 관리
• R/W 포트 (6446, 64460) 로 Primary 멤버에 대한
자동 라우팅 (R/W, DML, Query)
• R/O 포트 (6447, 64470) 로 Secondary 멤버에 대
한 자동 라우팅 (R/O, Query only)
https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-innodb-
cluster.html
20.
Agenda
MySQL 소개
1
5 Demo : InnoDB Cluster 구축 및 변경
2 InnoDB Cluster 소개
3 InnoDB Cluster 구성
4 InnoDB Cluster의 설정 및 동작방식
21.
InnoDB Cluster 설정 InnoDB Cluster의 설정 및 동작방식
4
인스턴스 구성 사전 확인
mysql-js> dba.checkInstanceConfiguration('icadmin@ic-1:3306')
인스턴스 구성
mysql-js> dba.configureInstance('icadmin@ic-1:3306')
Innodb Cluster 생성
mysql-js> cluster = dba.createCluster('testCluster')
Innodb Cluster에 인스턴스 추가
mysql-js> cluster.addInstance('icadmin@ic-2:3306')
Router 배포
# ./mysqlrouter --bootstrap root@ic-1:3306 --user=mysql -d
/myrouter/routerconf
https://dev.mysql.com/doc/mysql-shell/8.0/en/deploying-production-innodb-cluster.html
22.
MySQL 비동기식 복제(Async) InnoDB Cluster의 설정 및 동작방식
4
https://dev.mysql.com/doc/refman/8.0/en/group-replication-primary-secondary-replication.html
23.
MySQL 반동기식 복제(Semi Sync) InnoDB Cluster의 설정 및 동작방식
4
https://dev.mysql.com/doc/refman/8.0/en/group-replication-primary-secondary-replication.html
24.
MySQL Group Replication 복제방식 InnoDB Cluster의 설정 및 동작방식
4
https://dev.mysql.com/doc/refman/8.0/en/group-replication-summary.html
25.
InnoDB Cluster Consistency - Eventual InnoDB Cluster의 설정 및 동작방식
4
https://dev.mysql.com/doc/refman/8.0/en/group-replication-options.html#sysvar_group_replication_consistency
26.
InnoDB Cluster Consistency - Before InnoDB Cluster의 설정 및 동작방식
4
27.
InnoDB Cluster Consistency - After InnoDB Cluster의 설정 및 동작방식
4
28.
InnoDB Cluster Consistency – Before and After InnoDB Cluster의 설정 및 동작방식
4
29.
InnoDB Cluster Consistency –
BEFORE_ON_PRIMARY_FAILOVER
InnoDB Cluster의 설정 및 동작방식
4
30.
InnoDB Cluster Consistency –
BEFORE_ON_PRIMARY_FAILOVER
InnoDB Cluster의 설정 및 동작방식
4
31.
8.0.29
PM SM
util.checkForServerUpgrade( )
PM
SM
8.0.29 8.0.29
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
32.
8.0.29
stop mysqld on SM
8.0.29 8.0.29
PM SM
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
33.
8.0.29
upgrade MySQL binaries
8.0.29 8.0.30
PM SM
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
34.
8.0.29
Start mysqld
8.0.29 8.0.30
PM SM
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
35.
8.0.29 8.0.29 8.0.30
PM SM
Join
the group
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
36.
8.0.29 8.0.29 8.0.30
PM SM SM
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
37.
8.0.29 8.0.29 8.0.30
PM SM
stop mysqld on the other SM
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
38.
8.0.29 8.0.30 8.0.30
PM SM
upgrade MySQL binaries
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
39.
8.0.29 8.0.30 8.0.30
PM SM
start mysqld
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
40.
8.0.29 8.0.30 8.0.30
PM SM
Join
the group
Join
the group
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
41.
8.0.29 8.0.30 8.0.30
PM SM
SM
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
42.
8.0.29 8.0.30 8.0.30
SM
stop mysqld on the PM
PM
Auto
failover
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
43.
8.0.30 8.0.30 8.0.30
SM
upgrade MySQL binaries
PM
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
44.
8.0.30 8.0.30 8.0.30
SM
start mysqld
PM
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
45.
8.0.30 8.0.30 8.0.30
SM
PM
Join
the group
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
46.
8.0.30 8.0.30 8.0.30
SM
PM
SM
How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식
4
47.
Agenda
MySQL 소개
1
2 InnoDB Cluster 소개
3 InnoDB Cluster 구성
4 InnoDB Cluster의 설정 및 동작방식
5 Demo : InnoDB Cluster 구축 및 변경
Il semblerait que vous ayez déjà ajouté cette diapositive à .
Créer un clipboard
Vous avez clippé votre première diapositive !
En clippant ainsi les diapos qui vous intéressent, vous pourrez les revoir plus tard. Personnalisez le nom d’un clipboard pour mettre de côté vos diapositives.
Créer un clipboard
Partager ce SlideShare
Vous avez les pubs en horreur?
Obtenez SlideShare sans publicité
Bénéficiez d'un accès à des millions de présentations, documents, e-books, de livres audio, de magazines et bien plus encore, sans la moindre publicité.
Offre spéciale pour les lecteurs de SlideShare
Juste pour vous: Essai GRATUIT de 60 jours dans la plus grande bibliothèque numérique du monde.
La famille SlideShare vient de s'agrandir. Profitez de l'accès à des millions de livres numériques, livres audio, magazines et bien plus encore sur Scribd.
Apparemment, vous utilisez un bloqueur de publicités qui est en cours d'exécution. En ajoutant SlideShare à la liste blanche de votre bloqueur de publicités, vous soutenez notre communauté de créateurs de contenu.
Vous détestez les publicités?
Nous avons mis à jour notre politique de confidentialité.
Nous avons mis à jour notre politique de confidentialité pour nous conformer à l'évolution des réglementations mondiales en matière de confidentialité et pour vous informer de la manière dont nous utilisons vos données de façon limitée.
Vous pouvez consulter les détails ci-dessous. En cliquant sur Accepter, vous acceptez la politique de confidentialité mise à jour.