首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

技术分享 | 两个单机 MySQL 该如何校验数据一致性

搭建步骤略 本例使用 mysql 5.7.26 进行测试 本例使用 percona-toolkit-3.2.1 进行测试 1、校验主从数据一致性 这个用例将通过 dsn 方式连接从库。...2、校验非主从数据一致性 这个用例将通过 dsn 方式连接从库,但是会将从库的复制链路 stop 掉,并清空复制信息。...但是又要保证该数据块的数据一致性,如果这个数据块是个热数据,当前正在变更,那么校验的时候难免会不一致。...工具思路改写,可以检查随意两个 mysql(支持 mysql sql 语法的数据库)节点的数据一致性。...2、功能介绍 检查随意两个几点的数据一致性 支持表结构的校验 支持并发检查,基于表的并发 支持指定时间,可以规避业务高峰期 支持网络监控,如果网络超过阈值可以暂停校验 不支持无主键(非空唯一键)的表 不支持联合主键达到四个字段及以上的表

1.8K30

MySQL主从复制数据一致性校验和修复方法及自动化实现

引言 “MySQL主从复制”技术在互联网行业常见高可用架构中应用非常广泛,例如常见的一主一从复制架构、keepalived+MySQL双主(主从)复制架构、MHA+一主两从复制架构等等都应用了MySQL...难免出现复制数据不一致的风险,这个风险不但会引起用户数据访问前后不一致的风险,而且会导致后续复制出现1032、1062错误进而引起复制架构停滞的隐患,为了及时发现并解决这个问题,我们需要定期或不定期地开展主从复制数据一致性校验和修复工作...数据一致性校验和修复方法 为了实现主从复制数据一致性校验和修复,我们首先推荐两个热门工具,分别是percona公司的 pt-table-checksum和pt-table-sync,前者用来实现主从复制数据一致性校验...3.数据一致性校验和修复的自动化实现 理解上述方法后,我们可以顺利完成主从复制数据一致性校验和修复工作,但是这项工作在MySQL主从复制架构维护中开展频率较高,包括定期和各种不定期的情况,每次都手工开展耗时耗力...自动化实现 部署自动化脚本和定时任务 理解数据一致性校验和修复的全部原理和详细步骤,将其转化为多个自动化脚本,分别部署在主从库上,每月定期执行可通过在主库制定crontab定时任务调用主从库脚本实现,不定期执行可通过手动调用主从库部署的自动化脚本来实现

73920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    推荐一款好用的数据一致性校验工具

    一、为什么需要做数据一致性校验 在数据的服务生命周期过程中,经常会因为数据迁移、主从复制、数据集成等原因产生数据流动及复制。...当前市面上专门用于解决“数据一致性校验”的工具比较匮乏。很多企业依然在使用:人工抽检的原始解决方案,数据一致性导致的业务故障频发。 举一个客户遇到CASE,客户是一个电商SAAS服务提供商。...当前,客户并没有对应的数据一致性校验工具,所以,每次迁移完成,都是人工抽核心表进行数据量的检测。...由此,小编认为,具备结构一致性的快速校验校验工具的基础能力。 2. 完善的数据一致性校验 除了结构,数据无疑是另一关键的校验内容。...Pt-table-checksum主要通过在MySQL主中运行checksum query,然后利用MySQL主从复制,query流转到slave中,进行check对比。

    68480

    TiDB 数据一致性校验实现:Sync-diff-inspector 优化方案

    简介 在数据同步的场景下,上下游数据的一致性校验是非常重要的一个环节,缺少数据校验,可能会对商业决策产生非常负面的影响。...Sync-diff-inspector 是 PingCAP Data Platform 团队开发的一款一致性校验工具,它能对多种数据同步场景的上下游数据进行一致性校验,如多数据源到单一目的(MySQL...结果输出对用户不友好,需要对校验结果进行精简。 检验过程中发生 GC,导致校验失败。...未来展望 开放性的架构 在 Sync-diff-inspector 中我们定义了 Source 抽象,目前只支持 TiDB 端到 TiDB 端,MySQL 端到 MySQL 端以及 MySQL 端到 TiDB...端的数据一致性校验,但是在未来,通过实现 Source 对应的方法,可以适配多种其他数据库进行数据一致性校验,例如 Oracle, Aurora 等。

    85720

    存储稳定性测试与数据一致性校验工具和系统

    存储稳定性测试与数据一致性校验工具和系统:https://github.com/zhangyoujia/hd_write_verify PPT:https://github.com/zhangyoujia.../hd_write_verify/存储稳定性测试与数据一致性校验工具和系统.pptx 腾讯会议录屏:https://cloud.tencent.com/developer/video/78756 hd_write_verify...存储稳定性测试与数据一致性校验工具和系统 目录 图片 展望 图片 Linux版本LBA工具 hd_write_verify / hd_write_verify_dump [opts] <disk|...LBA dump工具参数说明 ---- 图片 LBA dump工具输出说明 ---- 图片 LBA错误类型 ---- 图片 LBA工具实现原理 ---- 图片 图片 图片 图片 全盘数据校验...---- 图片 批量数据校验 ---- 图片 随机数据校验 ---- 图片 条带策略:round-robin ---- 图片 条带策略:cluster-split ---- 图片 自动化测试系统

    59321

    MySQL崩溃后的数据一致性

    作为互联网公司使用得最多的通用数据库系统,MySQL,在数据一致性方面就有较多的考虑,同时也给了用户较多的设置选项,用来满足不同业务场景下数据一致性和性能的需求(业务需要对数据一致性和性能做权衡,这里不展开...MySQL数据一致性大体上包括两方面:单机数据一致性和集群数据一致性,本文就围绕这两方面进行说明。...单机数据一致性 MySQL崩溃后,保证单机数据一致性主要包括两个机制:“MySQL binary log和InnoDB redo log的一致性”和“InnoDB数据文件的一致性”。...MySQL崩溃重启后,InnoDB会检查每个块(page)的校验和,判断块是否损坏,如果写入双写缓冲的是坏块,那么一定没有写入实际数据文件,就要用实际数据文件的块来恢复双写缓冲,如果写入了双写缓冲,但是数据文件写的是坏块...这个机制提升了数据灾难恢复机制,也就提升了数据一致性。 集群数据一致性 原生MySQL有很多种搭建集群的方式,这里为了把原理说清楚,只对“1主N备”的集群形式做说明。

    2.7K81

    Redis 和 MySQL 如何保持数据一致性?

    3、读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。...先删除缓存 1、如果先删除Redis缓存数据,然而还没有来得及写入MySQL,另一个线程就来读取 2、这个时候发现缓存为空,则去Mysql数据库中读取旧数据写入缓存,此时缓存中为脏数据 3、然后数据库更新后发现...Redis上 3、操作情况 读取Redis缓存:热数据都在Redis上 写Mysql:增删改都是在Mysql进行操作 更新Redis数据:Mysql的数据操作都记录到binlog,通过消息队列及时更新到...的主从备份机制,因为MySQL的主备也是通过binlog来实现的数据一致性 “这里的消息推送工具你也可以采用别的第三方:kafka、rabbitMQ等来实现推送更新Redis!...总结 在高并发应用场景下,如果是对数据一致性要求高的情况下,要定位好导致数据和缓存不一致的原因。 解决高并发场景下数据一致性的方案有两种,分别是延时双删策略和异步更新缓存两种方案。

    70930

    MySQL是怎么保证数据一致性

    我们都知道关系型数据库事务能保证数据一致性,那数据库到底是怎么设计事务这一特性的呢? 一、MySQL事务模型ACID MySQL是一个多引擎数据库,其中InnoDB支持数据库事务,也是最常用的引擎。...MySQL包含与ACID模型紧密结合的innodb存储引擎组件,确保数据不会被破坏,结果不会被软件崩溃和硬件故障等异常情况所篡改。...如果感兴趣,可以访问MySQL的官方网站www.mysql.com “Undo Tablespaces”包含Undo Log(撤消日志),Undo Log是撤消日志记录的集合,其中包含如何撤消事务对聚集索引记录的最新更改的信息...a的值变为4 6、T5读取a的值,读到V2版本,a=4 至此,MVCC的概念就搞明白了,那么MySQL是怎么实现的呢?...MySQL官方文档在“锁和事务模型”这一章节开始就介绍了InnoDB的锁,截个目录,感兴趣可以去读一下。 ?

    3.9K10

    MySQL和Redis如何保持数据一致性?

    3、读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。...先删除缓存 1、如果先删除Redis缓存数据,然而还没有来得及写入MySQL,另一个线程就来读取 2、这个时候发现缓存为空,则去Mysql数据库中读取旧数据写入缓存,此时缓存中为脏数据。...Redis上 4、.操作情况 读取Redis缓存:热数据都在Redis上 写Mysql:增删改都是在Mysql进行操作 更新Redis数据:Mysql的数据操作都记录到binlog,通过消息队列及时更新到...的主从备份机制,因为MySQL的主备也是通过binlog来实现的数据一致性 这里的消息推送工具你也可以采用别的第三方:kafka、rabbitMQ等来实现推送更新Redis!...总结 在高并发应用场景下,如果是对数据一致性要求高的情况下,要定位好导致数据和缓存不一致的原因。 解决高并发场景下数据一致性的方案有两种,分别是延时双删策略和异步更新缓存两种方案。

    51320

    SpringBoot--数据校验(普通校验、分组校验

    作者:吴声子夜歌 原文链接:https://blog.csdn.net/cold___play/article/details/104209719 普通校验 普通检验是基础用法,非常容易,首先需要用户在...SpringBootWeb项目中添加数据校验相关的依赖: org.springframework.boot...,紧接着的BindingResult参数表示在校验出错时保存的出错信息。...分组校验 有的时候,开发者在某一个实体类中定义了很多校验规则,但是在某一次业务处理中,并不需要这么多校验规则,此时就可以使用分组校验: 首先创建两个分组接口: public interface ValidationGroup1...分组的校验规则,即只校验邮箱地址是否为空、用户地址是否为空 @PostMapping("/user") public List addUser(@Validated(ValidationGroup2

    1.5K10

    Redis和MySQL如何保持数据一致性

    读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。...2.1 先删除缓存 如果先删除Redis缓存数据,然而还没有来得及写入MySQL,另一个线程就来读取 这个时候发现缓存为空,则去Mysql数据库中读取旧数据写入缓存,此时缓存中为脏数据。...Redis上 4.操作情况 读取Redis缓存:热数据都在Redis上 写Mysql:增删改都是在Mysql进行操作 更新Redis数据:Mysql的数据操作都记录到binlog,通过消息队列及时更新到...,因为MySQL的主备也是通过binlog来实现的数据一致性 这里的消息推送工具你也可以采用别的第三方:kafka、rabbitMQ等来实现推送更新Redis!...—4— 总结 在高并发应用场景下,如果是对数据一致性要求高的情况下,要定位好导致数据和缓存不一致的原因。 解决高并发场景下数据一致性的方案有两种,分别是延时双删策略和异步更新缓存两种方案。

    2.1K10

    MySQL是如何保证数据一致性的?

    在使用MySQL时,数据不一致的情况也可能出现,所以,本文就来看看MySQL是如何保证数据一致的。 MySQL保证的一致性 在这之前先划清一下界限,看一下MySQL保证的是哪里的一致性。...出现这个问题可能存在几个原因: 在MySQL客户端执行sql时没有做校验。如果用户A余额并不足以4000,由于没有校验,两条sql都会成功执行,用户B就会凭空多出4000。...MySQL发生不一致环节 划清界限后再分析一下在DML执行过程中,哪个环节会发生数据不一致。 以上面的sql为例,假设已经进行过校验且在同一事务。...接下来具体看一下InnoDB针对以上几种情况是如何处理解决,从而保证数据一致性的。...这个就不得不说到MySQL的XA两阶段提交协议了,在这之前,我一直以为XA是运用到MySQL与外部应用的,没想到是应用在MySQL内部的。

    6.5K99
    领券