--- title: "事务日志被截断 (truncated_translog_exception) 错误排查与解决" date: 2026-01-22 lastmod: 2026-01-22 description: "truncated_translog_exception 表示事务日志文件被截断或损坏,通常由磁盘空间不足、异常关闭、文件系统错误或磁盘故障引起。" tags: ["事务日志", "数据损坏", "存储"] summary: "为什么这个错误发生 # truncated_translog_exception 表示事务日志(translog)文件被截断或损坏。事务日志用于确保数据 durability。 这个错误可能由以下原因引起: 磁盘空间不足:写入时磁盘空间耗尽 异常关闭:节点异常关闭导致 translog 不完整 文件系统错误:底层文件系统错误 磁盘故障:磁盘硬件故障 如何修复这个错误 # 1. 检查磁盘空间 # # 检查磁盘使用 df -h # 清理空间 2. 尝试恢复分片 # # 触发分片恢复 POST /_cluster/reroute?retry_failed=true 3. 从副本恢复 # # 如果有健康副本,可以从副本恢复 4. 从快照恢复 # # 从快照恢复索引 POST /_snapshot/<repo>/<snap>/_restore { "indices": "<index>" } 预防措施 # 确保充足的磁盘空间 监控 translog 大小 使用 RAID 保护数据 " --- ## 为什么这个错误发生 `truncated_translog_exception` 表示事务日志(translog)文件被截断或损坏。事务日志用于确保数据 durability。 这个错误可能由以下原因引起: 1. **磁盘空间不足**:写入时磁盘空间耗尽 2. **异常关闭**:节点异常关闭导致 translog 不完整 3. **文件系统错误**:底层文件系统错误 4. **磁盘故障**:磁盘硬件故障 ## 如何修复这个错误 ### 1. 检查磁盘空间 ```bash # 检查磁盘使用 df -h # 清理空间 ``` ### 2. 尝试恢复分片 ```bash # 触发分片恢复 POST /_cluster/reroute?retry_failed=true ``` ### 3. 从副本恢复 ```bash # 如果有健康副本,可以从副本恢复 ``` ### 4. 从快照恢复 ```bash # 从快照恢复索引 POST /_snapshot///_restore { "indices": "" } ``` ### 预防措施 - 确保充足的磁盘空间 - 监控 translog 大小 - 使用 RAID 保护数据