这是我参与更文挑战的第14天,活动详情查看: 更文挑战。
前面已经有一篇文章成功实践了基于
GTID的Mysql主主同步。但是原理性的东西还不是很了解,比如什么是GTID?主从同步的流程是怎样的?GTID的优缺点分别是什么?代入这些问题,我们来了解一下原理。
1.主从同步流程
1.1相关概念解释
InnoDB 使用undo、 redo log 来保证事务原子性、一致性及持久性,同时采用预写日志(Write-Ahead Logging)方式将随机写入变成顺序追加写入,提升事务性能。
binglog 二进制日志,也称归档日志
binlog日志用于记录所有更新且提交了数据或者已经潜在更新提交了数据的所有数据。用于主从同步和基于时间节点还原。
redolog 重做日志
记录事务将要变更后的状态。事务提交时,只要将redo log 持久化即可,数据可在内存中变更。当系统崩溃时,虽然数据没有落盘,但是redo log 已持久化,系统可以根据redo log 的内容,将所有数据恢复到最新的状态。
undolog 回滚日志
记录事务变更前的状态。操作数据之前,先将数据备份到undo log ,然后进行数据修改,如果出现错误或用户执行了rollback 语句,则系统就可以利用undo log

本文详细解析了主从同步流程,重点介绍了GTID(全局事务ID)的概念、生成方式、开启方法及其优缺点。探讨了如何利用GTID简化主备同步设置,并讨论了其在多线程复制和故障恢复中的作用。
最低0.47元/天 解锁文章
1219

被折叠的 条评论
为什么被折叠?



