Press "Enter" to skip to content

重建群晖PGSQL数据库

登录群晖系统发现系统级别的告警日志:

Checksum mismatch on file [/volume1//@database/pgsql/base/26073/26910].

这个文件是什么?

路径 /volume1//@database/pgsql/base/26073/26910 指向的是群晖系统中 PostgreSQL 数据库相关的数据文件:

  1. /volume1/: 这是群晖 NAS 的第一个卷(volume),通常是存储数据的默认位置。
  2. @database/: 这是群晖系统中的一个隐藏目录(以 @ 开头),用于存储系统或应用程序的数据库文件。
  3. pgsql/: 表示 PostgreSQL,这是一个开源的关系型数据库管理系统。群晖的许多应用程序(例如 Synology Moments、Synology Drive 或其他依赖数据库的服务)可能会使用 PostgreSQL 来存储元数据、索引等信息。
  4. base/26073/26910: 这是 PostgreSQL 数据库的具体数据文件。base 目录下存储的是数据库的表空间,而 26073 和 26910 是数据库内部的对象标识符(OID),分别代表某个数据库和某个表或文件。

简单来说,这个文件是某个群晖应用程序使用的数据库文件的一部分,可能是存储照片元数据、文件索引或其他关键信息的。

可能的影响

校验和不匹配意味着文件的内容可能已经损坏。这可能导致以下影响:

  1. 应用程序功能受限: 如果这个文件属于某个应用程序(例如 Moments 或 Drive)的数据库,相关功能可能会出现异常,比如无法加载照片、文件同步失败或数据丢失。
  2. 数据完整性问题: 如果不处理,损坏可能会扩散到其他相关文件,尤其是在数据库持续运行的情况下。
  3. 系统稳定性: 虽然单个文件损坏通常不会直接导致系统崩溃,但如果数据库问题未解决,可能间接影响依赖它的服务。

具体影响取决于这个文件属于哪个应用程序。如果是核心系统文件(比如 DSM 本身的数据库),影响会更严重;如果只是某个可选应用(比如 Moments)的数据库,影响可能仅限于该应用。

需要处理吗?如何处理?

是的,建议你采取行动来处理这个问题,以避免潜在的数据丢失或应用程序故障。以下是推荐的步骤:

1. 确定受影响的应用程序

  • 检查你的群晖上有哪些应用程序使用了 PostgreSQL。通常包括:
    • Synology Moments(照片管理)
    • Synology Drive(文件同步)
    • Synology Chat 或 MailPlus(如果安装了这些服务)
  • 你可以通过 DSM 的“套件中心”查看哪些应用正在运行,然后观察是否有异常(比如无法打开或报错)。

2. 检查备份

  • 在处理之前,确认你是否有数据备份。群晖的 Hyper Backup 工具可以备份数据和应用程序配置。如果有备份,可以更放心地进行后续操作。

3. 运行数据清理(Data Scrubbing)

  • 如果你的卷使用的是 Btrfs 文件系统(可以在“存储管理器”中查看),可以通过数据清理来尝试修复:
    1. 打开 DSM 的“存储管理器”。
    2. 选择你的卷(volume1)。
    3. 点击“数据清理”并运行。
  • Btrfs 会检查文件完整性并尝试修复校验和不匹配的问题。如果修复成功,问题可能就解决了。

4. 检查硬件健康状况

  • 校验和不匹配可能是硬件问题导致的(比如硬盘或内存故障)。建议:
    • 在“存储管理器”中运行 SMART 测试,检查硬盘健康状态。
    • 如果你添加了额外的内存条,可以考虑测试内存(需要 SSH 登录并运行群晖提供的内存测试工具)。

5. 重新安装相关应用

  • 如果数据清理无法修复,或者你确定这是某个应用(如 Moments)的数据库问题,可以尝试:
    1. 停止相关应用(在“套件中心”中暂停或卸载)。
    2. 删除损坏的数据库文件(需要通过 SSH 访问 /volume1/@database/pgsql/,谨慎操作)。
    3. 重新安装应用,让它重建数据库。
  • 注意:这可能会丢失该应用的元数据(比如 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

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注