rabbitmq服务器断电后,服务无法启动恢复记录

服务器 0

出现原因:

        服务器的电源有问题,导致异常断电,服务器启动后,导致rabbitmq服务一直反复重启,还有虚拟机上部署rabbitmq,宿主机异常断电也会导致该问题,一直反复提示:

Failed to start RabbitMQ Messaging Server.

rabbitmq-server.service: Scheduled restart job, restart counter is at 2062.

Stopped RabbitMQ Messaging Server.

        网上找了挺多教程,都是直接移除/var/lib/rabbitmq/mnesia目录,虽然简单粗暴,但是可能会导致没有消费的数据丢失,以下是我解决方案

处理步骤:

        备份数据

cd /var/lib/rabbitmq/#备份数据sudo cp -rp mnesia mnesia_bakcd /var/lib/rabbitmq/mnesia/rabbit@{你的名称}/quorum/rabbit@{你的名称}

        查看该目录下的.wal文件,数据大小是否是0,如果是0,那么恭喜你,大概率数据能够恢复了

如图:

        将该.wal文件进行备份,将该文件进行删除,删除后重启rabbitmq-server,然后查看状态,发现服务状态已经是“running”

#重启服务sudo systemctl start rabbitmq-server#查看服务状态systemctl status rabbitmq-server

● rabbitmq-server.service - RabbitMQ Messaging Server
     Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-05-15 10:06:27 CST; 5h 40min ago
   Main PID: 101398 (beam.smp)
     Status: "Initialized"
      Tasks: 91 (limit: 9388)
     Memory: 93.7M
     CGroup: /system.slice/rabbitmq-server.service
             ├─101379 /bin/sh /usr/sbin/rabbitmq-server
             ├─101398 /usr/lib/erlang/erts-10.6.4/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -K true -- -root /usr/l>
             ├─101688 erl_child_setup 65536
             ├─101804 inet_gethost 4
             └─101805 inet_gethost 4

         看到这里是不感觉服务已经正常了,当然不是,后续登录mq的网页进行模拟获取消息和发送消息,提示访问被拒绝,所以这个时候需要执行下初始的脚本,以下是我执行脚本,可参考下

sudo rabbitmqctl add_user 用户名 密码sudo rabbitmqctl set_user_tags 用户名 administratorsudo rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"

        执行以上代码后,可正常收发消息

希望能对你们有所帮助 

也许您对下面的内容还感兴趣: