MySQL Group Replication-MGR 클러스터 소개
MySQL Group Replication (약칭 MGR) 은 mysql 그룹 복제라는 뜻이지만, 사실 그는 고가용의 집단 구조로 당분간 mysql5.만 지원한다.7 및 mysql8.0 버전.
MySQL 공식이 2016년 12월에 내놓은 새로운 고가용성과 높은 확장 솔루션으로 고가용성, 높은 확장, 신뢰할 수 있는 MySQL 집단 서비스를 제공합니다.
또한 mysql 공식은 그룹 복제 개념을 바탕으로 MariaDB Galera Cluster와Percona XtradB Cluster를 충분히 참고하여 새로운 고가용 집단 구조입니다.
MySQL Group Replication은 Paxos를 바탕으로 하는 XCom 위에 세워진 것이다. XCom 인프라가 있어 데이터베이스 상태기가 노드 간의 사무 일치성을 확보해야 이론과 실천에서 데이터베이스 시스템이 서로 다른 노드 간의 사무 일치성을 확보할 수 있다.
일반적인 주종 복제 개념으로 확장되고 여러 노드가 하나의 데이터베이스 집단을 구성한다. 사무의 제출은 반드시 반수 이상의 노드의 동의를 거쳐야 제출할 수 있다. 집단 중의 각 노드에 하나의 데이터베이스 상태기를 유지하고 노드 간의 사무의 일치성을 확보한다.
이점:
높은 일치성, 원생 복제 및paxos 프로토콜을 바탕으로 하는 그룹 복제 기술.
높은 용착성, 자동 검출 메커니즘이 있어 다운이 발생하면 자동으로 문제 노드를 제거하고 다른 노드는 정상적으로 사용할 수 있다(zk집단과 유사). 서로 다른 노드가 자원 분쟁이 발생할 때 선착순으로 처리하고 자동화 뇌분열 보호 메커니즘을 내장한다.
언제든지 온라인에서 노드를 새로 추가하고 제거할 수 있는 확장성이 뛰어나며 새 노드와 다른 노드가 일치할 때까지 모든 노드의 상태를 자동으로 동기화하고 새로운 그룹 정보를 자동으로 유지합니다.
높은 유연성, 직접 플러그인 형식 설치(5.7.17 후 자체.so 플러그인), 단일 주 모드와 다중 주 모드가 있고, 단일 주 모드에서는 주 라이브러리만 읽기와 쓰기가 가능하며, 기타 라이브러리에서는 슈퍼read_only 상태, 읽기만 하고 쓸 수 없습니다. 고장이 나면 자동으로 주인이 선택됩니다.
단점:
아니면 너무 새로워서 불안정하고 일시적인 성능이 PXC보다 약간 떨어지기 때문에 네트워크 안정성에 대한 요구가 높고 적어도 같은 기방에서 해야 한다.
설치하다.
1. 서비스 환경 설정 계획
ip 주소
mysql 버전
데이터베이스 포트 번호
Server-ID
MGR 포트 번호
운영 체제
10.0.2.5
mysql 8.0.11
3308
258011
33081
Ubuntu 17.04
10.0.2.6
mysql 8.0.11
3308
268011
33081
Ubuntu 17.04
10.0.2.7
mysql 8.0.11
3308
278011
33081
Ubuntu 17.04
다중 주 모드에서는 3대 이상의 노드가 있고 단일 주 모드에서는 실제 상황을 보고 정하지만 같은 그룹의 최대 노드 수는 9.서버 설정은 PXC와 마찬가지로'나무통 단판 효과'도 있기 때문에 가능한 한 일치하도록 한다.
특히 mysql 데이터베이스의 서비스 포트 번호와 MGR의 서비스 포트는 같은 것이 아니므로 구분해야 한다.
서버-id를 구분하는 것은 필수적이며, 단순히 주종복제만으로도 이 점을 만족시켜야 한다.
2. 설치 배포
mysql8을 어떻게 설치합니까?0은 더 이상 말하지 않겠습니다. 본 시리즈의 1편은 이미 말했기 때문에 묵인하는 것으로 하겠습니다.
바로 MGR을 어떻게 설치하는지 말했습니다. 위에서도 말했듯이 MGR은 mysql5에 있습니다.7.17 버전 이후에는 모두 자체 플러그인을 가지고 있습니다. 단지 설치되지 않았을 뿐입니다. 반동기화 플러그인과 하나의 플러그인이기 때문에 기본적으로 옵션이 없습니다.
모든 클러스터 내의 서버는 이 기능을 제대로 사용하려면 MGR 플러그인을 설치해야 합니다.
우리는 처음에는 엄살을 부리지 않았다는 것을 알 수 있다
mysql> show plugins;
+----------------------------+----------+--------------------+----------------------+---------+
| Name | Status | Type | Library | License | +----------------------------+----------+--------------------+----------------------+---------+ | binlog | ACTIVE | STORAGE ENGINE | NULL | GPL | | mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL | | sha256_password | ACTIVE | AUTHENTICATION | NULL | GPL | | caching_sha2_password | ACTIVE | AUTHENTICATION | NULL | GPL | | sha2_cache_cleaner | ACTIVE | AUDIT | NULL | GPL | | PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL | | MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL | | TempTable | ACTIVE | STORAGE ENGINE | NULL | GPL | | InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL | | INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMPMEM | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_PER_INDEX | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CMP_PER_INDEX_RESET | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_PAGE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_PAGE_LRU | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_BUFFER_POOL_STATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TEMP_TABLE_INFO | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_METRICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_DEFAULT_STOPWORD | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_BEING_DELETED | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_CONFIG | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_INDEX_CACHE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_FT_INDEX_TABLE | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TABLES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TABLESTATS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_INDEXES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_TABLESPACES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_COLUMNS | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_VIRTUAL | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | INNODB_CACHED_INDEXES | ACTIVE | INFORMATION SCHEMA | NULL | GPL | | CSV | ACTIVE | STORAGE ENGINE | NULL | GPL | | MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL | | ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL | | BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL |
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.