我管理着 25 个 Ubuntu 22.04 系统。其中一个系统(可能还有更多我还没发现)的 tracker-miner-fs 一直崩溃,我不知道该如何控制它。
我安装了 Ubuntu 22.04 并安装了所有最新更新。Tracker 版本是 3.3.0-1
我只能通过 SSH 以命令行方式访问这些系统,因为实际系统距离我们 60 英里。访问物理控制台并不实用。
我在 /var/log/syslog 中发现以下类型的条目:
Nov 17 09:32:24 bec315dl06 tracker-miner-f[6049]: SQLite error: database disk image is malformed (errno: Success)
Nov 17 09:32:24 bec315dl06 tracker-miner-f[6049]: message repeated 131 times: [ SQLite error: database disk image is malformed (errno: Success)]
针对此问题的一般建议是“tracker3 reset -s”。但是,这会出错:
~# tracker3 reset -s
(tracker reset:6269): GLib-GIO-CRITICAL **: 10:03:26.952: g_dbus_connection_send_message_with_reply_sync: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
(tracker reset:6269): GLib-GIO-CRITICAL **: 10:03:26.952: g_dbus_connection_send_message_with_reply_sync: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
(tracker reset:6269): GLib-GObject-CRITICAL **: 10:03:26.952: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Found 0 PIDs…
tracker3 状态也错误:
~# tracker3 status
Could not establish a connection to Tracker: Cannot autolaunch D-Bus without X11 $DISPLAY
这并不完全令人惊讶,因为我使用的是 SSH 连接。
到现在为止,我迷茫了。我不太熟悉 D-Bus 的复杂性。
有没有办法手动重置跟踪器,这样可以解决所有问题,还是只是绕过一些也应该解决的 D-Bus 问题?
答案1
我找到了部分答案。
由于tracker3 reset -s不起作用,修复tracker数据库的方法如下:
- 终止 tracker-miner-fs-3 进程。
- 删除 /var/lib/gdm/.cache/tracker3 中的 SQLite 数据库
- 重新启动系统。
- 在 /var/log/syslog 中确认 tracker3 不再报告 SQLite 错误(可能有关于丢失文件的消息)。
$HOME/.cache/tracker3 中为每个用户提供了额外的跟踪器数据库。在我的例子中,主目录位于 NFS 共享上,这当然会增加损坏的风险。
tracker3 reset -s 和 tracker3 status 的问题仍然存在。