MYSQL_GTID的示例解析
发布时间:2021-12-23 11:27:08 所属栏目:MySql教程 来源:互联网
导读:这篇文章给大家分享的是有关MYSQL_GTID的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 一、GTID概述 GTID是MYSQL5.6新增的特性,GTID(Global Transaction Identifier)全称为全局事务标示符,用以数据库实例事务唯一
这篇文章给大家分享的是有关MYSQL_GTID的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 一、GTID概述 GTID是MYSQL5.6新增的特性,GTID(Global Transaction Identifier)全称为全局事务标示符,用以数据库实例事务唯一标识,其组成主要是source_id和transaction_id 即GTID = source_id:transaction_id。其中source_id是数据库启动自动生成的数据库实例唯一标识,保存在auto.cnf中,而transaction_id则是事务执行的序列号。 二、GTID优缺点 优点: 复制安全性更高,一个事务在每个实例上只执行一次; 故障切换简单,可通过设置MASTER_AUTO_POSITION=1,而非master_log_file和master_log_pos来建立主从关系; 可根据GTID确定事务最早提交的实例; 缺点: 组复制中,必须要求统一开启GTID或者关闭GTID; 不支持复制create table table_name select ... from table_name_xx ; 不支持create temporary table和drop temporary table; 不支持sql_slave_skip_counter,可通过set global gtid_next='' 跳过; 从库和主库都必须设置log_slave_updates 三、GTID工作原理 1、master更新数据时,会在事务前产生GTID,一同记录到binlog日志中。 2、slave端的i/o 线程将变更的binlog,写入到本地的relay log中。 3、sql线程从relay log中获取GTID,然后对比slave端的binlog是否有记录。 4、如果有记录,说明该GTID的事务已经执行,slave会忽略。 5、如果没有记录,slave就会从relay log中执行该GTID的事务,并记录到binlog。 6、在解析过程中会判断是否有主键,如果没有就用二级索引,如果没有就用全部扫描。 四、 参数 comment gtid_executed 执行过的所有GTID,可通过reset master重置 gtid_purged 丢弃掉的GTID,设置后从而导致slave不会再去master请求这些GTIDs,并且Executed_Gtid_Set为空时,才可以设置此值 gtid_mode gtid模式 gtid_next session级别的变量,下一个gtid gtid_owned 正在运行的gtid enforce_gtid_consistency 保证GTID安全的参数 感谢各位的阅读!关于“MYSQL_GTID的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧! (编辑:重庆站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |