搜索
首页数据库mysql教程了解 Mysql基于GTID的复制模式

mysql教程栏目介绍Mysql基于GTID的复制模式是什么

了解 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比传统复制的优势

  1. 更简单的搭建主从复制
  2. 更简单的实现failover (主从切换),不用以前那样一步一步的去找log_filelog_pos
  3. GTID是连续的没有空洞的,保证数据的一致性,零丢失。
  4. 复制集群有一个统一的方式识别复制位置,给集群管理带来了便利

GTID的限制

  1. 在一个事务里面混合使用引擎如Innodb,myisam,造成多个GTIDS
  2. CREATE TABLE…..SELECT 不能使用
  3. CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE 不能在事务内使用

主从复制流程图


GTID生命周期

  1. 当一个事务在一个主库上被执行和提交,那么这个事务就会被分配一个和该主库uuid相关联的gtid,这个gtid被写入到主库的binlog文件中。
  2. 当这个binlog文件达到最大值发生轮转,或者MySQL Server关闭时,上一个binlog文件中的事务GTID将会被写入到mysql.gtid_executed表中。
  3. 事务提交时,该事务的gtid会很快的添加到系统变量@@GLOBAL.gtid_executed,但是系统表 mysql.gtid_executed 则不会,应为有部分gtid还在binlog中,需要等到binlog轮转或者mysqlServer关闭时才会写入到mysql。gtid_executed表中.
  4. 主库上的binlog通过主从复制协议传送到从库,并写入到从库的relay log(中继日志), 从库读取relay log中的gtid和对应的事务信息,把gtid_next设置为该gtid值,使得从库使用该gtid值应用其对应的事务
  5. 如果多个线程并发应用同一个事务,比如多个线程设置gtid_next为同一个值,MySQL Server 只允许其中一个线程执行,gtid_owned系统变量记录着谁拥有该GTID.

传统更换GTID复制模式

  1. 配置GTID
  2. 所有服务器设置global.read_only参数,等待主从服务器同步完毕;
    mysql> SET @@global.read_only = ON;
  3. 依次重启主从服务器;
  4. 使用change master 更新主从配置;
    mysql> CHANGE MASTER TO
    MASTER_HOST = host,
    MASTER_PORT = port,
    MASTER_USER = user,
    MASTER_PASSWORD = password,
    MASTER_AUTO_POSITION = 1;
    5、开启复制
    mysql> START SLAVE;
    6、验证主从复制
    mysql> show slave status \G

以上是了解 Mysql基于GTID的复制模式的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:learnku。如有侵权,请联系admin@php.cn删除
如何在MySQL中删除或修改现有视图?如何在MySQL中删除或修改现有视图?May 16, 2025 am 12:11 AM

todropaviewInmySQL,使用“ dropviewifexistsview_name;” andTomodifyAview,使用“ createOrreplaceViewViewViewview_nameAsSelect ...”。whendroppingaview,asew dectivectenciesanduse和showcreateateviewViewview_name;“ tounderStanditSsstructure.whenModifying

MySQL视图:我可以使用哪些设计模式?MySQL视图:我可以使用哪些设计模式?May 16, 2025 am 12:10 AM

mySqlViewScaneFectectialized unizedesignpatternslikeadapter,Decorator,Factory,andObserver.1)adapterPatternadaptSdataForomDifferentTablesIntoAunifiendView.2)decoratorPatternenhancateDataWithCalcalcualdCalcalculenfields.3)fieldfields.3)

在MySQL中使用视图的优点是什么?在MySQL中使用视图的优点是什么?May 16, 2025 am 12:09 AM

查看InMysqlareBeneForsImplifyingComplexqueries,增强安全性,确保dataConsistency,andOptimizingPerformance.1)他们simimplifycomplexqueriesbleiesbyEncapsbyEnculatingThemintoreusableviews.2)viewsEnenenhancesecuritybyControllityByControllingDataAcces.3)

如何在MySQL中创建一个简单的视图?如何在MySQL中创建一个简单的视图?May 16, 2025 am 12:08 AM

toCreateAsimpleViewInmySQL,USEthecReateaTeviewStatement.1)defitEtheetEtheTeViewWithCreatEaTeviewView_nameas.2)指定usethectstatementTorivedesireddata.3)usethectStatementTorivedesireddata.3)usetheviewlikeatlikeatlikeatlikeatlikeatlikeatable.views.viewssimplplifefifydataaccessandenenanceberity but consisterfort,butconserfort,consoncontorfinft

MySQL创建用户语句:示例和常见错误MySQL创建用户语句:示例和常见错误May 16, 2025 am 12:04 AM

1)foralocaluser:createUser'localuser'@'@'localhost'Indidendify'securepassword'; 2)foraremoteuser:creationuser's creationuser'Remoteer'Remoteer'Remoteer'Remoteer'Remoteer'Remoteer'Remoteer'Remoteer'Rocaluser'@'localhost'Indidendify'seceledify'Securepassword'; 2)

在MySQL中使用视图的局限性是什么?在MySQL中使用视图的局限性是什么?May 14, 2025 am 12:10 AM

mysqlviewshavelimitations:1)他们不使用Supportallsqloperations,限制DatamanipulationThroughViewSwithJoinSorsubqueries.2)他们canimpactperformance,尤其是withcomplexcomplexclexeriesorlargedatasets.3)

确保您的MySQL数据库:添加用户并授予特权确保您的MySQL数据库:添加用户并授予特权May 14, 2025 am 12:09 AM

porthusermanagementInmysqliscialforenhancingsEcurityAndsingsmenting效率databaseoperation.1)usecReateusertoAddusers,指定connectionsourcewith@'localhost'or@'%'。

哪些因素会影响我可以在MySQL中使用的触发器数量?哪些因素会影响我可以在MySQL中使用的触发器数量?May 14, 2025 am 12:08 AM

mysqldoes notimposeahardlimitontriggers,butacticalfactorsdeterminetheireffactective:1)serverConfiguration impactactStriggerGermanagement; 2)复杂的TriggerSincreaseSySystemsystem load; 3)largertablesslowtriggerperfermance; 4)highConconcConcrencerCancancancancanceTigrignecentign; 5); 5)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中