본문 바로가기

MySQL HA & DR28

9.7 Group Replication Performance 1. Fine Tuning the Group Communication ThreadGroup Communication Thread (GCT)는 Group Replication Plugin이 로드되는 동안 루프에서 실행된다. GCT는 그룹 및 플러그인에서 메시지를 수신하고 멤버들의 최소 정족 수 및 실패 감지 관련 작업을 처리하고 일부 활성 메시지를 보내며 서버 / 그룹과 주고받는 트랜잭션을 처리한다. GCT는 대기열에 들어오는 메시지를 기다린다. 메시지가 없으면 GCT가 대기한다. 이 대기 시간을 좀 더 길게 (활성 대기 상태로) 설정하면 실제로 잠자기 상태가 되기 전에 어떤 경우에는 도움이 될 수 있다. 이는 운영 체제가 프로세서에서 GCT를 전환하고 컨텍스트 전환을 수행하기위한 대안이기 때문이다. GC.. 2017. 4. 15.
9.6 bservability MySQL Group Replication Plugin에는 많은 자동화 기능이 내장되어 있다. 그럼에도 불구하고 때로는 뒤에서 무슨 일이 일어나고 있는지 이해해야 할 수도 있다. 여기에서 Group Replication 및 성능 스키마의 도구가 중요 해진다. 시스템의 전체 상태 (보기, 충돌 통계 및 서비스 상태 포함)는 performance_schema 테이블을 통해 조회 할 수 있다. 복제 프로토콜의 분산 특성과 서버 인스턴스가 동의하고 트랜잭션과 메타 데이터를 동기화한다는 사실은 그룹의 상태를 검사하는 것이 더 간단하다. 예를 들어, 그룹 복제와 관련된 성능 스키마 테이블에서 select 문을 실행하여 그룹의 단일 서버에 연결하고 로컬 및 글로벌 정보를 얻을 수 있다. 자세한 정보는 아래의 웹 페이.. 2017. 4. 15.
9.5 Distributed Recovery 1. Group Replication Basics Group Replication의 분산 복구 프로세스는 그룹안에서 현재 발생중인 이벤트를 모니터링 하면서 그룹안의 온라인 서버에서 맞춰야 하는 데이터를 가져와서 구성하는 절차로 요약해서 이야기 할 수 있다. 즉, 복구 프로세스를 진행하는 중에 서버는 해당 구성원들이 실행하는 이벤트들에 대한 정보를 수신하여 대기시킨다. 그 다음 어떻게 진행되는지는 좀 더 자세히 다음 내용에서 설명하도록 한다. 1.1 Phase 1가장 먼저 Joiner 는 가입하려는 그룹안에서 온라인 상태에 있는 서버 한대를 선택하여 Donor로 설정한다. Donor는 Joiner가 가입한 순간부터 가지고 있지 않은 데이터를 전달하는 역할을 수행한다. 이 작업은 두 서버간에 표준 비동기 R.. 2017. 4. 5.
9.4 Data Definition Statements 일반적으로 DDL 이라고 하는 데이터 정의문은 실행할때 주의해야 한다. MySQL 에서 DDL은 트랜잭션 안에서 실행되더라도 롤백이 되지 않기 때문이다. 즉, 롤백되지 않은 작업이기 때문에 Group Replication에서 DDL을 함부로 실행하는 것은 위험하다. 그래서, DDL 구문을 실행할 때에는 좀 더 주의를 기울여서 진행해야 한다. 그리고 스키마 변경 작업이 완료되지 않은 동안에는 해당 테이블에 대한 DML도 같은 서버에서 진행되게 해야 한다. 그렇지 않으면, 데이터가 깨질 가능성이 높다. 즉, 단일 기본 모드로 운영중일 때에는 크게 문제가 되지 않는 사항이다. 2017. 4. 5.