您的位置:首页 > 健康 > 养生 > 手机大全网站_数字营销网站_东莞网络营销全网推广_荆门网站seo

手机大全网站_数字营销网站_东莞网络营销全网推广_荆门网站seo

2024/12/22 14:11:24 来源:https://blog.csdn.net/zhousenshan/article/details/142703808  浏览:    关键词:手机大全网站_数字营销网站_东莞网络营销全网推广_荆门网站seo
手机大全网站_数字营销网站_东莞网络营销全网推广_荆门网站seo

一 :Mysql主从复制

重要的两个日志文件:bin log 和 relay log

bin log:二进制日志(binnary log)以事件形式记录了对MySQL数据库执行更改的所有操作。

relay log:用来保存从节点I/O线程接受的bin log日志,作为中继日志存在

(1) 从节点执行 start salve,开启主从复制

(2) 主节点binlog 发送给从节点,从节点会将bin log追加到relay log后面,并保存bin log的位置,以便下次从这个位置开始获取后续的内容

(3)  relay log内容解析成sql,然后依次执行sql,实现数据同步

二 :主从复制的工作模式

异步复制

mysql默认复制模式,当主节点将数据写到binlog之后,并提交事务,就立即返回结果给客户端,并不关注更新bin log有没有同步到从节点

半同步复制

相对于异步复制,增加了等待从节点成功提交事务的逻辑,但是并不是等待所有从节点提交事务,而是只要有一个从节点提交事务,则返回客户端结果。

全同步

这就很好理解了,就是在半同步的基础上,增加了等待所有从节点都成功写入数据,才返回结果给客户端

三 :binlog 数据存储格式

binlog日志文件是二进制的,直接打开是乱码
1、statement格式
保存执行的sql语句,但是如果语句中有随机数,会造成主从同步数据不一致
2、row
每次操作保存受影响的行,以及怎么变化。但是会产生大量的日志,比较浪费存储空间

3、mixed
如果语句中没有随机数等,就保存sql语句,否则保存为row格式

四:Redis主从复制

第一步:申请同步请求

  • 从节点与主节点建立 TCP 连接,并正式请求同步数据,发送 PSYNC ? -1。
  • 主节点接收到请求后,向从节点回复 FULLRESYNC runid offset ,做好开始传输 RDB 数据的准备。

第二步: RDB 文件同步

  • 主节点执行 bgsave 命令,生成当前数据的快照—也就是 RDB 文件。
  • 主节点随后将这个 RDB 文件传输给从节点。
  • 从节点收到 RDB 文件后,开始加载到自己的数据库中。

第三步 : 复制缓存区命令同步

  • 之后,每当主节点有新的写命令,它都会立即传输给从节点并同时将新命令追加到复制缓冲区中。
  • 从节点持续接收并执行这些命令,确保与主节点的数据始终保持同步

参考文档:

https://zhuanlan.zhihu.com/p/686074142  彻底搞懂MySQL主从复制工作原理 2+3+3+4-腾讯云开发者社区-腾讯云

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com