# WiredTiger 错误 (3) __wt_file_handle_close，文件：WiredTiger.wt，关闭：没有那个文件或目录

- **ID:** `mongodb/wiredtiger-file-close-failed`
- **领域:** mongodb
- **类别:** system_error
- **错误码:** `3`
- **验证级别:** ai_generated
- **修复率:** 75%

## 根因

WiredTiger 存储引擎无法关闭文件句柄，通常是由于文件系统级损坏或过时的 NFS 挂载导致底层文件在 MongoDB 仍持有引用时被删除。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| MongoDB 5.0 | active | — | — |
| MongoDB 6.0 | active | — | — |
| MongoDB 7.0 | active | — | — |

## 解决方案

1. ```
   停止 mongod，在数据目录上运行 `mongod --repair`，然后重新启动。这会从剩余的数据文件中重建 WiredTiger 元数据。
   ```
2. ```
   如果修复失败，从最近的备份恢复。使用 `mongorestore` 恢复备份转储。
   ```
3. ```
   如果使用副本集，删除受影响的节点，清空数据目录并用 `--replSet` 重新启动，从主节点重新同步。
   ```

## 无效尝试

- **** — The corruption persists in the WiredTiger metadata; restarting only re-encounters the same error or causes a crash loop. (90% 失败率)
- **** — This file contains critical storage engine metadata; removing it makes the database unreadable and requires a full resync from replica set or backup. (95% 失败率)
- **** — Running fsck on a mounted filesystem can cause further corruption; MongoDB requires the data directory to be consistent before repair. (80% 失败率)
