今天下午,我正准备给新起的项目配置数据库,发现本地 NAS 上的 PostgreSQL 数据库突然连接不上了。起初发现是硬盘满了,经过排查,更糟,ZFS 存储池不见了。这台 Nas 是用来备份的,因为 whale 池子不见了,定时备份命令把系统盘存满了。本文记录了这次数据恢复的全过程,希望能给遇到类似问题的朋友一些参考。
/whale
存储池完全消失lsblk
确认物理硬盘仍在线执行 zpool import
命令后,系统返回了错误信息,看起来很严重:
# zpool import -d /dev/disk/by-id/ata-WDC_WUH721816ALE6L4_2BJNGLGN-part1
pool: whale
id: 6556284763754827846
state: FAULTED
status: The pool metadata is corrupted.
action: The pool cannot be imported due to damaged devices or data.
The pool may be active on another system, but can be imported using
the '-f' flag.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-72
config:
whale FAULTED corrupted data
ata-WDC_WUH721816ALE6L4_2BJNGLGN ONLINE
存储池处于 FAULTED 状态,元数据遭到损坏。即使使用 -f
参数强制导入也未能解决问题。
我把zpool import
的回显和提示的网址发给 Cursor ,在 AI 助手的建议下,我们采取了以下步骤:
zpool import -Fn whale
进行"dry run"测试,结果令人欣慰:Would be able to return whale to its state as of 2025 年 01 月 03 日 星期五 20 时 36 分 47 秒.
Would discard approximately 5 seconds of transactions.
zpool import -F whale
zpool scrub whale
进行数据完整性检查昨天晚上,我回到家发现 Mac mini 关机了,查看 Nas 的 uptime 只有 16min ,说明家里断过电。这很可能是因为断电导致的存储池损坏。
-n
参数进行干运行测试是个好习惯虽然这个池子只是备份数据,如果丢失了也很麻烦。还好虚惊一场。AI 确实强大,文档链接直接丢给它就能给出方案。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.