当前位置:网站首页>Introduction to the gtid mode of MySQL master-slave replication
Introduction to the gtid mode of MySQL master-slave replication
2022-07-05 00:51:00 【Greatsql community】
GTID summary
MySQL5.6 A new replication method is added to the original master-slave replication , That is, based on GTID The way of reproduction , It consists of UUID And transaction ID Two parts , It has the following characteristics .
- GTID Transactions are globally unique , And one transaction corresponds to one GTID value .
- One GTID The value is in the same MySQL The instance will be executed only once .
GTID Compared with traditional replication
- The master-slave construction is simpler , There is no need to manually specify position Location .
- There is a unified identity in the replication cluster , distinguish 、 Management is more convenient .
- Failover is easier , You don't need to find it like traditional replication log_file and log_Pos The location of .
- Usually GTID It's continuous, there's no void , Better ensure data consistency , Zero loss .
- be relative to ROW Copying model , More secure data , Easier switching .
- More secure than traditional replication , One GTID In a MySQL The instance will be executed only once , Avoid data confusion or master-slave inconsistency caused by repeated execution .
GTID What are their limitations
- In a replication group , Must be turned on GTID.
- MySQL5.6 Turn on GTID Need to restart .
- I won't support it sql_slave_skip_counte operation , Traditional replication can use this command to skip transactions .
- Not allowed in one SQL Update the tables of a transaction engine and a non transaction engine at the same time , Such as InnoDB and MyISAM.
- about create temporary table and drop temporary table Statement not supported .
- I won't support it create table … select Sentence copying .
GTID A brief introduction to the working principle
- master When nodes update data , It's going to happen before the transaction GTID Information , Record together binlog In the log .
- slave Node io Thread will binlog Write to local relay log in .
- then SQL The thread from relay log Read from GTID, Set up gtid_next The value of the gtid, Then contrast slave Terminal binlog Is there a record .
- If there are records , Explain the GTID The transaction for is already running ,slave Will ignore .
- If there is no record ,slave Will carry out the GTID The corresponding business , And record the binlog in .
How to open GTID Copy
- In addition to the traditional replication needs to be turned on binlog Other than relevant parameters ,GTID The following parameter settings need to be opened additionally for synchronization , Note that the master and slave nodes need to be started synchronously .
see GTID Related parameters
- Brief description of parameters
Parameter name | Meaning Introduction |
---|---|
binlog_gtid_simple_recovery | This parameter controls when MySQL Automatically find when the service restarts or starts GTIDs Value . |
enforce_gtid_consistency | This parameter is a mandatory requirement that only transaction safe transactions are allowed to be copied , Please see the specific limitations of the above steps . |
gtid_executed | Already executed GTID Information . |
gtid_executed_compression_period | Enable GTID when , The server will be on a regular basis mysql.gtid_executed Perform compression on the table . By setting gtid_executed_compression_period System variables , You can control the number of transactions allowed before compressing the table , So as to control the compression ratio . Set to 0 when , No compression . |
gtid_mode | Open or not GTID Pattern |
gtid_next | Indicates the next to be executed GTID Information |
gtid_owned | This parameter contains global and session, Global means that all servers have GTIDs,session Level indicates current client All you have GTIDs. |
gtid_purged | already purge Dropped GTIDs,purged Dropped GTIDs Will include to gtid_executed in . |
session_track_gtids | This parameter controls what is used for capture GTIDs And in OK PACKE Return tracker . |
GTID Different from the traditional mode when creating replication statements
GTID Synchronization is used when establishing replication , The traditional copy is artificially specified binlog Of pos The site is changed to MASTER_AUTO_POSITION=1
Automatic access to binlog Of pos site .
GTID Simple analysis of synchronization status
In addition to the traditional view binlog and pos Beyond value ,GTID Mode can more intuitively view the execution of a transaction .
- GTID Description of relevant key parameters
Parameter name | Meaning Introduction |
---|---|
Retrieved_Gtid_Set | Slave The node has received Master Node GTIDs |
Executed_Gtid_Set | Slave The node has executed GTIDs |
Auto_Position | Automatic access to position Location , Is shown as 1 |
summary
- Limited by space, I have written so much for the time being , Next week, we will continue to publish content related to master-slave replication , Welcome to catch up , In addition, it is limited by personal ability and experience , The content is inevitably wrong , If there is any error, please point out the correction in the comment area .
Enjoy GreatSQL
Article recommendation :
GreatSQL Quarterly Report (2021.12.26)
https://mp.weixin.qq.com/s/FZ_zSBHflwloHtZ38YJxbA
Technology sharing |sysbench Usage analysis of pressure measuring tools
https://mp.weixin.qq.com/s/m16LwXWy9bFt0i99HjbRsw
Fault analysis | linux disk io High utilization , Analyze the correct posture
https://mp.weixin.qq.com/s/7cu_36jfsjZp1EkVexkojw
Technology sharing | Flashback at MySQL Implementation and improvement in
https://mp.weixin.qq.com/s/6jepwEE0DnYUpjMYO17VtQ
Wan Da #20, How to filter data in index push down
https://mp.weixin.qq.com/s/pt6mr3Ge1ya2aa6WlrpIvQ
About GreatSQL
GreatSQL It is maintained by Wanli database MySQL Branch , Focus on Improvement MGR Reliability and performance , Support InnoDB Parallel query feature , It is suitable for financial grade applications MySQL Branch version .
Gitee:
https://gitee.com/GreatSQL/GreatSQL
GitHub:
https://github.com/GreatSQL/GreatSQL
Bilibili:
https://space.bilibili.com/1363850082/video
WeChat &QQ Group :
Searchable add GreatSQL Community assistant wechat friend , Send verification information “ Add group ” Join in GreatSQL/MGR Exchange wechat group
QQ Group :533341697
Wechat assistant :wanlidbc
边栏推荐
- Leetcode70 (Advanced), 322
- 两个数相互替换
- leetcode518,377
- [Yocto RM]10 - Images
- The performance of major mainstream programming languages is PK, and the results are unexpected
- leetcode494,474
- GDB common commands
- Which financial products with stable income are good
- BGP comprehensive experiment
- There is a new Post-00 exam king in the testing department. I really can't do it in my old age. I have
猜你喜欢
Summer challenge brings you to play harmoniyos multi terminal piano performance
全栈开发提效神器——ApiFox(Postman + Swagger + Mock + JMeter)
Safety learning week4
Innovation leads the direction. Huawei Smart Life launches new products in the whole scene
URLs and URIs
华为百万聘请数据治理专家!背后的千亿市场值得关注
dotnet-exec 0.6.0 released
Huawei employs millions of data governance experts! The 100 billion market behind it deserves attention
leetcode494,474
Distributed base theory
随机推荐
大专学历,33岁宝妈又怎样?我照样销售转测试,月入13k+
Huawei employs millions of data governance experts! The 100 billion market behind it deserves attention
潘多拉 IOT 开发板学习(RT-Thread)—— 实验4 蜂鸣器+马达实验【按键外部中断】(学习笔记)
Complete knapsack problem (template)
The waterfall flow layout demo2 (method 2) used by the uniapp wechat applet (copy and paste can be used without other processing)
2022.07.03 (LC 6108 decryption message)
26.2 billion! These universities in Guangdong Province have received heavy support
MongoDB系列之学习笔记教程汇总
The most complete regular practical guide of the whole network. You're welcome to take it away
SAP ui5 application development tutorial 107 - trial version of SAP ui5 overflow toolbar container control introduction
基本放大电路的学习
User login function: simple but difficult
【海浪建模2】三维海浪建模以及海浪发电机建模matlab仿真
Safety learning week4
POAP:NFT的采用入口?
Maximum number of "balloons"
[Yocto RM]10 - Images
两个数相互替换
多模输入事件分发机制详解
Query for Boolean field as "not true" (e.g. either false or non-existent)