Solr服务器每日恢复至故障前旧数据,增量同步仅临时生效求助
Solr新增数据次日回退问题排查方案
1. 排查定时备份/恢复任务
- 检查是否存在夜间自动执行的
solr backup或第三方备份脚本(如crontab),这类任务可能会自动恢复故障前的旧索引备份。 - 查看Solr日志文件(
solr.log),搜索RestoreCore、BackupManager关键词,确认是否有异常的恢复操作记录。
2. 检查DataImportHandler(DIH)配置与调度
- 核对
data-config.xml中的增量导入规则:确认deltaQuery、deletedPkQuery是否正确关联修复后的审计表,避免因时间范围过滤错误导致旧数据覆盖新数据。 - 排查是否存在定时全量导入任务:若全量导入使用旧数据源或错误查询条件,且执行前未做增量校验,会直接覆盖当前索引数据。重点检查全量导入配置中是否包含
<delete><query>*:*</query></delete>这类清除全索引的操作。
3. 验证Solr Core存储与配置
- 检查
solrconfig.xml的<directoryFactory>配置,确认索引存储目录路径正确,且目录权限正常(Solr进程需具备读写权限),排除因存储路径错误或权限不足导致数据未持久化的问题。 - 查看事务日志(
<updateLog>)配置,确认事务日志正常启用,排查是否存在日志回滚、异常恢复导致数据回退的情况。
4. 确认数据源与审计表同步状态
- 再次验证审计表的同步逻辑:确认新增数据的审计记录持续、正确生成,确保delta-sync能捕获到最新数据,避免全量导入时使用旧的基础数据集。
- 直接查询数据库中的用户表与审计表,确认第1天新增的500个用户数据在数据库中是否留存,排除数据库层面的数据回滚问题。
5. 临时验证操作
- 暂停所有定时的Solr导入、备份任务,手动执行delta-sync后,持续观察24小时,确认数据是否保留。
- 新增测试用户,实时监控Solr索引与数据库数据的一致性,排查是否有异常的索引删除或覆盖操作。
内容的提问来源于stack exchange,提问作者Lokendra Singh
相关产品推荐
相关产品推荐

