MySql 주종 복제 메커니즘 전면 분석

4539 단어 MySQL마스터 복사
관계 형 데이터 베이스 로 서 MySQL 내 에 데이터 복사 체 제 를 구축 하여 사용 할 때 복사 체 제 를 바탕 으로 높 은 사용 가능 구조 등 고급 특성 을 실현 하여 MySQL 은 추가 플러그 인 이나 다른 도 구 를 이용 하지 않 아 도 생산 환경 에 적용 할 수 있 습 니 다.이것 은 MySQL 이 대면 적의 실제 응용 을 얻 는 조건 중의 하나 이다.
MySQL 의 복사 체 제 를 바탕 으로 데이터 베 이 스 를 사용 할 수 있 을 뿐만 아니 라 성능 확장,타지 재해 및 냉 열 분리 등 고급 특성 도 실현 할 수 있 습 니 다.
4.567917.높 은 사용 가능:일정한 복사 체 제 를 설정 함으로써 MySQL 은 호스트 간 데이터 복 제 를 실현 하여 일정한 높 은 사용 가능 능력 을 얻 었 습 니 다.더 높 은 가용성 을 얻 으 려 면 여러 개의 복사 본 을 설정 하거나 직렬 복 제 를 하면 목적 을 달성 할 수 있 습 니 다4.567917.성능 확장:복사 체제 가 여러 개의 데이터 백업 을 제공 하기 때문에 읽 기와 쓰기 의 일치 성 요구 가 높 지 않 은 장면 에서 하나 이상 의 복사 본 을 설정 하여 읽 기 요 구 를 복사 본 노드 에 나 누 어 전체적으로 읽 기와 쓰기 성능 을 향상 시 킬 수 있 습 니 다4.567917.타지 재해 준비:던 전 노드 를 타지 기계실 에 배치 하면 일정한 타지 재해 준비 능력 을 쉽게 얻 을 수 있다.실제 적 으로 네트워크 지연 등 전체적인 표현 에 영향 을 미 칠 수 있 는 요 소 를 고려 해 야 한다4.567917.거래 분리:복사 체 제 를 설정 하고 저주파,대 운 산 량 의 거래 를 던 전 노드 에 보 내 서 집행 하면 이런 거래 와 고주파 거래 경쟁 연산 자원 을 피 할 수 있 고 전체적인 성능 문 제 를 피 할 수 있다상기 능력 을 얻 기 위해 서 는 기본 적 인 MySQL 복제 메커니즘 을 이해 하고 실제 응용 장면 과 결합 하여 적당 한 설정 을 선택해 야 한다.
마스터 복제 메커니즘
MySQL 은 binlog 를 바탕 으로 주종 복 제 를 실현 하고 노드 에서 주 노드 binlog 에서 최신 업 데 이 트 를 추적 하고 가 져 와 자신 에 게 재생 하여 주 노드 데 이 터 를 복사 합 니 다.
다음 그림 은 MySQL 주종 복제 과정의 설명도 입 니 다.전체 과정 에서 세 개의 라인 과 관련 되 는데 그들의 직책 은 다음 과 같다.
4.567917.메 인 노드 binlog dump 스 레 드:이 스 레 드 는 노드 에서 메 인 노드 를 연결 한 후에 만 들 고 노드 에서 binlog 에 새로 기 록 된 데 이 터 를 보 내 는 것 을 책임 집 니 다.binlog 를 읽 을 때 dump 스 레 드 는 먼저 binlog 의 자 물 쇠 를 가 져 오고 읽 은 후에 바로 방출 한 다음 에 읽 은 데 이 터 를 노드 로 보 냅 니 다4.567917.노드 I/O 스 레 드:노드 I/O 스 레 드 에서 메 인 노드 에 데 이 터 를 동기 화 하 는 요청 을 하고 메 인 노드 에서 보 낸 데 이 터 를 받 아 relay-log 에 기록 합 니 다4.567917.노드 SQL 스 레 드:이 스 레 드 는 relay-log 에서 데이터 업 데 이 트 를 읽 고 재생 합 니 다
비동기 복제
기본 적 인 상황 에서 MySQL 의 마스터 복 제 는 비동기 복사 입 니 다.이러한 메커니즘 에서 메 인 노드 는 로 컬 로 그 를 작성 한 후에 클 라 이언 트 의 요청 에 즉시 응답 하고 노드 의 데이터 복사 과정 에서 비동기 로 실 행 됩 니 다.
분명 한 것 은 이런 체제 에서 복사 과정 은 메 인 노드 가 클 라 이언 트 의 요구 에 대한 응답 에 영향 을 주지 않 기 때문에 단일 노드 에 비해 전체적인 성능 에 현저 한 손실 을 주지 않 을 것 이다.
그러나 이러한 메커니즘 에서 만약 에 데이터 가 메 인 노드 에서 제출 되 고 노드 에서 동기 화 되 지 않 을 때 메 인 노드 가 다운 되면 메 인 노드 에서 새로운 데 이 터 를 전환 하고 기록 하면 데이터 가 분실 되 거나 일치 하지 않 을 수 있 습 니 다.
반 동기 복제(semisynchronous 복제)
5.6 버 전부터 MySQL 은 반 동기 복 제 를 지원 합 니 다.이런 메커니즘 은 비동기 복제 에 비해 다음 과 같은 차이 가 있 습 니 다.
메 인 노드 는 클 라 이언 트 의 요청 을 받 은 후에 이 노드 로 그 를 작성 하 는 동시에 노드 에서 데이터 동기 화 응답 을 완성 한 후에(또는 시간 초과)요청 에 응답 해 야 합 니 다.
노드 에서 relay-log 를 기록 하고 브러시 를 완성 한 후에 만 메 인 노드 에 응답 할 수 있 습 니 다.
노드 응답 이 시간 을 초과 할 때 메 인 노드 는 동기 화 체 제 를 비동기 복사 로 퇴화 시킨다.적어도 한 개 는 노드 에서 회복 되 고 데이터 추적 을 완성 한 후에 메 인 노드 는 동기 화 체 제 를 반 동기 화 복사 로 복원 할 것 이다.
이 를 통 해 알 수 있 듯 이 비동기 복제 에 비해 반 동기 복 제 는 어느 정도 에 데이터 의 가용성 을 향상 시 켰 다.비동기 복제 로 퇴화 되 지 않 았 을 때 메 인 노드 가 지연 되면 이 때 데 이 터 는 적어도 한 대의 노드 로 복사 되 었 다.
또한 클 라 이언 트 에 응답 할 때 노드 에서 응답 을 완성 해 야 하기 때문에 비동기 복사 보다 노드 에서 네트워크 상호작용 을 하 는 데 걸 리 는 시간 과 노드 에서 파일 을 쓰 고 디스크 를 닦 는 시간 이 많 기 때문에 전체적으로 클 라 이언 트 에 대한 응답 성능 이 떨 어 질 것 이다.
마스터 복사 형식
MySQL 의 복사 체 제 는 binlog 를 기반 으로 하기 때문에 binlog 의 형식 은 주종 복사 형식 을 결정 합 니 다.binlog 는 줄 기반 과 문장 기반 두 가지 가 있 고 복사 도 두 가지 대응 하 는 형식 이 있 습 니 다.
Statement-Based Replication(SBR)
문장 기반 복제 메커니즘 에 대해 binlog 는 실 행 된 문장 만 기록 합 니 다.이런 방식 은 다음 과 같은 장점 이 있다.
4.567917.3.23 버 전부터 존재 하고 장기 적 인 검증 을 거 친 성숙 한 기술4.567917.로그 파일 을 기록 하 는 데이터 가 더 적 다 는 것 은 더 적은 파일 기록 과 네트워크 전송 소 모 를 의미 하 며 전체적으로 주종 복 제 를 신속하게 완성 하고 성능 표현 을 향상 시 킬 수 있다로그 파일 은 모든 데이터베이스 에서 실 행 된 문 구 를 기록 하여 감사 등 용도 로 사용 할 수 있 습 니 다.
다음 과 같은 단점 이 있 습 니 다.
사용자 정의 함수(UDF)및 실행 결과 가 불확실 한 함 수 는 복사 할 수 없습니다4.567917.데이터 업 데 이 트 를 할 때 줄 기반 복사 보다 더 많은 줄 잠 금 이 필요 합 니 다4.567917.먼저 삽입 한 후에 업데이트 하 는 복잡 한 문 구 는 노드 에서 완전한 대응 재생 을 해 야 하고 줄 형식 을 바탕 으로 하 는 복 제 는 최종 결 과 를 실행 하면 된다.
Row-Based Replication(RBR)
줄 의 복사 체 제 를 바탕 으로 binlog 에 대응 하 는 것 도 줄 을 바탕 으로 하 는 것 입 니 다.이때 데이터 업데이트 가 binlog 에 기 록 될 때마다 영향 을 받 는 모든 줄 의 변화 로 바 뀌 었 습 니 다.
이런 복제 방식 은 다음 과 같은 장점 이 있다.
4.567917.모든 데이터 변 화 는 안전하게 복 제 될 수 있 고 UDF 와 특수 함수 의 영향 을 받 지 않 습 니 다
  • 대부분의 DBMS 는 이런 복제 방식 을 사용 하고 지식 이전 비용 이 낮다
  • 4.567917.데이터 업 데 이 트 를 할 때 필요 한 줄 잠 금 이 더욱 적어 서 더욱 높 은 성능 표현 을 얻 을 수 있 습 니 다.
    다음 과 같은 단점 이 있 습 니 다.
    4.567917.빅 데이터 양 과 관련 된 DML 을 사용 할 때 줄 을 기반 으로 하 는 로 그 는 대량의 로그 데 이 터 를 발생 시 킬 수 있 습 니 다.빅 데 이 터 는 로그 파일 의 기록,네트워크 전송 에 있어 더 긴 시간 을 의미 하기 때문에 전체적인 성능 이 현저히 떨 어 지고 문 제 를 일 으 킬 수 있 습 니 다4.567917.로 그 를 통 해 실 행 된 문 구 를 볼 수 없고 노드 에서 실 행 된 문 구 를 알 수 없습니다.
    실제 구조 응용 에서 시스템 의 업무 특징 에 따라 주종 복제 메커니즘 을 합 리 적 으로 이용 하고 적당 한 주종 복제 형식 을 선택해 야 한다.
    이상 은 MySql 주종 복제 메커니즘 에서 전면적으로 해석 한 상세 한 내용 입 니 다.MySql 주종 복제 메커니즘 에 관 한 자 료 는 저희 의 다른 관련 문장 을 주목 해 주 십시오!

    좋은 웹페이지 즐겨찾기