RabbitMQ重启后数据和用户丢失
2023-02-14 16:34 猎手家园 阅读(783) 评论(0) 编辑 收藏 举报1、问题描述:
在重启RabbitMQ服务后,数据丢失,用户丢失。
2、问题原因:
在RabbitMQ服务启动后,对主机名进行过修改,而修改主机名会导致数据存储路径发生变化,如果不重启RabbitMQ不会有事,如重启则会数据和用户全部丢失
3、问题细节:
(1)在Linux中,RabbitMQ运行中的数据保存在/var/lib/rabbitmq/mnesia/中,数据目录通过主机名自动生成。
(2)在修改主机名并重启服务后,RabbitMQ会重新加载数据存储目录(自动寻找以当前主机名命名的目录,如没有则自动创建),而不会再读取以原主机名命名的目录。
(3)而在新目录中不存在数据,导致“数据和用户丢失”现象。
解决办法一:
将主机名还原,改回去(如果主机名中有使用大写字母,可以使用hostnamectl set-hostname --static [主机名],确保大写字母不自动被转换为小写字母)
解决办法二:
不把主机名改回去,将RabbitMQ的节点名字固定,设置了节点名后,优先读取节点名(可以设置为原主机名,这样读取的数据存储目录还是不变):
echo ‘NODENAME=rabbit@info’ | sudo tee -a /etc/rabbitmq/rabbitmq-env.conf
echo ‘127.0.0.1 info’ | sudo tee -a /etc/hosts
重要说明:
如你的RabbitMQ在修改主机名后,没有重启过,则使用上面的解决办法之一后,无需重启服务(提前预防问题);
如你的RabbitMQ在修改主机名后,已经重启过,故障已经发生,则使用上面的解决办法之一处理后,必须重启RabbitMQ服务,数据才可恢复。