• 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. 리플리케이션
  • 1. Replication 구성
    2. Replication 구현
    3. Replication 솔루션
    1. 백업을 위해 Replication 사용
    2. 다른 Master 및 Slave 스토리지 엔진에서 복제
    3. 확장(Scale-Out)을 위한 복제
    4. 다른 데이터베이스를 다른 Slave에 복제
    5. Replication 성능을 향상
    6. 장애 발생시 Master 전환
    7. SSL을 사용하여 Replication 설정
    8. Semisynchronous Replication(반동기 복제)
    1. 반동기 복제 관리 인터페이스
    2. 반동기 복제의 설치 및 구성
    3. 반동기 복제 모니터링
    9. 복제 지연(Delayed Replication)
    4. Replication Notes and Tips
  • 18. MySQL Cluster
  • 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 새로운 기능

17.3.8 Semisynchronous Replication(반동기 복제)

17.3.8.1 준 동기 복제 관리 인터페이스
17.3.8.2 준 동기 복제의 설치 및 구성
17.3.8.3 준 동기 복제 모니터링

MySQL 5.6은 비동기 복제를 내장하고 있습니다 만, 또한 플러그인에 의해 구현되는 준 동기 복제에 대한 인터페이스를 지원합니다. 이 섹션에서는 준 동기 복제의 개요와 그 동작에 대해 설명합니다. 다음 섹션에서는 준 동기 복제에 대한 관리 인터페이스 및이를 설치, 구성 및 모니터하는 방법에 대해 설명합니다.

MySQL 복제는 기본적으로 비동기입니다. 마스터는 이벤트를 바이너리 로그에 기록하지만, 슬레이브가 그들을 취득하여 처리 여부 또는 그 일시를 인식하지 않습니다. 비동기 복제는 마스터가 충돌해도 그것이 커밋 된 트랜잭션이 슬레이브에 전송되지 않은 경우가 있습니다. 즉,이 경우 마스터에서 슬레이브로 장애 조치가 발생하면 마스터에 관련된 트랜잭션이 서버로 장애 조치 될 수 있습니다.

준 동기 복제는 비동기 복제의 대안으로 사용할 수 있습니다.

  • 슬레이브는 마스터에 연결 될 때 준 동기 대비 여부를 알려줍니다.

  • 준 동기 복제가 마스터 측에서 유효하고, 준 동기 슬레이브가 하나있는 경우 마스터에서 트랜잭션 커밋을 수행하는 스레드는 커밋 후 차단 된 적어도 하나의 준 동기 슬레이브가 트랜잭션의 모든 이벤트 을 받았다는 것을 알리거나 시간이 초과 될 때까지 기다립니다.

  • 슬레이브는 이벤트가 릴레이 로그에 기록 된 디스크에 플래시 된 후에 만​​ 트랜잭션 이벤트를받은 것을 통지합니다.

  • 슬레이브에서 트랜잭션 수신 통지가없는 상태에서 타임 아웃이 발생하면 마스터는 비동기 복제로 돌아갑니다. 적어도 하나의 준 동기 슬레이브가 따라 잡았을 때도, 주인은 준 동기 복제로 돌아갑니다.

  • 준 동기 복제는 마스터와 슬레이브 모두에​​서 활성화해야합니다. 준 동기 복제가 마스터로 사용할 수 있거나 마스터에서 활성화에도 슬레이브에서 그렇게되어 있지 않으면 마스터는 비동기 복제를 사용합니다.

마스터 블록 중 (커밋을 실행 한 후 슬레이브로부터의 통지를 대기 중)은 트랜잭션을 실행 한 세션으로 돌아 가지 않습니다. 블록이 완료되면 마스터는 그 세션으로 돌아가 다른 문 실행에 진행합니다. 이 시점에서 트랜잭션은 마스터 측에서 커미트에서 해당 이벤트를받은 것이 하나의 슬레이브로부터 통지되어 있습니다.

블록은 바이너리 로그에 기록되는 롤백 후에도 발생하고 이것은 비 트랜잭션 테이블을 변경하는 트랜잭션이 롤백 될 때 발생합니다. 롤백 트랜잭션은 트랜잭션 테이블에 영향을주지 않는 경우를 포함하여 로그가 기록됩니다. 비 트랜잭션 테이블의 변경 내용은 롤백 할 수없고, 슬레이브로 전송 될 필요가 있기 때문입니다.

트랜잭션 컨텍스트에서 발생하지 않는 문의 경우 (즉, 트랜잭션이 START TRANSACTION 또는 SET autocommit = 0 에서 시작되지 않은 경우) 자동 커밋이 활성화되어 있고, 각 문은 암시 적으로 커밋됩니다. 준 동기 복제는 명시 적 트랜잭션 커밋과 마찬가지로 마스터는 이러한 각 문을 커밋 한 후 차단됩니다.

"준 동기 복제"의 "준"의 의미를 이해하려면 비동기 및 전체 동기화 복제와 비교합니다.

  • 비동기 복제는 마스터 이벤트를 바이너리 로그에 기록 노예가 준비되어있는 때 그들을 요청합니다. 이벤트가 슬레이브에 반드시 도달하는 것은 보증되지 않습니다.

  • 전체 동기화 복제는 마스터가 트랜잭션을 커밋하면 마스터가 트랜잭션을 실행 한 세션에 돌아 오기 전에 모든 슬레이브도 트랜잭션을 커밋합니다. 이것의 단점은 트랜잭션의 완료가 크게 지연 될 수있는 것입니다.

  • 준 동기 복제는 비동기 및 전체 동기화 복제의 중간입니다. 마스터는 커밋 후 적어도 1 개의 슬레이브가 이벤트를 수신 로그를 기록 할 때까지 기다립니다. 모든 슬레이브가 수신을 알릴 때까지 기다리지 않고 슬레이브에서 이벤트가 완전히 실행되고 커밋 된 것이 아니라, 수취만을 요구합니다.

준 동기 복제는 비동기 복제에 비해 데이터 무결성이 향상됩니다. 커밋이 완료되었는지를 반환하면 데이터가 적어도 2 개의 장소 (마스터와 하나의 슬레이브)에 존재하는 것을 알 수 있습니다. 마스터는 커밋하더라도, 마스터가 슬레이브로부터의 통지를 대기 중에 충돌이 발생하면 트랜잭션이 슬레이브에 도달하지 못한 가능성이 있습니다.

준 동기 복제는 바이너리 로그 이벤트를 마스터에서 슬레이브로 보낼 수있는 속도를 제한하는 것으로, 바쁜 세션에 속도 제한을 설정할 수도 있습니다. 사용자가 너무 바쁜 경우, 이에 따라 속도가 느려지고 일부 배포 상황에서 도움이됩니다.

준 동기 복제 노예를 기다릴 필요에 의해 커밋이 느려지므로 성능에 약간 영향을줍니다. 이것은 데이터 무결성 향상 사이의 균형입니다. 속도 저하의 양은 슬레이브에 커밋을 보내 슬레이브로부터의 수령 통지를 대기하는 TCP / IP 왕복 시간 이상입니다. 이것은 준 동기 복제는 고속 네트워크에서 통신하는 가까운 서버에 적합하며, 느린 네트워크에서 통신하는 먼 서버에 최악임을 의미합니다.

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