如何查看mysql的gtid_汇总丨MySQL GTID技术点,看这一篇就够了!

本文详细介绍了MySQL的GTID(全局事务标识符)相关知识,包括如何查看gtid_executed表,GTID的作用,以及如何设置和管理GTID模式。重点讨论了gtid_executed的更新时机、gtid_purged的清除、GTID模式的切换以及压缩机制,并提醒了在使用GTID时需要注意的限制和问题。
摘要由CSDN通过智能技术生成

mysql> SELECT * FROM mysql.gtid_executed;

c74ae8afa79fd0f9c9381a56b49e1144.png

mysql.gtid_executed表是由MySQL服务器提供给内部使用的。它允许副本在副本上禁用二进制日志记录时使用GTIDs,并允许在二进制日志丢失时保留GTID状态。RESET MASTER命令,gtid_executed表将被清除。

服务意外停止的情况下,当前二进制日志文件中的gtid集不会保存在gtid_executed表。在恢复期间,这些gtid将从二进制日志文件添加到表中,以便可以继续复制。

3. gtid_executed

若MySQL服务器启用了二进制日志,则表mysql.gtid_executed的更新仅在二进制rotation时发生,因为发生重启等情况依旧可以通过扫描二进制日志判断得知当前运行的GTID位置。

简单来说,该表会记录当前执行的GTID

在MySQL 5.6中必须配置参数log_slave_updates的最重要原因在于当slave重启后,无法得知当前slave已经运行到的GTID位置,因为变量gtid_executed是一个内存值:

MySQL 5.7将gtid_executed这个值给持久化。采用的技巧与MySQL 5.6处理SQL thread保存位置的方式一样,即将GTID值持久化保存在一张InnoDB表中,并与用户事务一起进行提交,从而实现数据的一致性。

触发条件:

在binlog发生rotate(flush binary logs/达到max_binlog_size)或者关闭服务时,会把所有写入到binlog中的Gtid信息写入到mysql.gtid_executed表。

从库:如果没有开启log_bin或者没有开启log_slave_updates,从库在应用relay-log中的每个事务会执行一个insert mysql.gtid_executed操作。

常用命令

1. gtid设置

gtid_mode=ON #必选

enforce-gtid-consistency=true #必选

log-bin=mysql #5.6必选 5.7.5和它之后可选,为了高可用,最好设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值