rabbitmq 启动报错
65 2018-10-22 10:15:41 find / -name recovery.dets
66 2018-10-22 10:16:55 cd /var/lib/rabbitmq/mnesia/rabbit@localhost/
67 2018-10-22 10:16:56 ls
68 2018-10-22 10:17:02 \rm recovery.dets
RabbitMQ服务无法启动问题分析
1.问题再现
重启rabbitmq服务:service rabbitmq-server restart
输入该命令后,rabbitmq服务并未启动。(通过ps命令或rabbitmqctl status命令查看启动状态)
2.问题排查
(1)查看startup.err日志文件
1
2
3
4
|
# cat /var/log/rabbitmq/startup_err
Crash dump was written to: erl_crash.dump
init terminating in do_boot()
|
erlang崩溃了,进而导致rabbitmq服务无法正常启动(需要注意的是rabbitmq是用erlang实现的一个高并发可靠AMQP消息队列服务器)。
(2)查看rabbit@localhost.log日志
1
|
# cat /var/log/rabbitmq/rabbit@localhost.log
|
有如下错误信息片段:
1
2
3
4
5
6
7
8
9
10
11
12
|
……
……
Error description:
{could_not_start,rabbit,
{{badmatch,
{error,
{{{badmatch,
{error,
{not_a_dets_file,
"/var/lib/rabbitmq/mnesia/rabbitmq@localhost/recovery.dets"}}},
……
……
|
rabbitmq无法读取recovery.dets文件,猜测该文件可能已经损坏。
3.解决方法
根据上述日志,定位到recovery.dets文件,尝试删除该文件后再次重启rabbitmq服务(rabbitmq服务每次启动会检查指定目录下是否存在recovery.dets文件,若无,则会创建一个新的)。
(1)删除recovery.dets文件
1
|
# rm –rf /var/lib/rabbitmq/mnesia/rabbitmq@localhost/recovery.dets
|
(2)重启rabbitmq服务
1
|
# service rabbitmq-server restart
|
(3)查看rabbitmq状态
1
|
# rabbitmqctl status
|
服务正常启动,问题解决
时来天地皆同力,运去英雄不自由