问题:
数据库build报错:base backup checksum failed in file "./base/12977860/1.txt" block 0 (computed: 728, recorded: 1361)
分析:
从日志信息来看,数据库备份(build)失败的原因是 基础备份校验和(checksum)不匹配。
具体错误信息为:base backup checksum failed in file "./base/12977860/1.txt" block 0 (computed: 728, recorded: 1361),意思是在文件 ./base/12977860/1.txt 的块 0 处,计算得到的校验和(728)与记录的校验和(1361)不一致。这会导致备份过程被终止,进而使数据库 build 失败。
因为文件名偏口语,怀疑是客户手动创建,沟通得知确实为手动创建。
问题核心原因
客户手动创建的文件 ./base/12977860/1.txt 破坏了数据库的内部一致性校验机制,导致备份时校验和不匹配。
具体分析
数据库文件的特殊性:
关系型数据库的base目录下通常存储的是核心数据文件,其结构、内容和校验信息由数据库系统自动维护,不允许手动干预。这些文件包含特定格式的块数据,每个块都有对应的校验和用于验证完整性。手动创建文件的影响:
客户手动创建的1.txt并非数据库系统生成的合法数据文件,其内容格式与数据库预期的块结构不匹配,导致计算出的校验和与数据库记录的(或预期的)校验和不一致,最终触发备份校验失败。连锁反应:
数据库备份过程会严格校验所有数据文件的完整性,一旦发现校验和不匹配,会立即终止备份以避免生成无效或损坏的备份文件,这就是 build 失败的直接原因。
解决:
此问题本质上是人为操作违反了数据库文件的管理规范。数据库的核心数据目录(如 base)属于系统内部区域,用户不应手动创建、修改或删除其中的文件,否则可能破坏数据一致性、触发校验错误,甚至导致数据库无法正常运行。应转移或删去,再重新build。




