Ejabberd 不再启动

Ejabberd 不再启动

我已经运行了 ejabberd 几个月,没有出现任何问题。最近几天,它开始崩溃,dmesg 中出现内存不足错误。现在,它根本无法启动。

当我尝试启动它时,我在日志中看到以下内容:

2021-11-17 16:48:21.808 [notice] <0.120.0>@lager_file_backend:154 Changed loghwm of /opt/ejabberd/logs/ejabberd.log to 100
2021-11-17 16:48:22.043 [info] <0.106.0>@ejabberd_config:load:82 Loading configuration from /opt/ejabberd/conf/ejabberd.yml
2021-11-17 16:48:22.064 [notice] <0.120.0>@lager_file_backend:143 Changed loglevel of /opt/ejabberd/logs/ejabberd.log to debug
2021-11-17 16:48:22.138 [debug] <0.123.0>@lager_handler_watcher:127 Lager installed handler lager_backend_throttle into lager_event
2021-11-17 16:48:22.329 [info] <0.106.0>@ejabberd_config:load:89 Configuration loaded successfully
2021-11-17 16:48:22.474 [debug] <0.223.0>@ejabberd_mnesia:init:79 Waiting for Mnesia tables synchronization...

我正在运行 ejabberd-21.07。

非常欢迎任何解决此问题的建议!

麦克风。

答案1

您的数据库是小型的还是非常大的?我的意思是,只有几千个帐户,还是数百万个帐户?如果是大型数据库,最好使用 SQL 存储。

如果它是一个小型数据库,也许它在崩溃后被损坏,或者出现 RAM 或磁盘问题......

现在,您可以尝试打开 mnesia 数据库并手动备份:

❯ erl -sname ejabberd@localhost -mnesia dir \"/usr/local/var/lib/ejabberd\"
Erlang/OTP 23 [erts-11.1.8] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1]
Eshell V11.1.8  (abort with ^G)

(ejabberd@localhost)1> mnesia:start().
ok

(ejabberd@localhost)2> mnesia:info(). 
---> Active tables <--- 
mod_register_ip: with 0        records occupying 305      words of mem
...
roster         : with 0        records occupying 5464     bytes on disc
...
ok

(ejabberd@localhost)3> mnesia:backup("/tmp/aa.backup").
ok

相关内容