집 >데이터 베이스 >MySQL 튜토리얼 >Mysql의 GTID 기반 복제 모드 이해
mysql tutorial 칼럼에서는 Mysql의 GTID 기반 복제 모드
추천(무료): mysql tutorial
GTID 정의
GTID(글로벌 거래 식별자) 글로벌 거래 식별자. GTID는 버전 5.6에 도입된 마스터-슬레이브 복제의 주요 개선 사항입니다. 이전 버전의 Binlog 파일 + 위치 기반 마스터-슬레이브 복제에 비해 GTID 기반 마스터-슬레이브 복제는 더 높은 데이터 일관성과 더 강력한 마스터-슬레이브 데이터 복제를 제공합니다. . 마스터-슬레이브 전환 및 장애 조치는 오류 발생 가능성이 낮고 사람의 개입이 거의 필요하지 않습니다.
표현방법
GTID = server_uuid:transaction_id
GTID는 보통 MySQL 시스템 변수 @@GLOBAL.gtid_executed
와 시스템 테이블 mysql.gtid_executed
에 기록됩니다. code >에서 시스템 변수 @@GLOBAL.gtid_executed
는 메모리에 있고 비영구 저장소에 속하지만 시스템 테이블 mysql.gtid_executed는 영구 저장소에 속합니다. @@GLOBAL.gtid_executed
以及系统表mysql.gtid_executed
中,系统变量@@GLOBAL.gtid_executed
在内存中,属于非持久化存储,而系统表mysql.gtid_executed属于持久化存储。
GTID比传统复制的优势
log_file
和log_pos
GTID的限制
CREATE TABLE…..SELECT
不能使用CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE
不能在事务内使用主从复制流程图
GTID生命周期
mysql.gtid_executed
表中。@@GLOBAL.gtid_executed
,但是系统表 mysql.gtid_executed 则不会,应为有部分gtid还在binlog中,需要等到binlog轮转或者mysqlServer关闭时才会写入到mysql。gtid_executed
表中.gtid_next
设置为该gtid值,使得从库使用该gtid值应用其对应的事务gtid_owned
系统变量记录着谁拥有该GTID.传统更换GTID复制模式
global.read_only
log_file 및 <code>log_pos
🎜🎜GTID는 구멍 없이 연속되어 데이터 일관성과 손실 제로를 보장합니다. 🎜🎜복제 클러스터에는 복제 위치를 식별하는 통일된 방법이 있어 클러스터 관리가 편리합니다.🎜🎜🎜🎜🎜🎜GTID 제한🎜🎜CREATE TABLE…..SELECT
를 사용할 수 없음🎜🎜CREATE TEMPORARY TABLE 및 DROP TEMPORARY TABLE
을 트랜잭션 내에서 사용할 수 없음🎜🎜🎜🎜🎜🎜마스터-슬레이브 복제 흐름 차트 🎜🎜🎜🎜🎜🎜🎜🎜🎜GTID 수명 주기🎜🎜mysql.gtid_executed
테이블에 기록됩니다. 🎜🎜트랜잭션이 제출되면 트랜잭션의 gtid가 시스템 변수 @@GLOBAL.gtid_executed
에 빠르게 추가되지만 시스템 테이블 mysql.gtid_executed에는 일부 gtid가 아직 남아 있기 때문에 추가되지 않습니다. binlog를 사용하려면 mysql에 쓰기 전에 binlog 회전이나 mysqlServer가 종료될 때까지 기다려야 합니다. gtid_executed
테이블 🎜🎜메인 라이브러리의 binlog는 마스터-슬레이브 복제 프로토콜을 통해 슬레이브 라이브러리로 전송되어 슬레이브 라이브러리의 릴레이 로그(릴레이 로그)에 기록되며, 라이브러리는 릴레이 로그 gtid 및 해당 트랜잭션 정보를 읽고 gtid_next
를 gtid 값으로 설정하여 슬레이브 라이브러리가 gtid 값을 사용하여 해당 트랜잭션을 적용하도록 합니다🎜🎜여러 스레드가 동일한 트랜잭션을 동시에 적용하는 경우, 예를 들어 여러 스레드는 gtid_next를 동일한 값으로 설정합니다. MySQL 서버는 스레드 중 하나만 실행하도록 허용합니다. gtid_owned
시스템 변수는 GTID를 소유한 사람을 기록합니다.🎜🎜🎜🎜🎜🎜전통적인 대체 GTID 복제 모드 🎜🎜global.read_only
매개변수를 설정하고 마스터-슬레이브 서버가 동기화될 때까지 mysql> SET @@global.read_only = ON;🎜🎜마스터-슬레이브 서버를 다시 시작하세요. 🎜🎜마스터-슬레이브 구성을 업데이트하려면 마스터-슬레이브
mysql> CHANGE MASTER TO MASTER_HOST = host, MASTER_PORT = port, MASTER_USER = user, MASTER_PASSWORD = password, MASTER_AUTO_POSITION = 1;6을 활성화하세요.🎜🎜
위 내용은 Mysql의 GTID 기반 복제 모드 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!