20장 그룹 복제
목차
20.4.1 GTID와 그룹 복제
20.4.2 그룹 복제 서버 상태
20.4.3 replication_group_members 테이블
20.4.3 replication_group_members 테이블
20.4.4 replication_group_member_stats 테이블
20.4.4 replication_group_member_stats 테이블
20.5 그룹 복제 작업
20.5.1 온라인 그룹 구성
20.5.2 그룹 재시작
20.5.3 트랜잭션 일관성 보장
20.5.4 분산 복구
20.5.5 IPv6 및 혼합 IPv6와 IPv4 그룹 지원
20.5.5 IPv6 및 혼합 IPv6와 IPv4 그룹 지원
20.5.6 MySQL Enterprise Backup와 Group Replication 사용하기
20.5.6 MySQL Enterprise Backup와 Group Replication 사용하기
20.6 Group Replication 보안
20.6.1 연결 보안 관리를 위한 통신 스택
20.6.2 Secure Socket Layer (SSL)을 사용한 그룹 통신 연결 보안
20.6.2 Secure Socket Layer (SSL)을 사용한 그룹 통신 연결 보안
20.6.3 분산 복구 연결 보안
20.6.4 Group Replication IP 주소 권한
20.6.4 Group Replication IP 주소 권한
20.7 Group Replication 성능 및 문제 해결
20.7 Group Replication 성능 및 문제 해결
20.7.1 그룹 통신 스레드 미세 조정
20.7.2 흐름 제어
20.7.3 단일 합의 리더
20.7.4 메시지 압축
20.7.5 메시지 단편화
20.7.6 XCom 캐시 관리
20.7.7 실패 감지 및 네트워크 분할에 대한 응답
20.7.8 네트워크 분할 및 쿼럼 손실 처리
20.7.9 성능 스키마 메모리 계측을 통한 그룹 복제 메모리 사용 모니터링
20.8 그룹 복제 업그레이드
20.8.1 그룹 내 서로 다른 멤버 버전 결합
20.8.2 그룹 복제 오프라인 업그레이드
20.8.3 그룹 복제 온라인 업그레이드
20.9 그룹 복제 변수
20.9.1 그룹 복제 시스템 변수
20.9.2 그룹 복제 상태 변수
20.10 자주 묻는 질문
이 장에서는 MySQL 8.4의 그룹 복제(Group Replication)와 그룹을 설치, 구성 및 모니터링하는 방법에 대해 설명합니다. MySQL 그룹 복제는 탄력적이고 고가용성의 내결함성 복제 토폴로지를 생성할 수 있게 해줍니다.
그룹은 자동 주 서버 선출이 있는 단일 주 서버 모드에서 운영될 수 있으며, 이 경우에는 한 번에 하나의 서버만 업데이트를 수락합니다. 또는 모든 서버가 동시에 업데이트를 수락할 수 있는 다중 주 서버 모드로 배포될 수 있습니다.
내장된 그룹 멤버십 서비스가 있어 그룹의 뷰를 일관되게 유지하고 모든 서버가 언제든지 사용할 수 있도록 합니다. 서버는 그룹을 탈퇴하거나 그룹에 참여할 수 있으며, 뷰는 그에 따라 업데이트됩니다. 때때로 서버가 예기치 않게 그룹을 떠날 수 있으며, 이 경우 실패 감지 메커니즘이 이를 감지하고 뷰가 변경되었음을 그룹에 알립니다. 이 모든 과정은 자동으로 진행됩니다.
그룹 복제는 데이터베이스 서비스가 지속적으로 사용 가능하다는 것을 보장합니다. 그러나 그룹 구성원 중 하나가 사용할 수 없게 되면, 해당 그룹 구성원에 연결된 클라이언트는 커넥터, 로드 밸런서, 라우터 또는 미들웨어를 사용하여 그룹 내의 다른 서버로 리디렉션되거나 장애 조치(failover)되어야 한다는 점을 이해하는 것이 중요합니다. 그룹 복제에는 이를 수행하는 내장된 방법이 없습니다. 예를 들어, MySQL Router 8.4를 참조하십시오.
Group Replication은 MySQL Server에 플러그인으로 제공됩니다. 이 장의 지침에 따라 그룹에 포함할 각 서버 인스턴스에서 플러그인을 구성하고, 그룹을 시작하며, 그룹을 모니터링하고 관리할 수 있습니다. MySQL 서버 인스턴스 그룹을 배포하는 또 다른 방법은 InnoDB Cluster를 사용하는 것입니다.
팁
여러 MySQL 인스턴스를 배포하려면 InnoDB Cluster를 사용할 수 있습니다. 이 도구는 MySQL Shell에서 MySQL 서버 인스턴스 그룹을 쉽게 관리할 수 있게 해줍니다. InnoDB Cluster는 MySQL Group Replication을 프로그래밍 환경으로 감싸서 MySQL 인스턴스 클러스터를 쉽게 배포하여 고가용성을 달성할 수 있도록 합니다. 또한, InnoDB Cluster는 MySQL Router와 원활하게 인터페이스하여 애플리케이션이 자체 장애 조치 프로세스를 작성하지 않고도 클러스터에 연결할 수 있게 해줍니다. 그러나 고가용성이 필요하지 않은 유사한 사용 사례에서는 InnoDB ReplicaSet을 사용할 수 있습니다. MySQL Shell의 설치 지침은 여기에서 확인할 수 있습니다.
이 장은 다음과 같이 구성되어 있습니다.
- 섹션 20.1, “Group Replication 배경”은 그룹에 대한 소개와 Group Replication이 작동하는 방식을 제공합니다.
- 섹션 20.2, “시작하기”는 여러 MySQL Server 인스턴스를 구성하여 그룹을 만드는 방법을 설명합니다.
- 섹션 20.3, “요구 사항 및 제한 사항”은 Group Replication의 아키텍처 및 설정 요구 사항과 제한 사항을 설명합니다.
- 섹션 20.4, “Group Replication 모니터링”은 그룹을 모니터링하는 방법을 설명합니다.
- 섹션 20.5, “Group Replication 작업”은 그룹과 작업하는 방법을 설명합니다.
- 섹션 20.6, “Group Replication 보안”은 그룹을 안전하게 보호하는 방법을 설명합니다.
- 섹션 20.7, “Group Replication 성능 및 문제 해결”은 그룹의 성능을 조정하는 방법을 설명합니다.
- 섹션 20.8, “Group Replication 업그레이드”은 그룹을 업그레이드하는 방법을 설명합니다.
- 섹션 20.9, “Group Replication 변수”는 Group Replication에 특정한 시스템 변수를 참조하는 문서입니다.
- 섹션 20.10, “자주 묻는 질문”은 Group Replication을 배포하고 운영하는 것에 대한 몇 가지 기술적 질문에 대한 답변을 제공합니다.