Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

MySQL InnoDB Cluster 소개

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 48 Publicité

Plus De Contenu Connexe

Similaire à MySQL InnoDB Cluster 소개 (20)

Plus par rockplace (20)

Publicité

Plus récents (20)

MySQL InnoDB Cluster 소개

  1. 1. MySQL InnoDB Cluster 소개 | 소속 : 락플레이스 | 날짜 : 2022년 12월 07일
  2. 2. Agenda MySQL 소개 1 2 4 3 InnoDB Cluster 소개 InnoDB Cluster 구성 InnoDB Cluster의 설정 및 동작방식 5 Demo : InnoDB Cluster 구축 및 변경
  3. 3. Agenda MySQL 소개 1 2 4 3 InnoDB Cluster 소개 InnoDB Cluster 구성 InnoDB Cluster의 설정 및 동작방식 5 Demo : InnoDB Cluster 구축 및 변경
  4. 4. DB-Engines Ranking – Trend Popularity MySQL 소개 1
  5. 5. ◆ 전세계에서 가장 많이 사용하는 대표적인 오픈소스 DBMS ◆ 듀얼 라이선스 (커뮤니티 버전, 상용 엔터프라이즈 버전) ◆ 플랫폼 독립성 : 다수의 OS에서 개발 및 구축할 수 있는 유연성 ◆ SQL & NoSQL 액세스 : 복합 처리 및 단순한 고속 Key Value 작업 수행 ◆ 빅 데이터 상호 운영성 : Hadoop 및 Cassandra를 위한 운영 데이터 저장소로서 MySQL 활용 MySQL 소개 MySQL 소개 1
  6. 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. 7. MySQL HA 구성방안 - Replication MySQL 소개 1 장 점 ▪ SELECT Query를 Slave로 보내서 부하분산 가능 ▪ Slave에서 백업을 수행하는 동안 Master 는 지속적인 서비스 가능 ▪ Set-up 과정이 가장 단순하고 용이 단 점 ▪ Async 방식으로 Master 와 Slave 간 데이터 차 발생 가능 ▪ Master 장애발생시 기록한 binlog가 Slave로 복제되지 않을 수 있음. Slave가 Master로 승격된 경우, 데이터 손실이 발생할 수 있음 ▪ 장애 발생 시 자동 Fail over 불가(수동 장애조치)
  8. 8. MySQL HA 구성방안 - Replication MySQL 소개 1
  9. 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. 10. Agenda MySQL 소개 1 2 4 3 InnoDB Cluster 소개 InnoDB Cluster 구성 InnoDB Cluster의 설정 및 동작방식 5 Demo : InnoDB Cluster 구축 및 변경
  11. 11. Innodb Cluster 개요 InnoDB Cluster 소개 2 그림 - InnoDB Cluster Architecture MySQL Database Shared Nothing Cluster Solution • Fault tolerance • Auto Failover • Active/Active 업데이트 (제한적으로 적용) • 자동 멤버쉽 관리 - 멤버 추가 삭제 - 네트워크 파티션 및 장애 • 충돌 감지 및 해결 • 데이터 유실 방지
  12. 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. 13. Innodb Cluster 운영 방식 - Single primary InnoDB Cluster 소개 2 그림 - Single Primary 구성 Single Primary Mode • Read/Write가 가능한 Primary 노드와 Read Only의 2개의 노드로 구성 • 서버 장애를 자동으로 감지 • 그룹 내에서 장애여부 판단 후 새로운 Primary 승격
  14. 14. Innodb Cluster 운영 방식 - Multi primary InnoDB Cluster 소개 2 그림 - Multi Primary 구성 Multi Primary Mode • 모든 노드가 Primary 노드로 Read/Write가 가능 • 모든 노드에서 Write시 lock contention(Dead Lock) 발생 가능성 높음 • 모든 노드에 대한 엔진 버전이 동일 해야 함
  15. 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. 16. Agenda MySQL 소개 1 4 InnoDB Cluster의 설정 및 동작방식 5 Demo : InnoDB Cluster 구축 및 변경 2 InnoDB Cluster 소개 3 InnoDB Cluster 구성
  17. 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. 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. 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. 20. Agenda MySQL 소개 1 5 Demo : InnoDB Cluster 구축 및 변경 2 InnoDB Cluster 소개 3 InnoDB Cluster 구성 4 InnoDB Cluster의 설정 및 동작방식
  21. 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. 22. MySQL 비동기식 복제(Async) InnoDB Cluster의 설정 및 동작방식 4 https://dev.mysql.com/doc/refman/8.0/en/group-replication-primary-secondary-replication.html
  23. 23. MySQL 반동기식 복제(Semi Sync) InnoDB Cluster의 설정 및 동작방식 4 https://dev.mysql.com/doc/refman/8.0/en/group-replication-primary-secondary-replication.html
  24. 24. MySQL Group Replication 복제방식 InnoDB Cluster의 설정 및 동작방식 4 https://dev.mysql.com/doc/refman/8.0/en/group-replication-summary.html
  25. 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. 26. InnoDB Cluster Consistency - Before InnoDB Cluster의 설정 및 동작방식 4
  27. 27. InnoDB Cluster Consistency - After InnoDB Cluster의 설정 및 동작방식 4
  28. 28. InnoDB Cluster Consistency – Before and After InnoDB Cluster의 설정 및 동작방식 4
  29. 29. InnoDB Cluster Consistency – BEFORE_ON_PRIMARY_FAILOVER InnoDB Cluster의 설정 및 동작방식 4
  30. 30. InnoDB Cluster Consistency – BEFORE_ON_PRIMARY_FAILOVER InnoDB Cluster의 설정 및 동작방식 4
  31. 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. 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. 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. 34. 8.0.29 Start mysqld 8.0.29 8.0.30 PM SM How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식 4
  35. 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. 36. 8.0.29 8.0.29 8.0.30 PM SM SM How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식 4
  37. 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. 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. 39. 8.0.29 8.0.30 8.0.30 PM SM start mysqld How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식 4
  40. 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. 41. 8.0.29 8.0.30 8.0.30 PM SM SM How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식 4
  42. 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. 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. 44. 8.0.30 8.0.30 8.0.30 SM start mysqld PM How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식 4
  45. 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. 46. 8.0.30 8.0.30 8.0.30 SM PM SM How to Rolling Upgrade Innodb Cluster InnoDB Cluster의 설정 및 동작방식 4
  47. 47. Agenda MySQL 소개 1 2 InnoDB Cluster 소개 3 InnoDB Cluster 구성 4 InnoDB Cluster의 설정 및 동작방식 5 Demo : InnoDB Cluster 구축 및 변경
  48. 48. Thank you

×