登录群晖系统发现系统级别的告警日志:
Checksum mismatch on file [/volume1//@database/pgsql/base/26073/26910].
这个文件是什么?
路径 /volume1//@database/pgsql/base/26073/26910 指向的是群晖系统中 PostgreSQL 数据库相关的数据文件:
- /volume1/: 这是群晖 NAS 的第一个卷(volume),通常是存储数据的默认位置。
- @database/: 这是群晖系统中的一个隐藏目录(以 @ 开头),用于存储系统或应用程序的数据库文件。
- pgsql/: 表示 PostgreSQL,这是一个开源的关系型数据库管理系统。群晖的许多应用程序(例如 Synology Moments、Synology Drive 或其他依赖数据库的服务)可能会使用 PostgreSQL 来存储元数据、索引等信息。
- base/26073/26910: 这是 PostgreSQL 数据库的具体数据文件。base 目录下存储的是数据库的表空间,而 26073 和 26910 是数据库内部的对象标识符(OID),分别代表某个数据库和某个表或文件。
简单来说,这个文件是某个群晖应用程序使用的数据库文件的一部分,可能是存储照片元数据、文件索引或其他关键信息的。
可能的影响
校验和不匹配意味着文件的内容可能已经损坏。这可能导致以下影响:
- 应用程序功能受限: 如果这个文件属于某个应用程序(例如 Moments 或 Drive)的数据库,相关功能可能会出现异常,比如无法加载照片、文件同步失败或数据丢失。
- 数据完整性问题: 如果不处理,损坏可能会扩散到其他相关文件,尤其是在数据库持续运行的情况下。
- 系统稳定性: 虽然单个文件损坏通常不会直接导致系统崩溃,但如果数据库问题未解决,可能间接影响依赖它的服务。
具体影响取决于这个文件属于哪个应用程序。如果是核心系统文件(比如 DSM 本身的数据库),影响会更严重;如果只是某个可选应用(比如 Moments)的数据库,影响可能仅限于该应用。
需要处理吗?如何处理?
是的,建议你采取行动来处理这个问题,以避免潜在的数据丢失或应用程序故障。以下是推荐的步骤:
1. 确定受影响的应用程序
- 检查你的群晖上有哪些应用程序使用了 PostgreSQL。通常包括:
- Synology Moments(照片管理)
- Synology Drive(文件同步)
- Synology Chat 或 MailPlus(如果安装了这些服务)
- 你可以通过 DSM 的“套件中心”查看哪些应用正在运行,然后观察是否有异常(比如无法打开或报错)。
2. 检查备份
- 在处理之前,确认你是否有数据备份。群晖的 Hyper Backup 工具可以备份数据和应用程序配置。如果有备份,可以更放心地进行后续操作。
3. 运行数据清理(Data Scrubbing)
- 如果你的卷使用的是 Btrfs 文件系统(可以在“存储管理器”中查看),可以通过数据清理来尝试修复:
- 打开 DSM 的“存储管理器”。
- 选择你的卷(volume1)。
- 点击“数据清理”并运行。
- Btrfs 会检查文件完整性并尝试修复校验和不匹配的问题。如果修复成功,问题可能就解决了。
4. 检查硬件健康状况
- 校验和不匹配可能是硬件问题导致的(比如硬盘或内存故障)。建议:
- 在“存储管理器”中运行 SMART 测试,检查硬盘健康状态。
- 如果你添加了额外的内存条,可以考虑测试内存(需要 SSH 登录并运行群晖提供的内存测试工具)。
5. 重新安装相关应用
- 如果数据清理无法修复,或者你确定这是某个应用(如 Moments)的数据库问题,可以尝试:
- 停止相关应用(在“套件中心”中暂停或卸载)。
- 删除损坏的数据库文件(需要通过 SSH 访问 /volume1/@database/pgsql/,谨慎操作)。
- 重新安装应用,让它重建数据库。
- 注意:这可能会丢失该应用的元数据(比如 Moments 的照片索引),但如果有备份,可以尝试恢复。
也可以尝试手动重建pgsql
下载脚本:
https://web.archive.org/web/20220112183140if_/https://ftp.synology.com/support_web/Tools/script/pgsql_analyzer.sh
登录到群晖ssh,启用sudo,运行脚本:
bash pgsql_analyzer.sh -r
重建完成 重启群晖
参考资料:
https://blog.csdn.net/jihong6787/article/details/127120125