登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
开源项目
>
数据库相关
>
数据库管理/监控
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
14
Star
108
Fork
30
万里数据库
/
gt-checksum
代码
Issues
2
Pull Requests
0
Wiki
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
发行版
最新版
1.3.0
5b49ccb
2026-04-08 09:25
对比
gt-checksum v1.3.0
GreatSQL
# gt-checksum v1.3.0下载列表 ## Changelog [gt-checksum v1.3.0版本更新说明](https://gitee.com/GreatSQL/gt-checksum/blob/v1.3.0/CHANGELOG.md),主要变化有: - [功能新增]: 新增在 `checkObject=data` 模式下支持只校验部分字段功能,新增 `columns` 参数用于设置校验字段列表,该参数支持不同表名、字段名映射。支持同名列和源端→目标端列名映射;只比较选中的业务列,存在差异时生成 `UPDATE` 修复SQL;通过 `extraRowsSyncToSource` 参数控制是否生成 `DELETE`;当源端数据更多时生成 `columns-advisory.<schema>.<table>.sql` 文件提示人工介入处理。(issue #I6KGOJ #I6KGXF) - [功能新增]: `checkObject=struct` 模式新增 VIEW(视图)支持(仅限 MySQL→MySQL);自动识别 `tables` 中的视图对象并比对定义与列元数据,差异时输出 `ObjectType=view`,修复建议以 advisory 形式写入 fixsql 文件,`checkObject=data` 模式会自动跳过视图对象。(issue #I899YZ) - [功能新增]: 新增结果自动导出为 CSV 文件能力;新增参数 `resultExport`(`OFF` / `csv`,默认 `csv`)和 `resultFile`(自定义导出路径,默认输出到 `result/` 目录),并新增 `terminalResultMode`(`all` / `abnormal`,默认 `all`)控制终端是否只显示异常结果;以上参数均支持 CLI 覆盖。(issue #I6KMQF) - [功能新增]: repairDB 新增 `logbin`(`ON` / `OFF`,默认 `ON`),可控制修复时是否写入 binlog。 - [功能优化]: 表结构修复在识别到“兼容的列重命名”场景时,改用 `CHANGE COLUMN` 代替 `DROP COLUMN + ADD COLUMN`,尽量保留列数据并减少高风险 DDL。 - [功能优化]: 表级 `charset/collation` 修复语句统一显式带上 `COLLATE`,降低跨版本迁移时被目标端默认排序规则偷偷改写的概率。 - [功能优化]: 移除 `fixFilePerTable` 参数,统一为“每对象独立修复文件”输出模式;fixsql 文件命名规则统一为 `type.schema.object.sql`,`fixFileDir` 默认值同步调整为固定目录 `fixsql`。 - [问题修复]: 修复 `tables` / `ignoreTables` 参数误用部分通配符 `*`(如 `sbtest.t*`)时静默产生错误结果的问题;现在会在参数校验阶段直接报错,并提示改用 `%`。 - [问题修复]: 修复表不存在时结果中的 `CheckObject` 被错误写成 `struct` 的问题;同时修复 `checkObject=struct` 模式下源端和目标端表都不存在时输出重复记录的问题。 ## 二进制包 | Packages | Size | md5 | | :---: | :--- | :--- | | gt-checksum-1.3.0-5b49ccb-linux-x86_64.tar.xz | 43M | 23468d4949574cdb8bd58beb2e13cd21 | | gt-checksum-1.3.0-5b49ccb-linux-x86_64-minimal.tar.xz | 12M | aa4ee5fa6ab7bbb110d0b73ae45164ac | | gt-checksum-1.3.0-5b49ccb-linux-aarch64.tar.xz | 42M | c0db443d2a1f0fe5dd374defcb4d275b | | gt-checksum-1.3.0-5b49ccb-linux-aarch64-minimal.tar.xz | 11M | 20469ca6cadcfb35a54688df6b9c9a4a |
最后提交信息为:
docs: 新增版本支持状态表与 Roadmap 章节
1.2.5
d5eb39c
2026-04-01 10:47
对比
gt-checksum v1.2.5
GreatSQL
# gt-checksum v1.2.5下载列表 ## Changelog [gt-checksum v1.2.5版本更新说明](https://gitee.com/GreatSQL/gt-checksum/blob/v1.2.5/CHANGELOG.md),主要变化有: - [功能新增]: 新增 `MariaDB -> MariaDB` 双端全模式支持(`data`/`struct`/`routine`/`trigger`),覆盖 `10.0`、`10.1`、`10.2`、`10.3`、`10.4`、`10.5`、`10.6`、`10.11`、`11.4`、`11.5`、`12.3` 系列,仅支持升级方向(src ≤ dst);`struct` fix 隐藏索引使用 `IGNORED` 语法,`COMPRESSED`/`PERSISTENT` 等 MariaDB 原生列属性在目标端保留;各系列特性能力(JSON、不可见列、函数式索引、CHECK 约束强制执行等)按实际引入版本自动门控。 - [功能新增]: 新增 `MySQL 5.6/5.7/8.0/8.4` 同版本及升级链路支持,覆盖 `data`、`struct`、`routine`、`trigger` 四种校验模式;downgrade 或不支持的版本组合会在启动阶段直接拒绝执行。 - [功能新增]: 扩展 `MariaDB 10.x+ / 12.3+ -> MySQL 8.0/8.4` 支持至全部四种 `checkObject` 模式;新增参数 `mariaDBJSONTargetType` 支持 `MariaDB JSON` alias 改写为 `JSON`、`LONGTEXT` 或 `TEXT`;支持 `uca1400 -> uca0900` collation 自动映射,减少跨版本误报。 - [功能优化]: 统一结构语义比较与风险分级,将 `CHECK`、显示宽度、`utf8/utf8mb3`、`ZEROFILL`、`ROW_FORMAT`、默认 collation 漂移等差异收敛为 `warn-only` / `advisory-only` 分层输出;补齐 `routine` / `trigger` charset 元数据三维度比对;`checkObject=data` 新增 DSN charset 一致性预检,DDL 差异表稳定保留并显示 `DDL-yes`。 - [测试完善]: 新增 `shouldCompareTriggerMetadata`/`shouldCompareRoutineMetadata` 单元测试 9 个,覆盖 MariaDB→MariaDB、MySQL→MariaDB、MySQL→MySQL、MariaDB→MySQL 8.0/8.4/5.7 各路径;新增 `BuildTargetColumnRepairPlan` 的 MariaDB→MariaDB 单元测试 4 个,覆盖 `COMPRESSED`/`PERSISTENT` 属性保留与剥除回归;补充 MariaDB→MariaDB 版本策略测试 15 个。 - [测试完善]: 新增 `tablePatternHasUnsupportedStar` 单元测试 6 个(`inputArg/checkParameter_test.go`),覆盖部分 `*` 检测、合法模式放行、映射目标侧 `*` 检测、双侧均含 `*`、合法 `db.*` 全量通配符映射、空字符串安全性。 - [测试完善]: MySQL 修复 SQL 生成路径新增 20 个单元测试,覆盖标识符引用(普通/含空格/含反引号/保留字)、ADD/DROP 索引、schema/table 名转义、外键名转义、routine/trigger DROP 转义、`normalizeAlterOperationContent` 正则提取等场 景;Oracle 修复 SQL 生成路径新增 12 个单元测试,覆盖 `oracleIdentifier` 语义(简单大写裸名、小写→大写、含空格加双引号、已引用保留、内部双引号转义)、DROP/ADD 索引 Oracle 语法正确性、`FixAlterIndexSqlGenerate` 原样透传等场景。 - [测试完善]: 新增 `EvaluateDataCheckPreflight` 回归测试 6 个(`actions/data_check_preflight_test.go`),覆盖源端表缺失、双端表缺失、空检查列表(Fatal)、有效表(Proceed)、混合有效/异常(Proceed)、invisible 列不匹配(SkipChecksum)等场景,防止 data 模式 preflight 回归。 - [问题修复]: 修复 `tables` / `ignoreTables` 参数使用不支持的部分通配符 `*`(如 `sbtest.t*`)时静默产生错误结果的问题;现在在参数校验阶段快速失败,打印明确提示信息(如 `use '%' instead, e.g. sbtest.t%`)并退出;同时覆盖映射目标侧(如 `db1.t%:db2.t*` 中的 `db2.t*`)以及 `ignoreTables` 参数。 - [问题修复]: 修复 `checkObject=data` 或 `checkObject=struct` 模式下,当指定的表在源端或两端均不存在时,输出结果的 `CheckObject` 列被硬编码为 `struct` 而非用户实际配置值的问题;现在所有不存在表分支均正确输出用户配置的 `checkObject` 值。 - [问题修复]: 修复 `checkObject=struct` 模式下,当源端和目标端表均不存在时输出重复行的问题;根因为 `TableColumnNameCheck` 已将不存在的表追加到 pod 列表,而 `Struct()` 中的去重逻辑未感知这些 pod;修复方案为在调用 `TableColumnNameCheck` 前对 pod 快照,并将新增 pod 的表键预填充到去重集合中,防止重复创建。 - [问题修复]: 修复多类结构比较误报(`CHECK` 括号噪音、主键 canonical key 残余、映射场景目标表名错误、collation advisory 重复输出等),以及 `MySQL 5.6/5.7` 查询 `INFORMATION_SCHEMA.STATISTICS.IS_VISIBLE` 的低版本兼容问题和 `checkObject=data` DDL-yes 链路结果丢失问题。 - [问题修复]: 修复 DSN `charset` 参数提取不完整、`MariaDB` 源端全局权限预检查误判,以及 `struct` / `routine` / `trigger` 模式连接池过大导致的 `Too many connections` 问题(#IEYE7P)。 - [问题修复]: 修复 `checkObject=data` 模式下连接池大小不足导致数据校验 hang 住的问题:`data` 模式下 `queryTableDataSeparate` 与 `AbnormalDataDispos` 两条并发 pipeline 同时运行,单侧峰值连接需求约为 `parallelThds*2 + 2`;将单 侧连接池下限从 `parallelThds + 2` 调整为 `parallelThds*2 + 4`(最低 8),覆盖两阶段并发场景。 - [问题修复]: 修复连接池 `Get()` 持锁阻塞死锁及关闭竞态:`Get()` 原在持有 mutex 时阻塞等待 channel,导致 `Put()` 无法归还连接;同时 `Close()` 在 `Get()` 阻塞期间关闭 channel 后,`Get()` 会返回 nil 连接并错误递增计数。修复:将 channel 等待移至 mutex 释放后,改用两值接收检测 channel 关闭,并将 `Close()` 中 `p.close = true` 移至 `close(p.conns)` 之前。 - [问题修复]: 修复 MySQL 修复 SQL 中索引名、schema/table 名、外键名、routine 名、trigger 名未使用反引号转义的问题;当对象名包含空格、连字符、反引号或 MySQL 保留字时,生成的 `ALTER TABLE` 语句会导致执行失败;新增 `mysqlQuoteIdent()` 函数统一处理所有标识符引用,并以正则 `alterTablePrefixRe` 替换脆弱的 `strings.SplitN` 提取方式,消除 schema/table 名含空格时的解析错误。 - [问题修复]: 修复 Oracle 修复 SQL 使用错误 DDL 语法的问题;原实现对索引 DROP/ADD 均沿用 MySQL `ALTER TABLE` 语法,在 Oracle 上无法执行;改为:DROP 索引使用独立 `DROP INDEX schema.name;` 语句,ADD 索引使用 `CREATE [UNIQUE] INDEX schema.name ON schema.table (cols);` 语句;同时修复 `oracleIdentifier()` 语义:简单 ASCII 标识符返回大写裸名(无引号),避免加双引号后 Oracle 以大小写敏感方式查找对象导致 ORA-00942。 ## 二进制包 | Packages | Size | md5 | | :---: | :--- | :--- | | gt-checksum-1.2.5-d5eb39c-linux-x86_64.tar.xz | 43M | af69cd584af01212175cf3ab14940774 | | gt-checksum-1.2.5-d5eb39c-linux-x86_64-minimal.tar.xz | 12M | 20afc386b3ef24fb4d93afedd72ccc90 | | gt-checksum-1.2.5-d5eb39c-linux-aarch64.tar.xz | 42M | 83738bdf7c2a6b5c5ab778108997f45e | | gt-checksum-1.2.5-d5eb39c-linux-aarch64-minimal.tar.xz | 11M | 118bc4ff8b2fff4d18c87735b9a41fa8 |
最后提交信息为:
docs: 新增
MariaDB -> MariaDB
双端全模式支持
1.2.4
3a4dc60
2026-03-23 09:48
对比
gt-checksum v1.2.4
GreatSQL
# gt-checksum v1.2.4下载列表 ## Changelog [gt-checksum v1.2.4版本更新说明](https://gitee.com/GreatSQL/gt-checksum/blob/v1.2.4/CHANGELOG.md),主要变化有: - 支持Oracle=>MySQL的单向数据校验和修复,目前支持NUMBER/CHAR/NCHAR/VARCHAR2/FLOAT/DECIMAL/DATE/TIMESTAMP/CLOB等多个常用类型 - 新增Oracle 随机数据加载工具oracle_random_data_load - 配置文件中去掉"[DSNs],[Schema]"等一级标签 - 配置文件中存在重复配置参数时,只读取最后一条 - 将fixFileName更名为fixFileDir,用于自定义修复SQL文件存放目录;该目录名以"fixsql-时间戳",会自动创建;并且当该目录不为空时会报错退出 - 新增参数fixFilePerTable,设置为ON时,针对每个表生成独立的SQL文件,并且按照fixTrxNum切分成多个子文件,便于并行修复;默认值为OFF,即所有修复SQL语句都合并到一个文件中 - 新增repairDB程序,读取gc.conf配置参数,读取fixFileDir目录下所有.sql文件,完成并行修复数据库;也可以自行指定修复SQL文件目录,例如 repairDB ./my-fixsql-dir。在某个测例中,共有1218 个fixsql文件,24301776行SQL语句,所有文件共6.5GB,参数`parallelThds=4/chunkSize=20000/fixTrxNum=20000`,修复耗时9m43.936s,表现相当优异 - 新增sqlWhere参数,用于定义校验数据时的WHERE条件,对于大表中只有小部分数据不一致的场景校验效率有极大提升;默认值为空字符串"",表示不添加WHERE子句条件,校验所有数据行 - 支持没有任何索引(包括隐藏主键my_row_id)的表数据校验和修复 - 程序运行时,检查 logFile 文件是否为空,如果不为空则将其重命名为 logFile-时间戳,例如 gt-checksum.log 重命名为 gt-checksum.log-20230801100000 - 支持读取gc.conf配置文件时,忽略配置参数中的多余空格 - 新增DDL不一致检测功能:当源端与目标端DDL定义不一致时,校验报告的Diffs列显示为"DDL-yes",准确区分DDL差异和数据差异 - 支持MySQL 8.0 GIPK(自动生成的不可见主键my_row_id)场景下的DDL差异识别 - 新增索引列目标端存在性验证,当索引列(如my_row_id)在目标端不存在时,提前标记DDL不一致并跳过无意义的数据比较 - 优化INSERT和DELETE语句合并方案,分别设置不同上限,避免DELETE语句影响太多行数据而产生太久锁等待,反倒影响修复效率 - 新增参数fixTrxSize(默认4MB)用于限制单个fixsql文件大小;新增insertSqlSize和deleteSqlSize(单位KB)用于分别控制INSERT和DELETE合并SQL大小 - 优化内存使用:当有大量数据存在差异时,运行耗时降低12%的前提下,最高内存使用降低96%,效果显著 - 新增参数showActualRows表示是否统计各表精确行数并优化相应的查询SQL,可设置为 [ON | OFF],默认值:ON - 优化fixsql文件写入方式,不再采用临时文件写入,改为流式直接写入目标文件 - 新增对MySQL中的struct, routine两种校验场景的支持,包括 DELIMITER、PROCEDURE/FUNCTION 定义包含COMMENT属性 - 新增支持 MySQL -> MySQL struct 场景下的表级 AUTO_INCREMENT 差异检测与修复 - Bugs fixed - 修复了ignoreTables参数无效问题 - 修复了tables参数不支持%通配符问题,重新支持包括库名映射场景下的%通配符用法,例如"db1.t%:db2.t%" - 修复了当数据表没有显式主键,且表中有多行数据是重复的,可能会导致校验结果不准确问题 - 修复元数据查询链路并发共享状态导致的 DDL-yes 随机漂移问题 - 修复issue #I7IYLD #I6VTMQ #I6OEBB #IB6BM6 ## 二进制包 | Packages | Size | md5 | | :---: | :--- | :--- | | gt-checksum-1.2.4-3a4dc60-linux-x86_64.tar.xz | 42M | b5856c2b0b5e4eb1c363951127001606 | | gt-checksum-1.2.4-3a4dc60-linux-x86_64-minimal.tar.xz | 12M | 6a8cd56fbb7a58c0974b3dcf8648a1cf | | gt-checksum-1.2.4-3a4dc60-linux-aarch64.tar.xz | 42M | fe021d015eedb359fafd85c81b03a891 | | gt-checksum-1.2.4-3a4dc60-linux-aarch64-minimal.tar.xz | 11M | 004d297d29385b4f19bd53db1d204723 |
最后提交信息为:
fix(mysql): 修复元数据查询链路并发共享状态导致的 DDL-yes 随机漂移问题
1.2.3
2973af8
2026-01-23 11:08
对比
gt-checksum v1.2.3
GreatSQL
# gt-checksum v1.2.3下载列表 ## Changelog [gt-checksum v1.2.3版本更新说明](https://gitee.com/GreatSQL/gt-checksum/blob/v1.2.3/CHANGELOG.md),主要变化有: - 增加数据库名映射功能,支持将源端数据库名映射为目标端不同名数据库,例如"db1.*:db2.*" - 增加内存使用量限制,且当内存使用量超过该值时,会自动调低parallelThds,queueSize,chunkSize这几个影响性能的参数,并进行GC操作 - 对同一个表既有删索引又有加索引等操作时,两个DDL合并一起,提升效率 - 支持在fix sql中同时设置索引的不可见属性 - 修复 SQL 生成逻辑大幅优化 - 修复多个bug ## 二进制包 | Packages | Size | md5 | | :---: | :--- | :--- | | gt-checksum-1.2.3-9d5efab-linux-x86_64.tar.xz | 38M | cc4e1e3c8f62e2d26457e1910b5bc8a9 | | gt-checksum-1.2.3-9d5efab-linux-x86_64-minimal.tar.xz | 6.6M | 9a09cd8264ae227180c289ee0800a505 | | gt-checksum-1.2.3-9d5efab-linux-aarch64.tar.xz | 37M | c762662043c89ad417c7909aa4eb93ec | | gt-checksum-1.2.3-9d5efab-linux-aarch64-minimal.tar.xz | 5.9M | 513ac0f9d1470b99ad0919fdfbc89cc4 |
最后提交信息为:
!10
release gt-checksum-v1.2.3
1.2.2
36cd0dd
2025-09-22 17:54
对比
gt-checksum-v1.2.2
GreatSQL
# gt-checksum v1.2.2下载列表 ## Changelog [gt-checksum v1.2.2版本更新说明](https://gitee.com/GreatSQL/gt-checksum/blob/v1.2.2/CHANGELOG.md),主要变化有: - 合并jointIndexChanRowCount和singleIndexChanRowCount两个参数为新的参数chunkSize - 不再支持命令行传参方式调用,仅支持配置文件方式调用,命令行参数仅支持"-h", "-v", "-c"等几个必要的参数 - 删除极简模式,默认支持配置文件中只有srcDSN, dstDSN, tables等几个参数 - 参数名lowerCaseTableNames变更为caseSensitiveObjectName,更好理解 - 新增参数memoryLimit,用于限制内存使用量,防止OOM - 优化校验结果输出,Rows的值改为精确值,此外不再频繁输出刷屏 - 参数logFile支持日期时间格式,例如:gt-checksum-%Y%m%d%H%M%S.log - 优化校验结果进度条及汇总报告内容,增加各表、各阶段各自的耗时 - 修复无法使用普通索引和无索引时校验失败的问题 - 修复多个bug ## 二进制包 | Packages | Size | md5 | | :---: | :--- | :--- | |gt-checksum-1.2.2-linux-x86_64.tar.gz | 38M | 0148f0e93d939561e57162ce472a4d43 | |gt-checksum-1.2.2-linux-aarch64.tar.gz | 38M | 3900305d8c2b9d244ae5cbe77afae7a4 |
最后提交信息为:
!9
发布v1.2.2版本
1.2.1
760bea1
2023-03-20 08:48
对比
gt-checksum-v1.2.1
GreatSQL
# gt-checksum v1.2.1下载列表 [gt-checksum v1.2.1版本更新说明](https://gitee.com/GreatSQL/gt-checksum/blob/master/relnotes/CHANGELOG.zh-CN.md) | Packages | Size | md5sum | | --- | --- | --- | |[gt-checksum-1.2.1-linux-x86-64.tar.gz(x86, 64-bit)](https://product.greatdb.com/gt-checksum/gt-checksum-1.2.1-linux-x86-64.tar.gz)|67M| 50f8bc0bbb32c6e6b98f1bb0f5399464 | |[gt-checksum-1.2.1-linux-aarch64.tar.gz(ARM, 64-bit)](https://product.greatdb.com/gt-checksum/gt-checksum-1.2.1-linux-aarch64.tar.gz)|66M| 3b6e6a429e2d07fe05e69179b1453e31 |
最后提交信息为:
changelog文档中增加标号
1.2.0
69aef49
2023-03-06 08:44
对比
gt-checksum-v1.2.0
GreatSQL
# gt-checksum v1.2.0下载列表 | Packages | Size | md5sum | | --- | --- | --- | |[gt-checksum-1.2.0-linux-x86-64.tar.gz(x86, 64-bit)](https://product.greatdb.com/gt-checksum/gt-checksum-1.2.0-linux-x86-64.tar.gz)|67M| a8ef8a1bb8b95d9ef6a3fc75e98803f3 | |[gt-checksum-1.2.0-linux-aarch64.tar.gz(ARM, 64-bit)](https://product.greatdb.com/gt-checksum/gt-checksum-1.2.0-linux-aarch64.tar.gz)|66M| 6292974ab7715beca3617209d818e692 |
最后提交信息为:
增加issue模板
下载
请输入验证码,防止盗链导致资源被占用
取消
下载
Go
1
https://gitee.com/GreatSQL/gt-checksum.git
git@gitee.com:GreatSQL/gt-checksum.git
GreatSQL
gt-checksum
gt-checksum
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册