mysql教程栏目介绍Mysql基于GTID的复制模式是什么
推荐(免费):mysql教程
GTID定义
GTID( Global Transaction Identifier)全局事务标识。GTID是5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于Binlog文件+Position的主从复制,基于GTID的主从复制,数据一致性更高,主从数据复制更健壮,主从切换、故障切换不易出错,很少需要人为介入处理。
表示方式
GTID = server_uuid:transaction_id
其GTID通常会记录在MySQL的系统变量@@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
参数,等待主从服务器同步完毕;
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;
mysql> START SLAVE;
mysql> show slave status \G
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!