iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL45讲之主备数据一致性 - flowers
  • 443
分享到

MySQL45讲之主备数据一致性 - flowers

MySQL45讲之主备数据一致性-flowers 2019-06-13 23:06:20 443人浏览 才女
摘要

本文主要介绍 Mysql 主备数据同步的重要日志 binlog 的三种格式,和双 M 结构的循环复制问题。 前言 本文主要介绍 mysql 主备数据同步的重要日志 binlog 的三种格式,和

MySQL45讲之主备数据一致性 - flowers

本文主要介绍 Mysql 主备数据同步的重要日志 binlog 的三种格式,和双 M 结构的循环复制问题。

前言

本文主要介绍 mysql 主备数据同步的重要日志 binlog 的三种格式,和双 M 结构的循环复制问题。

binlog三种格式

1. statement格式

直接存储了执行的 sql 语句,并且存储了时间戳,大部分情况下不会出现主从不一致的情况。但是,还是存在某些特殊情况下,比如主从库执行语句时使用的索引不一样(因为存在统计模糊量,所以执行代价评估的时候结果可能不同),最后导致更新的结果不一致。

总结statement的优点在于占用的存储空间较小,但是可能会出现主从数据不一致的情况,所以基本不采用statement格式。

2. row格式

row 格式下,binlog 中记录了执行前后的行记录字段值,方便数据回滚。binlog_row_image 默认配置为 FULL,所以 binlog 中会记录行的全字段值,如果修改为 MINIMAL,则只会记录一些必要的字段值。

总结:因为 row 格式下记录了修改的字段值,所以主从同步时不会发生数据不一致。但是因为会记录更新前后的字段值,占用的存储空间会大很多。

3. mixed格式

既然有了 row 格式,为什么还要 mixed 格式呢?

mixed 格式就是 statement 格式和 row 格式的混合。MySQL 会判断当语句不会导致主从数据不一致时,就采用 statement 格式记录,否则采用 row 格式节省存储空间。即 mixed 格式结合了 statement 和 row 格式的优点。


虽然 mixed 格式看着比 row 格式更有优势,但是当前更多的场景下还是使用 row 格式。其中,一个比较明显的原因就是 row 格式恢复数据很方便。

循环复制问题

生产环境中使用较多的是双 Master 的结构,即一台主机和一台备机之间互为主备。这样存在一个问题,主机更新后的 binlog 同步到备机后,备机的 binlog 也会更新然后又同步到主机,这样不就发生循环复制了么?

这个问题的解决办法是,row 格式的 binlog 中记录了 server id,备机同步 binlog 时会继续使用主机传过来的 server id,这样从机将 binlog 传回主机时,主机判断 binlog 中的 server id 和本机一致,就会终止 binlog 的同步,从而打断循环复制。

参考

  • [1] MySQL是怎么保证主备一致的
您可能感兴趣的文档:

--结束END--

本文标题: MySQL45讲之主备数据一致性 - flowers

本文链接: https://www.lsjlt.com/news/8814.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 数据库中load data语句怎么保证主备复制数据一致性
    小编给大家分享一下数据库中load data语句怎么保证主备复制数据一致性,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 背景 机器配置 * CPU:16 vcpus *...
    99+
    2024-04-02
  • oracle主备库数据不一致如何解决
    要解决Oracle主备库数据不一致的问题,可以采取以下措施:1. 检查网络连接:确保主备库之间的网络连接正常,没有延迟或丢包等问题。...
    99+
    2023-09-25
    oracle
  • MySQL怎么保证备份数据的一致性
    这篇文章主要讲解了“MySQL怎么保证备份数据的一致性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL怎么保证备份数据的一致性”吧!前言为了数据安全,数据库需要定期备份,这个大家都懂...
    99+
    2023-06-30
  • MySql备份时怎么保持数据一致性
    这期内容当中小编将会给大家带来有关MySql备份时怎么保持数据一致性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、直接拷贝整个数据目录下的所有文件到新的机器。优点是简...
    99+
    2024-04-02
  • Mysql和Redis数据一致性
    什么是数据库与缓存一致性 数据一致性指的是:缓存的数据值 = 数据库中的值 为什么会出现数据一致性问题呢? 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用red...
    99+
    2023-09-07
    redis mysql 数据库 java 缓存
  • 什么是数据库的读一致性和写一致性
    一、读一致性 读一致性是指在数据库中的并发读操作中,读取到的数据应该是一致的。具体来说,当一个事务在执行读取操作时,如果另一个事务正在对同一数据进行修改(写操作),那么读取操作应该获取到已经提交的最新版本的数据,而不是读取到部分修改完成的数...
    99+
    2023-10-29
    数据库 读一致性 写一致性
  • MySQL高可用之主备同步:MySQL是如何保证主备一致的
    🏆今日学习目标: 🍀MySql是如何保证主备一致的 ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页  🍁林在闪闪发光的个人社区,欢迎你的加入:...
    99+
    2023-09-01
    数据库 java
  • MySQL如何保证备份数据的一致性详解
    目录前言1. 全库只读2. 全局锁3. 事务4. 小结前言 为了数据安全,数据库需要定期备份,这个大家都懂,然而数据库备份的时候,最怕写操作,因为这个最容易导致数据的不一致,松哥举一...
    99+
    2024-04-02
  • 数据表迁移数据一致性验证
    在迁移数据库的时候做一些必要的验证还是很有用的,比如说迁移前后的数据条数是否一致,数据是否一致,这个时候怎么办呢,验证条数还好说,要是验证数据是否一致呢,对于重要的数据当然要每条都不会有差错,随机抽样验...
    99+
    2024-04-02
  • 如何实现redis数据一致性
    小编给大家分享一下如何实现redis数据一致性,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、缓存一致的必要性还是接上篇来说,我们已经解决了redis缓存穿透的...
    99+
    2023-06-29
  • mysql怎么保证数据一致性
    在MySQL中,可以采取以下几种方式来保证数据的一致性:1. 使用事务:事务可以将一系列操作单独的执行单元,要么全部成功提交,要么全...
    99+
    2023-09-15
    mysql
  • redis如何保证数据一致性
    Redis 保证数据一致性的方法主要有以下几种: 主从复制:Redis 支持主从复制机制,通过将主节点的数据复制到备用的从节点上...
    99+
    2024-05-10
    redis
  • kafka如何实现数据一致性
    Kafka是一个分布式流处理平台,它通过分布式发布-订阅系统来实现高可靠性和高吞吐量的数据传输。由于Kafka的设计目标是提供高效的...
    99+
    2023-09-14
    kafka
  • Cassandra如何保证数据一致性
    Cassandra 使用了一系列机制来保证数据一致性,包括: 同步复制:Cassandra 采用多节点复制策略,将数据同时复制到...
    99+
    2024-04-09
    Cassandra
  • ZooKeeper怎么保持数据一致性
    ZooKeeper通过以下方式来保持数据一致性: 顺序一致性:ZooKeeper保证所有的更新操作都会按照应用程序的顺序进行处理...
    99+
    2024-04-02
  • canal怎么保证数据一致性
    canal可以通过以下方式来保证数据一致性: 基于事务日志解析:canal通过解析数据库的事务日志来获取数据变更的信息。由于数据...
    99+
    2023-10-22
    canal
  • redis怎么解决数据一致性
    redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一...
    99+
    2024-04-08
    redis
  • 一致性非锁定读与一致性锁定读的大数据分析
    本篇文章为大家展示了一致性非锁定读与一致性锁定读的大数据分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。背景innodb存储引擎实现了两种标准的行级锁:S锁和X锁...
    99+
    2024-04-02
  • redis怎么保证和数据库数据一致性
    Redis是一个内存数据库,通常用作缓存。相比于传统的磁盘数据库,Redis在性能上具有优势,但它也有可能在某些情况下出现数据不一致...
    99+
    2024-02-29
    redis 数据库
  • SQLServer 数据库中怎么保持数据一致性
    本篇文章给大家分享的是有关SQLServer 数据库中怎么保持数据一致性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、数据更改比较少的系统...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作