如何诊断TeamCity/HSQLDB错误[S1000][-25]:.data文件已修改但.backup不存在
解决TeamCity关联HSQLDB的.data文件备份缺失问题
错误原因
HSQLDB在更新数据文件(.data)时会自动生成对应的.backup备份文件,用于启动时校验数据完整性。当.data文件被修改但.backup文件丢失时,数据库会触发完整性校验失败,导致无法连接。
修复步骤
停止TeamCity服务
确保所有与HSQLDB相关的进程都已关闭,避免文件被占用。定位HSQLDB数据目录
TeamCity默认的HSQLDB数据目录为<TeamCity安装路径>/buildServer/system/hsqldb,也可通过TeamCity的配置文件(buildServer/config/database.properties)确认具体路径。备份所有数据库文件
复制整个HSQLDB数据目录到安全位置,防止操作失误导致数据丢失。修复文件结构
- 找到报错对应的
.data文件(如buildserver.data),将其重命名为同名的.backup文件(如buildserver.backup)。 - 打开对应的
.script文件,定位到第342行,检查是否存在异常的键/索引定义语句(比如不完整的CREATE INDEX或ALTER TABLE语句),如有则手动删除或修正。
- 找到报错对应的
重启服务验证
启动TeamCity服务,观察日志是否还有数据库连接错误,验证TeamCity功能是否恢复正常。
额外建议
- 若修复后仍存在键/索引类错误,可启动HSQLDB的命令行工具,执行
CHECKPOINT或SHUTDOWN COMPACT命令整理数据库。 - HSQLDB仅适用于开发测试环境,生产环境建议迁移TeamCity数据库至PostgreSQL、MySQL等更稳定的数据库系统。
内容的提问来源于stack exchange,提问作者crokusek
相关产品推荐
相关产品推荐

