gt-checksum v4.0.0 新功能解读系列文章(1):断点续传——大任务中断不再从头跑

数据校验与修复工具 - GT-Checksum 开源发布 首先,创建一个Checksum实例,并配置要校验和修复的数据库、表和字段,以及校验算法。最后,再次执行校验操作,以验证数据是否已成功修复。它能够帮助用户确保数据的完整性和准确性,并在校验失败时自动修复损坏的数据。数据修复:当数据校验失败时,GT-Checksum可以自动修复损坏的数据。它可以根据校验算法计算出的校验值,与数据库中的实际数据进行比较,并对不一致的数据进行修复。它具有用户友好的界面和灵活的功能,使得数据校验和修复变得更加简单和高效。该工具可以对数据库中的数据进行校验,确保数据的完整性和准确性。 阅读详情

在数据库迁移验收、跨版本升级等场景中,校验任务运行数小时是常态。一旦任务中断,过去只能从头重来。

gt-checksum v4.0.0 新增断点续传功能,让中断的任务可以从中断位置继续执行,大幅节省时间和资源。


一、功能简介

resume 是 gt-checksum v4.0.0 新增的核心参数,用于控制数据校验和修复任务的断点续传行为。

该参数同时适用于 gt-checksum(数据校验)和 repairDB(数据修复)两个工具。

参数说明

参数默认值可选值说明
resumeOFFOFF / ON / ASK控制断点续传行为

三种模式的区别:

模式行为
OFF不启用断点续传(默认行为,与 v3.x 行为一致)
ON发现未完成的进度文件时自动续传,无需人工干预
ASK启动时提示用户选择是否从断点续传

使用方式非常简单,只需在配置文件 gc.conf 中添加一行:

resume=ON

二、功能作用及使用场景深入解读

2.1 为什么需要断点续传?

在生产环境中,数据库校验任务面临的挑战远比测试环境复杂:

场景一:大表校验耗时长

一个包含数百张表的数据库,其中几张大表可能各占数千万甚至上亿行记录,整个校验任务可能持续数十分钟甚至数十小时。

场景二:网络抖动或进程异常

校验过程中,如果遇到网络中断、服务器重启或进程被 OOM Killer 终止,任务会突然退出。在 v3.x 版本中,这意味着之前已完成的所有校验工作全部作废,必须从头开始。

场景三:维护窗口有限

运维人员可能需要在有限的维护窗口内完成校验,中途可能因故暂停。如果没有断点续传,暂停就等于放弃。

场景四:修复任务中断

使用 repairDB 执行修复 SQL 时,如果任务中断,已执行的 SQL 文件和未执行的文件混在一起,手动梳理哪些已执行、哪些未执行非常困难,且容易遗漏或重复执行。

2.2 断点续传如何工作?

gt-checksum 的断点续传依赖本地进度文件,核心机制如下:

进度文件

  • gt-checksum:保存在 result/ 目录下,文件名格式为 gt-checksum-progress-<RunID>.json
  • repairDB:保存在 <fixFileDir>/.repairDB-progress.json

进度文件采用原子写入策略(先写临时文件再 rename),确保在进程异常退出时不会产生损坏的进度文件。

gt-checksum 进度文件内容

进度文件记录了以下关键信息:

{
  "run_id": "20260615103000",
  "start_time": "2026-06-15T10:30:00+08:00",
  "end_time": "2026-06-15T11:45:30+08:00",
  "config_hash": "...",
  "completed_tables": ["db1.orders", "db1.users"],
  "completed_table_results": [...],
  "table_progress": {
    "db1.logs": {
      "total_rows": 50000000,
      "chunk_size": 10000,
      "completed_chunks": [0, 10000, 20000, 30000],
      "completed_fixsql": [0, 10000, 20000],
      "checking_chunks": [30000],
      "source_rows": 50000000,
      "dest_rows": 50000000,
      "row_stats_cached": true,
      "exact_source_rows": 49876543,
      "exact_dest_rows": 49876543,
      "exact_row_stats_cached": true
    }
  },
  "status": "running"
}

其中几个关键字段:

字段说明
completed_tables已完成校验的表列表,续传时直接跳过
completed_chunks已完成查询比对的 chunk 序号列表
completed_fixsql已安全写完修复 SQL 的 chunk 序号列表
checking_chunks中断时正在校验中的 chunk(未完成,需重新校验)
row_stats_cached行数统计缓存标记,避免重复 COUNT(*)

续传判断逻辑

续传时,gt-checksum 会做以下判断:

  1. 表级别跳过:已在 completed_tables 中的表直接跳过
  2. chunk 级别跳过:对于未完成的表,从 completed_chunks 的连续前缀之后开始,跳过已安全完成的 chunk
  3. 修复 SQL 安全边界:只有 completed_fixsql 边界内的 chunk 才会被跳过;checking_chunks 或仅完成查询但未确认写完 fixsql 的 chunk 会重新校验

数据安全保护

断点续传设计了多层数据安全保护机制:

  • fixsql 完整性校验:续传时会检查已生成的 fixsql 文件,截断最后一个不完整的事务块,保留已完整提交的部分
  • DELETE/INSERT 配对检查:若没有安全的 fixsql 续跑边界,程序会清理该表旧的 fixsql/rollsql 文件后从头重新生成,避免旧文件中 DELETE/INSERT 不成对导致数据被过度删除
  • 过期提醒:若进度文件的 end_time 距当前超过 1 小时,续传前会提示用户确认,避免使用过早的校验进度导致结果不可信
  • 多文件冲突检测:若同一结果目录存在多个 status=running 的进度文件,程序会输出候选列表并退出,需先清理无关进度文件

2.3 行数缓存:减少续传启动开销

在大规模场景下,查询表的行数(特别是精确行数 COUNT(*))本身就是一项耗时操作。断点续传模式下,gt-checksum 会将以下信息写入进度文件缓存:

  • 估算行数(来自元数据查询 information_schema)
  • 精确行数(来自 COUNT(*) 全表扫描)

续传时直接读取缓存,无需重新查询数据库,显著减少大表场景下的续传启动时间。

2.4 repairDB 的断点续传

repairDB 的断点续传机制略有不同:

  • 进度文件记录每个 SQL 文件的执行状态(success / failed)
  • 续传时自动跳过已成功执行的 SQL 文件
  • 收到 Ctrl+C 或 SIGTERM 时,停止调度新文件并等待已开始执行的文件完成,避免续传时重放半执行文件
  • 通过 .repairDB.lock 锁文件防止并发执行

重要提醒:在断点续传模式下生成的修复 SQL 文件可能存在重复数据冲突(因为 chunk 范围可能重叠),手动执行 SOURCE SQL文件 可能会报错。建议使用 repairDB 执行修复,它会自动检测并处理重复数据冲突。


三、功能使用演示

3.1 基本配置

在配置文件 gc.conf 中设置 resume 参数:

# 启用自动断点续传
resume=ON

# 其他必要参数
checkObject=data
tables=db1.*
srcDSN=user:ENC[...]@tcp(10.0.0.1:3306)/db1
dstDSN=user:ENC[...]@tcp(10.0.0.2:3306)/db1
chunkSize=10000

3.2 gt-checksum 校验场景演示

场景一:正常运行 + 中断

# 第一次运行:校验进行中
$ gt-checksum -c gc.conf

Initializing gt-checksum
Reading configuration files
...
[CHECK] db1.orders: 5000/10000 chunks completed
[CHECK] db1.orders: 6000/10000 chunks completed
# 模拟异常中断(Ctrl+C 或进程异常退出)

此时进度文件已保存到 result/gt-checksum-progress-20260615103000.json,状态为 running。

场景二:从断点续传

# 第二次运行:自动续传
$ gt-checksum -c gc.conf

Initializing gt-checksum
Reading configuration files

[RESUME] Found existing progress file: result/gt-checksum-progress-20260615103000.json
  Run ID: 20260615103000
  Started: 2026-06-15T10:30:00+08:00
  Completed tables: 3
  Completed list:
    db1.users
    db1.products
    db1.categories

Auto-resuming from checkpoint...
[SKIP] db1.users: already completed
[SKIP] db1.products: already completed
[SKIP] db1.categories: already completed
[RESUME] db1.orders: resuming from chunk 60000 (60% completed)
[CHECK] db1.orders: 7000/10000 chunks completed
...

场景三:进度过期提醒

如果中断时间较长(超过 1 小时):

$ gt-checksum -c gc.conf

Initializing gt-checksum
Reading configuration files

[RESUME] Found existing progress file: result/gt-checksum-progress-20260615103000.json
  Run ID: 20260615103000
  Started: 2026-06-15T10:30:00+08:00
  Completed tables: 3

[RESUME] 进度文件 end_time 为 2026-06-15T11:45:30+08:00,距离当前已超过 1 小时(3.2 小时)。
[RESUME] 期间源端或目标端数据可能发生变化,继续断点续传可能导致校验结果不可信。
是否继续从该断点续传校验?(y/n): _

输入 y 继续续传,输入 n 从头开始新的校验。

场景四:ASK 模式

resume=ASK
$ gt-checksum -c gc.conf

[RESUME] Found existing progress file: result/gt-checksum-progress-20260615103000.json
  Run ID: 20260615103000
  Started: 2026-06-15T10:30:00+08:00
  Completed tables: 3

Do you want to resume from the last checkpoint? (y/n): _

ASK 模式下,无论进度是否过期,每次启动都会询问用户。

3.3 repairDB 修复场景演示

resume=ON
# 第一次运行:修复进行中
$ repairDB -c gc.conf

[REPAIR] Processing: fix-orders-insert-001.sql ... OK
[REPAIR] Processing: fix-orders-delete-001.sql ... OK
[REPAIR] Processing: fix-users-insert-001.sql ...
# 模拟异常中断
# 第二次运行:自动续传
$ repairDB -c gc.conf

[RESUME] Found existing progress file: .repairDB-progress.json
[RESUME] Previously completed: 2 files
[SKIP] fix-orders-insert-001.sql: already executed successfully
[SKIP] fix-orders-delete-001.sql: already executed successfully
[REPAIR] Processing: fix-users-insert-001.sql ... OK
...

3.4 多进度文件冲突处理

如果 result/ 目录下存在多个 status=running 的进度文件:

$ gt-checksum -c gc.conf

gt-checksum: multiple status=running checkpoint progress files were found in result; resume cannot safely choose one automatically.
Please delete unrelated gt-checksum-progress-*.json files, or specify the runID to resume and retry.
Candidate files:
  - run_id=20260615103000 path=result/gt-checksum-progress-20260615103000.json start_time=2026-06-15T10:30:00+08:00 completed_tables=3
  - run_id=20260614090000 path=result/gt-checksum-progress-20260614090000.json start_time=2026-06-14T09:00:00+08:00 completed_tables=8

此时需要手动清理无关的进度文件后重试。


四、最佳实践及使用约束

4.1 最佳实践

1. 生产环境建议使用 resume=ON

对于大规模校验任务,建议在配置文件中默认启用 resume=ON,避免因意外中断导致重复工作:

resume=ON

2. 数据窗口校验场景使用 resume=ASK

如果不确定中断期间数据是否发生变化,使用 resume=ASK 模式,让工具在启动时提醒你做决定:

resume=ASK

3. 结合 chunkSize 优化断点粒度

断点以 chunk 为单位记录。chunkSize 越小,断点粒度越细,中断后需要重复校验的数据量越少,但会增加进度文件的大小和写入频率。建议根据表的大小选择合适的 chunkSize:

表规模建议 chunkSize
< 100 万行5000 ~ 10000
100 万 ~ 1 亿行10000 ~ 50000
> 1 亿行50000 ~ 100000

4. 定期清理旧进度文件

正常完成的校验任务,进度文件状态会被标记为 completed。但如果任务异常退出后一直未续传,旧的 running 状态进度文件会留在磁盘上。建议定期检查并清理:

# 查看 result 目录下的进度文件
ls -la result/gt-checksum-progress-*.json

# 删除不再需要的旧进度文件
rm result/gt-checksum-progress-20260614090000.json

5. repairDB 续传时使用 repairDB 而非手动 SOURCE

断点续传模式下生成的修复 SQL 文件可能存在 chunk 范围重叠,导致重复数据冲突。repairDB 会自动检测并处理这类冲突,而手动执行 SOURCE SQL文件 可能会报错失败。

4.2 使用约束

1. 仅适用于静态数据场景

断点续传功能只适用于源端和目标端数据在任务期间保持静态的场景。如果业务仍在持续写入,中断期间数据可能已发生变化,续传后的校验结果可能不可信。此时建议重新执行完整校验。

2. 仅支持 checkObject=data

断点续传仅在数据校验模式(checkObject=data)下生效。struct(结构校验)、trigger(触发器校验)、routine(存储过程/函数校验)不支持断点续传。

3. 1 小时过期保护

若进度文件的 end_time 距当前超过 1 小时:

  • resume=ON 模式:会暂停并提示用户确认是否续传
  • resume=ASK 模式:同样会提示确认(与正常 ASK 行为一致)

这是为了防止使用过早的进度导致结果不可信。若确认数据未变化,选择 y 继续即可。

4. 进程退出时的行为

  • gt-checksum:进度文件会在每个 chunk 完成后更新,异常退出时最后完成的 chunk 之前的进度会被保留
  • repairDB:收到 Ctrl+C 或 SIGTERM 后,会停止调度新的 SQL 文件,但会等待已开始执行的文件完成,确保不会出现"半执行"状态

5. 进度文件不会自动删除

正常完成的任务,进度文件状态会标记为 completed,但文件不会被删除。如果需要清理,需手动删除。resume=OFF 模式下,如果检测到 running 状态的进度文件,会发出告警并退出,防止误操作。

6. 配置一致性

续传时会使用当前的配置参数(如 chunkSize、tables 等)。如果配置发生变化(如修改了 chunkSize),可能导致续传行为异常。建议使用与上次相同的配置文件进行续传。


五、总结

gt-checksum v4.0.0 的断点续传功能,从根本上解决了大规模校验任务"中断即重来"的痛点。通过本地进度文件记录表级别和 chunk 级别的完成状态,配合 fixsql 安全边界校验、行数缓存、过期保护等机制,确保续传后的校验结果准确可靠。

对于 repairDB,断点续传同样提供了文件级别的跳过机制,避免重复执行已成功的修复 SQL,结合 graceful shutdown 设计,确保不会出现半执行状态。

一句话总结:resume=ON,让大任务中断不再从头跑。


相关阅读

  • gt-checksum v4.0.0 发布:可续跑、可回滚、可审计的数据校验与修复能力全面升级, https://mp.weixin.qq.com/s/KvYCga213ZmYkHI6oEZ5kg
  • gt-checksum 使用手册, https://gitee.com/GreatSQL/gt-checksum/blob/v4.0.0/gt-checksum-manual.md
gt-checksum-开源静态数据库校验修复工具-MySQL主从复制数据一致性校验-MGR组复制节点修复-上云下云迁移数据验证-异构数据库Oracle到MySQL迁移校验-定期高.zip gt-checksum_开源静态数据库校验修复工具_MySQL主从复制数据一致性校验_MGR组复制节点修复_上云下云迁移数据验证_异构数据库Oracle到MySQL迁移校验_定期高.zip嵌入式通信协议与 Debug 实战指南 立即下载

相关推荐

checksum-validator(V1.1.6)

windows平台上,非常好用的哈希值计算工具,可以实现自动对比功能。同时支持一键导出MD5,SHA1,SHA256,SHA512值。

Mysql、Oracle数据比对工具GT-Checksum

【代码】mysql、oracle数据比对工具。

qq_34692500的博客 812

基于Arduino与Velostat的智能鞋垫:DIY足底压力监测系统全解析

压力传感器是物联网和健康监测领域的基础元件,其核心原理是将物理压力转换为可测量的电信号。通过压阻效应,材料的电阻值随压力变化,从而实现压力感知。这项技术为低成本、定制化的健康监测方案提供了可能,尤其在运动分析和康复训练中具有重要价值。本文聚焦于利用Velostat压敏材料和Arduino平台,详细解析如何从传感器制作、信号调理到无线数据传输,构建一套完整的足底压力监测系统。文中深入探讨了传感器阵列构建、信号滤波等关键技术,并针对常见问题提供了实用的解决方案,为创客和开发者实现可穿戴健康监测设备提供了清晰的工

weixin_32818781的博客 402

好用的数据校验&修复工具gt-checksum开源啦

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。1. 背景介绍2. 功能特性3. gt-checksum使用3.1 标准使用案例3.2 直接在命令行模式下使用3.3 使用极简配置文件案例4. 项目信息5. 开源发布会不用说,看名字也知道,gt-checksum工具是数据校验工具。没错,gt-checksum 是GreatSQL社区新增的成员,它是 一款静态数据库校验...

老叶茶馆 1108

量子城域网系列(六):从星型到环形,解析QKD网络拓扑的演进与选型

本文深入解析了量子密钥分发网络从星型到环形等主流拓扑结构的演进历程与核心原理。针对量子城域网的实际部署,文章详细对比了星型、总线型和环形拓扑的优缺点,并结合政务云、金融网点等典型应用场景,提供了实战选型指南,帮助读者在物理限制、安全需求与成本效率间找到最佳平衡。

weixin_29197835的博客 111

el-transfer和el-tree进行结合搞一个树形穿梭框

由于业务需求需要在穿梭框里使用树形结构,但是本身element里并不支持,于是参考了别的大佬发的文章作为思路及后续自己新增了一些处理功能。

bbkhhvv的博客 6306

GreatSQL 异步复制及搭建

复制就是将一个数据库数据复制到一个或多个数据库上,复制的过程是异步的,其工作原理是通过binlog(二进制日志)记录事务变更然后传送到从库并重放事务,保持数据一致。

GreatSQL2021的博客 1390

STM32读取BQ40Z50的数据

TI电池管理芯片BQ40Z50,通信协议是SMBUS,类似IIC,速率要求10-100KHz   用的STM32F103的硬件IIC读取电池的各种数值,源代码如下: ​ #include "iic.h" #include "stdio.h"  //***************************************************** // IIC2初始化函数:初始化ST...

百步登峰的博客 1万+

使用 gt-checksum 分析迁移对象

本文以从 ORACLE 迁移到 GreatSQL 为例,介绍用 gt-checksum 分析迁移对象,含配置、执行及结果解析,完整呈现分析流程。

GreatSQL2021的博客 741

STM32CubeMX安装避坑指南:为什么你的Java环境总是报错?

本文针对STM32CubeMX安装过程中最常见的Java环境报错问题,提供了一套完整的诊断与解决方案。文章深入剖析了JRE版本冲突、环境变量配置错误、路径权限等核心原因,并给出了从系统级检查到手动修正环境变量的详细步骤,帮助开发者彻底解决安装难题,顺利开启STM32开发之旅。

prometheus9mon的博客 226

ICML-2025《Learning from Sample Stability for Deep Clustering》

用于指导深度聚类模型的训练,从而提升模型对困难样本的学习能力,最终改善整体聚类性能。首先,利用K-means在原始样本(非增强)的表征上进行聚类,得到初始聚类分配。其目的是鼓励模型对同一稳定样本在连续epoch中产生相近的表征。输出差异大)会产生更大的损失值,从而引导模型优先优化这些困难样本。此损失借鉴了NT-Xent损失的思想,但将正样本对定义为。最后,通过对比学习优化聚类中心,将同一聚类在。为了获得更具代表性的聚类中心,论文提出。为了学习更鲁棒的表征,模型在在线网络。首先,论文定义了样本。

Christo的博客 829

gt-checksum v4.0.0 新功能解读系列文章(3):反向回滚 SQL

genRollSQL是 gt-checksum v4.0.0 新增的核心参数,配合和一起使用,用于在生成修复 SQL 的同时自动生成反向回滚 SQL。

KWc5O72i9的博客 236

多模态脑区细分图谱 HCP-MMP v1.0, Glasser et al. 2016 皮层和皮下区域,简写和全称对应关系

人类连接组计划多模态脑区细分图谱(HCP-MMP)提供了对人类大脑皮层区域的非常有用的细分(Glasser et al. 2016a, b)。图谱是多模态的,因为每个区域都是根据四个标准的组合定义的,包括结构(T1加权/T2加权髓鞘含量和皮层厚度图)、静息态功能连接、基于任务的激活和拓扑地形组织。HCP-MMP v1.0图谱包含每个半球180个皮层区域,基于210名参与者的分析。

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 2621

gt-checksum v4.0.0 新功能解读系列文章(3):反向回滚 SQL——修复可审计、可回退

gt-checksum v4.0.0 新功能解读(3):反向回滚 SQL ✅ 一键开启 genRollSQL=ON,修复 SQL 自动生成反向回滚操作 ✅ DELETE→INSERT、INSERT→DELETE、TRUNCATE 三种映射策略,覆盖全场景 ✅ 回滚 SQL 只写文件不在线执行,人工审计后通过 repairDB 回退,安全可控 ✅ 无主键表自动合并重复 DELETE LIMIT,回滚文件更精简 ✅ 目标端整表为空时生成 TRUNCATE 回滚,高效且不遗漏 ✅ 与断点续

GreatSQL2021的博客 342

你的小程序地图功能还只是“摆设”吗?支付宝地图API的深度玩法都在这里了!

🏆本文收录于《滚雪球学支付宝小程序开发》专栏,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1821

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

一文读懂网络报问中的检验和(checksum)—— 原理+举例+代码

如何求解网络报文中的checksum? 最近在学习计算机网络,在运输层和网络层部分存在各种协议TCP、UDP、IP、ICMP等等,而在这些报文中都存在一个公共的字段——检验和(checksum)。接下来,我将从什么是检验和、检验和怎么算、检验和计算示例、python代码计算检验和这几个部分详细介绍。 什么是检验和? 检验和是存在于各种报文中的一个字段,它存在的目的是验证报文在网络传输过程中的完整性...

Andy的博客 6万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

使用 gt-checksum 迁移表结构到 GreatSQL

gc-task.cnf是gt-checksum的初始配置文件,内容包括源端目标端DB连接串以及迁移对象列表等信息,位于gt-checksum程序的config-simple目录下,gt-cheksum会根据gc-task.cnf来生成表结构迁移相关配置文件。gc-struct.cnf中部分参数根据gc-task.cnf生成,无需修改,还有部分参数是默认配置,需要根据项目实际情况来修改,此处仅展示表结构迁移过程中部分必改参数,其余参数及其含义见文件内容。本次使用的是 gt-checksum 商业版本。

GreatSQL2021的博客 772

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

数据驱动世界:开源数据库工具大合集

在现代数据驱动的世界中,数据集成工具变得至关重要。以下介绍几款神级开源数据集成工具,它们在不同场景下提供了强大的数据迁移、同步和管理能力。1. RedisShake简介:RedisShake是阿里云开源的迁移工具,用于Redis数据迁移和同步的工具,支持单机,主从,哨兵和集群数据增量和全量数据传输。优点:支持全量和增量数据同步,适合不同场景。高性能,适合大数据量的传输。支持不同版...

qq_34692500的博客 1849

gt-checksum 1.2.1发布,新增表结构校验及修复等超实用特性

*GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。重要的话先说,今晚(3月20日)19:30 gt-checksum新版本发布会,扫码(或点文末阅读原文)预约gt-checksum 1.2.0版本发布后,受到了广大社区用户的热烈响应。短短几天,便有几十个star,以及社区用户提交了十几条issue反馈问题,更有热心用户帮忙优化了Dockerfile,据说还有某大厂计划...

老叶茶馆 300

gt-checksum 2.0.0 版本重磅升级:多维度优化,让数据库校验更高效精准!

还扩展了索引检测修复能力,新增前缀、函数索引检测修复,同时支持 MySQL 生成列全场景,完善一致性校验。gt-checksum 2.0.0 版本迎来重大升级,围绕三大核心方向全面提升,修复多项关键问题,完善测试覆盖,使数据库结构与数据一致性校验更高效精准稳定。gt-checksum 2.0.0 版本升级全面且深入,从功能到性能、兼容性等多方面优化,有望提升数据库校验效率与准确性,推动行业发展。新增端到端回归脚本,优化测试用例版本兼容格式,完善测试体系通用性。

programmerjob的博客 29

数据库表自增主键超过代码Integer长度问题

需要核对历史表(特别是数据量较大的表)查看是否有和表实体类中长度冲突的,需要做全面审核,防止出现该类问题。通过修改java实体类的类型,变更为Long型,不能修改表字段长度,因为大量数据会导致表锁死。如果自增主键无业务属性,通过重置自增主键当前值,快速修复。

韩小文的博客 636

mysql数据比较工具_mysql主从数据对比工具简介

1Checksum1.1 checksum原理checksum table的原理是对表中的数据进行一行一行的较验和计算,在执行checksum命令时,表会被加一个读锁(read lock),因此对于大表,这是一个很耗时的过程。读锁:又叫S锁/共享锁;当MySQL的一个进程为某一表开启读锁之后,其他的进程包含自身都没有权利去修改这表表的内容。但是所有的进程还是可以读出表里面的内容的。但是不能实现更新...

weixin_36443823的博客 2470
上一篇: gt-checksum v4.0.0 发布|续跑回滚双加持,异构迁移与安全能力跃升
下一篇: gt-checksum v4.0.0 新功能解读系列文章(2):自定义数据类型映射——异构迁移不再手工对齐
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值