我不确定这样的问题到底出在哪里,因为它来自 Unraid Linux 服务器,带有 Plex Media Server 容器,它使用 SQLite(在根级别寻找故障排除)。我在 Unraid 和 Plex 论坛上都发过帖子,但没有成功。
我的 Plex 容器在 Unraid 上一次又一次失败,导致我进行完整性检查、重建、转储、导入以及完全擦除和重新启动(完全删除旧目录并重新开始)。我最多只能让它运行几分钟,然后容器再次失败。我收到的错误已经发生了变化,但从最后一种情况(完全擦除并重新安装新容器)开始,我在输出日志中收到以下错误:
错误:无法设置服务器:sqlite3_statement_backend::loadOne:数据库磁盘映像格式不正确(N4soci10soci_errorE)
我决定将数据库复制到我的 Windows 机器上,然后仔细查看数据库,以便更好地了解其结构。查看名为媒体项目我犯了同样的错误。
显然,我认为其中一个主表已损坏。那么我的问题是,我可以做些什么来尝试修复这个问题或了解原因?我本以为一个全新的数据库可以解决我的问题,除非纯属巧合,两个背靠背的数据库在我接触它们之前就损坏了,没有任何联系。这可能是我的媒体文件之一吗?可能是 Unraid 吗?可能是我的硬盘吗?
如果您不熟悉 Plex,请了解一下背景信息。容器启动后,它会扫描我的媒体库,并用元数据、海报、观看状态、评级等数据填充它。我完成了完全自动化的构建,但在 30 分钟内,它就崩溃了,我甚至还没来得及自定义我的库。
以下是我在故障排除过程中的几个场景中使用的 bash 行的参考。可能对某个地方的某些人有用。
完整性检查:
./Plex\ SQLite "$plexDB" "PRAGMA integrity_check"
从备份中恢复:
./Plex\ SQLite "$plexDB" ".output recover.out" ".recover"
倾倒:
./Plex\ SQLite "$plexDB" ".output dump.sql" ".dump"
进口:
./Plex\ SQLite "$plexDB" ".read dump.sql"
答案1
经过数小时、数天和一周的各种故障排除。包括重置 docker 映像(以及帖子中提到的其他映像),另一个论坛建议运行内存测试。将内存测试放在可启动的 USB 上,我立即得出结论,其中一根内存条坏了。移除那根内存条后,我没有遇到任何问题,一切都很好……真奇怪。