Mysql GTID 기반 구축 주종 동기 화
4246 단어 데이터 뱅 크
1.전역 사무 표지:global transaction identifiers.2.GTID 는 하나의 업무 가 일일이 대응 되 고 전체 국면 에서 유일한 ID 입 니 다.3.하나의 GTID 는 한 서버 에서 한 번 만 실행 하고 중복 실행 으로 인해 데이터 가 혼 란 스 럽 거나 주종 이 일치 하지 않 는 것 을 피한다.4.GTID 는 전통 적 인 복제 방법 을 대체 하고 MASTER 을 사용 하지 않 습 니 다.LOG_FILE+MASTER_LOG_POS 에서 복 사 를 시작 합 니 다.MASTER 사용AUTO_POSTION=1 방식 으로 복 사 를 시작 합 니 다.5.MySQL-5.6.5 가 지원 하기 시 작 했 고 MySQL-5.6.10 이후 에 보완 되 기 시작 했다.6.전통 적 인 슬 레이 브 엔 드 에서 binlog 는 열지 않 아 도 되 지만 GTID 에서 슬 레이 브 엔 드 의 binlog 는 반드시 열 려 야 합 니 다.실 행 된 GTID(강제)를 기록 하 는 것 이 목적 입 니 다.
2.GTID 의 구성
GTID = source_id:transaction_idsource_id:원본 서버,즉 my sql 서버 의 유일한 server 감별 에 사용 합 니 다.uid 는 GTID 가 slave 로 전달 되 기 때문에 원본 ID 로 도 이해 할 수 있 습 니 다.transaction_id:현재 서버 에 제출 된 트 랜 잭 션 의 시리 얼 번호 입 니 다.보통 1 부터 증가 하 는 시퀀스 입 니 다.하나의 수 치 는 하나의 트 랜 잭 션 에 대응 합 니 다.예시:3E11FA 47-71CA-11E1-9E33-C80AA 9429562:23 앞 에 있 는 서버 의 serveruid,즉 3E11FA 47-71CA-11E1-9E33-C80AA 9429562,뒤의 23 은 transactionid
3.GTID 의 장점
1.더 간단하게 failover 를 실현 합 니 다.예전 처럼 log 를 찾 지 않 아 도 됩 니 다.file 과 logpos。2.더욱 간단 한 구축 주종 복제.3.전통 적 인 복제 보다 안전 합 니 다.4.GTID 는 연속 적 으로 구멍 이 없고 데이터 의 일치 성 을 확보 하 며 분실 되 지 않 습 니 다.
4.GTID 의 작업 원리
1.하나의 업무 가 주 라 이브 러 리 에서 실행 되 고 제출 될 때 GTID 를 생 성하 여 binlog 로그 에 기록 합 니 다.2.binlog 를 slave 로 전송 하고 slave 의 relaylog 에 저장 한 후 이 GTID 의 이 값 설정 gtid 를 읽 습 니 다.next 변 수 는 Slave 에 게 다음 실행 할 GTID 값 을 알려 줍 니 다.3.sql 스 레 드 는 relay log 에서 GTID 를 가 져 온 다음 에 slave 엔 드 의 binlog 에 이 GTID 가 있 는 지 비교 합 니 다.4.기록 이 있 으 면 이 GTID 의 업무 가 이미 실행 되 었 음 을 설명 하고 slave 는 무시 합 니 다.5.기록 이 없 으 면 slave 는 이 GTID 업 무 를 수행 하고 이 GTID 를 자신의 binlog 에 기록 하 며 실행 업 무 를 읽 기 전에 다른 session 이 이 GTID 를 가지 고 있 는 지 확인 하여 중복 되 지 않도록 합 니 다.6.분석 과정 에서 메 인 키 가 있 는 지 여 부 를 판단 하고 없 으 면 2 급 색인 을 사용 하 며 없 으 면 모두 스 캔 합 니 다.
5.GTID 의 설정
GTID 설정 에 대해 서 는 주로 설정 파일 에서 GTID 특성 과 관련 된 몇 가지 중요 한 매개 변 수 를 수정 합 니 다.my sql 버 전 은 my sql-5.6.5 버 전 이상 을 권장 합 니 다.
Mysql 마스터 설정:
[mysqld]
#GTID:
server_id=135 # id
gtid_mode=on # gtid
enforce_gtid_consistency=on # gtid , create table
#binlog
log_bin=master-binlog
log-slave-updates=1
binlog_format=row # ,
#relay log
skip_slave_start=1
Mysql 슬 레이 브 설정:
[mysqld]
#GTID:
gtid_mode=on
enforce_gtid_consistency=on
server_id=143
#binlog
log-bin=slave-binlog
log-slave-updates=1
binlog_format=row # ,
#relay log
skip_slave_start=1
6.GTID 기반 복사 설정
1.새로 설 정 된 my sql 서버
새로 설 정 된 my sql 서버 에 대해 서 는 본 고의 다섯 번 째 설명 에 따라 매개 변수 파일 을 설정 한 후 slave 에서 다음 과 같은 작업 을 수행 합 니 다.
(root@localhost) [(none)]> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.135',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='xxx',
-> MASTER_PORT=3306,
-> MASTER_AUTO_POSITION = 1;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
(root@localhost) [(none)]> start slave;
Query OK, 0 rows affected (0.01 sec)
(root@localhost) [(none)]> show slave status \G ###
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.135
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-binlog.000001
Read_Master_Log_Pos: 151
Relay_Log_File: slave-relay-log.000002
Relay_Log_Pos: 369
Relay_Master_Log_File: master-binlog.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
2.고전 복사 my sql 서버 를 실행 하여 GTID 로 복사 합 니 다.
a.본 고의 다섯 번 째 설명 에 따라 매개 변수 파일 을 설정 합 니 다.b、모든 서버 설정 global.readonly 매개 변수,서버 동기 화 완료 대기;mysql> SET @@global.read_only = ON; c.마스터 서버 를 순서대로 다시 시작 합 니 다.d.change master 를 사용 하여 마스터 설정 을 업데이트 합 니 다.
mysql> CHANGE MASTER TO
> MASTER_HOST = host,
> MASTER_PORT = port,
> MASTER_USER = user,
> MASTER_PASSWORD = password,
> MASTER_AUTO_POSITION = 1;
e.라 이브 러 리 에서 mysql>START SLAVE 복사 하기;f.인증 마스터 복사
다음으로 전송:https://blog.51cto.com/7834466/2345202
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
nginx websocket ip_해시 규칙프로젝트 를 다운로드 한 후 서로 다른 네트워크 에 각각 이 demo 프로젝트 를 배치 합 니 다. 프로젝트 에서 환경 변수 에 따라 시스템 변 수 를 설정 합 니 다. spring.profiles.active=de...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.