DBAtlas · 데이터베이스 운영 아틀라스

MySQL InnoDB Cluster (Group Replication + MySQL Router)

MySQL난이도: 고급소요 시간: 90–120분

같은 데이터 센터에 설치된 MySQL 서버 3대(또는 5–9대)로 single-primary InnoDB Cluster를 구성합니다: MySQL Shell AdminAPI를 이용한 dba.configureInstance, createCluster, clone을 이용한 addInstance, MySQL Router bootstrap(6446 RW / 6447 RO), cluster.status() 모니터링, failover 테스트, quorum 손실, 전체 중단, rolling restart 런북. 완료하면 primary가 중단될 때 자동으로 failover하고 애플리케이션이 Router를 통해 접속하는 cluster를 갖추게 됩니다. 원격 사이트나 단순한 읽기 확장에는 기존 복제를, 구성된 cluster의 일상 운영에는 InnoDB Cluster 운영 가이드를 사용합니다.

구성: MySQL node 3–9대 + Router 서버 1대

시작하기 전에

  • 모든 node에 MySQL …가 같은 마이너 버전으로 설치되어 있고(DBAtlas MySQL 단일 서버 설치 가이드), GTID가 켜져 있으며, node마다 server_id가 다릅니다. 운영체제 root가 mysql로 비밀번호 없이 접속할 수 있습니다.
  • Node 2..…에 보존할 데이터가 없습니다: cluster에 추가될 때 clone으로 node 1(…)의 사본을 받으며 기존 데이터는 삭제됩니다.
  • Node 1의 모든 테이블이 InnoDB이고 primary key가 있습니다(Group Replication 요구 사항). 점검 쿼리 결과가 비어 있어야 합니다.
  • Node끼리 3306(MySQL 및 Group Replication 통신), 33060(X Protocol), 33061 포트로, Router 서버는 node에 3306/33060으로 접근할 수 있습니다. 지연이 낮습니다(같은 데이터 센터, < 1–2 ms).
  • 시계가 동기화되어 있습니다(chrony).
  • Node 수가 홀수입니다(…): … node는 최대 …대의 node 손실을 견딥니다. 짝수는 추가 내결함성을 주지 않습니다.
  • Cluster 관리자 계정(…)용 강력한 비밀번호가 준비되어 있습니다(8자 이상, 대/소문자, 숫자, 특수 문자 포함). MySQL Shell과 Router는 각 단계에서 비밀번호를 화면에 표시하지 않고 입력받으며, Shell에는 비밀번호를 저장하지 않도록 지정합니다.
  • Router 서버가 repo.mysql.com에 접근할 수 있습니다(MySQL 저장소는 이 가이드에서 추가).

가이드 단계

  • 사전 준비 (모든 MySQL node) — 방화벽에서 cluster 포트 열기 · SELinux에 Group Replication 포트 등록 · Cluster 설정 추가 (…) · MySQL 재시작 · MySQL Shell 설치
  • 인스턴스 구성 (dba.configureInstance) — Cluster 관리자 계정 생성 (…) · 원격으로 인스턴스 검사
  • Cluster 생성 — Cluster 생성 · Cluster에 node 추가 (…) · Cluster 상태 확인
  • MySQL Router — MySQL 저장소 추가 (Router 서버) · Router와 Shell 설치 · Router bootstrap · Router 서비스 시작 · 방화벽에서 Router 포트 열기 · Router를 통한 연결 테스트
  • 검증과 모니터링 — 상세 상태 · SQL로 멤버 모니터링
  • Failover 테스트 — Failover: primary 중지 · Failover: primary 중지 · Failover: 새 primary 확인 · Failover: 새 primary 확인 · Failover: Router가 새 primary로 연결하는지 확인 · Failover: Router가 새 primary로 연결하는지 확인 …
  • Quorum 손실과 전체 중단 — Quorum: 상태 진단 · Quorum: 상태 진단 · Quorum: 살아 있는 파티션으로 quorum 강제 구성 · Quorum: 살아 있는 파티션으로 quorum 강제 구성 · Quorum: 돌아온 node에서 기존 그룹 중지 (…) · Quorum: 돌아온 node에서 기존 그룹 중지 (…) …
  • Rolling restart (유지보수) — Rolling: secondary 재시작 (…) · Rolling: secondary 재시작 (…) · Rolling: primary 역할 이양 · Rolling: primary 역할 이양 · Rolling: 기존 primary 재시작 · Rolling: 기존 primary 재시작 …
내 환경에 맞춘 단계별 계획 열기 →