• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 1. MySQL Cluster 개요
    2. MySQL Cluster 설치
    3. MySQL Cluster 설정
    4. MySQL Cluster 프로그램
    5. MySQL Cluster 관리
    6. MySQL Cluster Replication
    1. MySQL Cluster Replication : 약어 및 기호
    2. MySQL Cluster Replication의 일반 요구 사항
    3. MySQL Cluster Replication의 알려진 문제
    4. MySQL Cluster Replication 스키마와 테이블
    5. 복제를위한 MySQL Cluster 준비
    6. Starting MySQL Cluster Replication (Single Replication Channel)
    7. 2 개의 복제 채널을 사용하는 MySQL Cluster 복제
    8. MySQL Cluster 복제를 사용한 장애 조치 구현
    9. MySQL Cluster 복제를 사용한 MySQL Cluster 백업
    10. MySQL Cluster Replication:멀티 마스터와 순환 복제
    11. MySQL Cluster Replication 충돌 해결
    7. MySQL Cluster Release Notes
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

18.6.8 MySQL Cluster 복제를 사용한 장애 조치 구현

기본 클러스터의 복제 프로세스가 실패하면 보조 복제 채널로 전환 할 수 있습니다. 그런 다음이 구현하는 데 필요한 단계에 대해 설명합니다.

  1. 최신 글로벌 체크 포인트 (GCP)의 시간을 가져옵니다. 즉, 슬레이브 클러스터의 ndb_apply_status 테이블에서 최신 신기원을 지정해야 이것은 다음의 쿼리를 사용하여 확인할 수 있습니다.

    mysqlS'> SELECT @latest:=MAX(epoch)
          ->        FROM mysql.ndb_apply_status;
    
  2. 1 단계에서 설명한 쿼리에서 얻은 정보를 사용하여 마스터 클러스터 ndb_binlog_index 테이블에서 해당 레코드를 가져옵니다.

    MySQL Cluster NDB 7.3에서는 다음의 쿼리를 사용하면 마스터 ndb_binlog_index 테이블에서 필요한 레코드를 가져올 수 있습니다.

    mysqlM'> SELECT
          ->     @file:=SUBSTRING_INDEX(next_file, '/', -1),
          ->     @pos:=next_position
          -> FROM mysql.ndb_binlog_index
          -> WHERE epoch = @latest
          -> ORDER BY epoch ASC LIMIT 1;
    

    이들은 기본 복제 채널에서의 실패 후 마스터에 저장된 레코드입니다. 여기에서는 사용자 변수 @latest 를 사용하여 1 단계에서 얻은 값을 나타냅니다. 물론있다 mysqld 인스턴스가 다른 서버 인스턴스에 설정된 사용자 변수에 직접 액세스 할 수 없습니다. 이러한 값은 수동으로 두 번째 쿼리 또는 응용 프로그램 코드에 "플러그인"해야합니다.

    중요

    START SLAVE 를 실행하기 전에 슬레이브 mysqld가 --slave-skip-errors=ddl_exist_errors 에서 시작되어 있는지 확인합니다. 그렇지 않으면 복제가 중복 DDL 오류로 중지 될 수 있습니다.

  3. 이제 보조 슬레이브 서버에서 다음 쿼리를 실행하여 보조 채널 동기화 할 수 있습니다.

    mysqlS'> CHANGE MASTER TO
          ->     MASTER_LOG_FILE='@file',
          ->     MASTER_LOG_POS=@pos;
    

    다시 사용자 변수 (이 경우 @file 과 @pos )을 사용하여 2 단계에서 취득 된 3 단계에서 적용되는 값을 나타냅니다. 사실, 이러한 값을 수동으로 삽입하거나 관여하는 두 서버에 액세스 할 수있는 응용 프로그램 코드를 사용하여 삽입해야합니다.

    참고

    @file 은 '/var/log/mysql/replication-master-bin.00001' 등의 문자열 값이기 때문에 SQL 또는 응용 프로그램 코드에서 사용할 때는 따옴표로 묶어야합니다. 그러나 @pos 로 표시되는 값은 따옴표로 묶을 필요가 없습니다. 일반적으로 MySQL은 문자열을 숫자로 변환하려고하지만,이 경우는 예외입니다.

  4. 이제 보조 슬레이브 mysqld에서 적절한 명령을 실행하여 보조 채널에서 복제를 시작할 수있게되었습니다.

    mysqlS'> START SLAVE;
    

보조 복제 채널이 활성화되면 기본 결함을 확인하고 수정할 수 있습니다. 이를 위해 필요한 적절한 액션은 기본 채널에 실패한 원인에 따라 다릅니다.

경고

보조 복제 채널은 기본 복제 채널의 정지 또는 중지 한 경우에만 시작됩니다. 여러 복제 채널을 동시에 실행하면 불필요한 중복 레코드가 복제 슬레이브로 작성 될 수 있습니다.

문제가 하나의 서버에 한정되는 경우 M 에서 S' 에 또는 M' 에서 S 에 (논리적으로) 복제 수 있지만 아직 검증되지 않았습니다.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved