집 >데이터 베이스 >MySQL 튜토리얼 >Mysql 마스터-슬레이브 동기화 원리 구현에 대한 자세한 소개(그림 및 텍스트)
이 글에서는 Mysql 마스터-슬레이브 동기화의 구현 원리를 주로 소개하고 있는데, 편집자가 보기엔 꽤 좋다고 생각해서 지금부터 공유하고 참고용으로 올려보겠습니다. 에디터를 따라가서 살펴보자
1. mysql 마스터-슬레이브 동기화란?
마스터 데이터베이스의 데이터가 변경되면 변경 사항이 실시간으로 슬레이브 데이터베이스에 동기화됩니다.
2. 마스터-슬레이브 동기화의 장점은 무엇인가요?
데이터베이스의 부하 용량을 수평적으로 확장합니다.
내결함성, 고가용성. 장애 조치(전환 실패)/고가용성
데이터 백업.
3. 마스터-슬레이브 동기화의 원리는 무엇인가요?
먼저 마스터-슬레이브 아키텍처를 이해해 봅시다.
아래와 같이
삭제, 업데이트, 삽입, 생성함수인지, 저장 프로시저 , 모든 작업은 마스터에서 수행됩니다. 마스터에 작업이 있으면 슬레이브는 이러한 작업을 신속하게 수신하고 동기화를 수행합니다.
그런데 이 메커니즘은 어떻게 구현되나요?
마스터 머신에서 마스터-슬레이브 동기화 이벤트는 슬레이브 머신의 특수 로그 파일(바이너리 로그)에 기록되며, 슬레이브는 마스터-슬레이브 동기화 이벤트를 읽고 읽습니다. 이벤트가 변경되면 슬레이브 라이브러리에서 해당 변경을 수행합니다.
이렇게 마스터-슬레이브 동기화가 이루어집니다!
자세히 알아보겠습니다.
3.1 마스터-슬레이브 동기화 이벤트는 무엇입니까?
위에서 언급한 바와 같이:
마스터 시스템에서는 마스터-슬레이브 동기화가 수행됩니다. 이벤트는 특수 로그 파일(바이너리 로그)에 기록됩니다.
마스터-슬레이브 동기화 이벤트에는 명령문, 행 및 혼합의 세 가지 형태가 있습니다.
statement: 데이터베이스 작업을 위한 SQL 문을 binlog에 기록합니다.
행: 각 데이터 변경사항이 binlog에 기록됩니다.
혼합: 문과 행이 혼합된 것입니다. MySQL은 명령문 형식을 작성할 시기와 행 형식으로 binlog를 작성할 시기를 결정합니다.
3.2 마스터 머신에서의 작업
마스터의 데이터가 변경되면 이벤트(삽입, 업데이트, 삭제)가 Write to에 따라 변경됩니다. binlog를 순차적으로 작성합니다.
binlog 덤프 스레드
슬레이브가 마스터에 연결되면 마스터 머신은 슬레이브에 대한 binlog 덤프 스레드를 엽니다. 마스터의 binlog가 변경되면 binlog 덤프 스레드는 슬레이브에 알리고 해당 binlog 콘텐츠를 슬레이브에 보냅니다.
3.3 슬레이브 머신에서의 작업
마스터-슬레이브 동기화가 켜져 있으면 슬레이브에 2개의 스레드가 생성됩니다.
I/O 스레드. 이 스레드는 마스터 시스템에 연결되며 마스터 시스템의 binlog 덤프 스레드는 binlog의 내용을 I/O 스레드로 보냅니다. binlog 내용을 받은 후 I/O 스레드는 해당 내용을 로컬 릴레이 로그에 기록합니다.
SQL 스레드. 이 스레드는 I/O 스레드가 작성한 릴레이 로그를 읽습니다. 그리고 릴레이 로그의 내용에 따라 슬레이브 데이터베이스에 해당 작업을 수행합니다.
3.4 마스터와 슬레이브에서 위 스레드를 보는 방법은 무엇입니까?
SHOW PROCESSLIST 명령을 사용하여 확인하세요.
그림과 같이 마스터 머신에서 binlog 덤프 스레드를 봅니다.
그림과 같이 슬레이브 머신의 I/O 및 SQL 스레드를 확인합니다.
4. 말이 많으니 사진 한장으로 요약하겠습니다
위 내용은 Mysql 마스터-슬레이브 동기화 원리 구현에 대한 자세한 소개(그림 및 텍스트)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!