文档章节

Rabbitmq由于queen数据持久化错误,导致无法启动的解决办法

Jason_hu
 Jason_hu
发布于 2017/08/25 13:08
字数 718
阅读 165
收藏 0

Rabbitmq由于queen数据持久化错误,导致无法启动的解决办法

环境

  • os:centos 6.5
  • rabbitmq: 3.6.5

故障描述

  • 由于磁盘满,导致rabbitmq崩溃,无法提供服务
  • 清理磁盘空间后,rabbitmq无法自动恢复正常

处理办法

  • service rabbitmq-server stop 无法正确关闭rabbitmq
  • ps -AF | grep rabbitmq,将rabbitmq相关进程全部kill
  • 使用 service rabbitmq-server start 重启,显示启动错误
  • 查看服务口状态:service rabbitmq-server status
Status of node rabbit@gitlab ...
Error: unable to connect to node rabbit@gitlab: nodedown

DIAGNOSTICS
===========

attempted to contact: [rabbit@gitlab]

rabbit@gitlab:
  * connected to epmd (port 4369) on gitlab
  * epmd reports: node 'rabbit' not running at all
                  other nodes on gitlab: ['rabbitmq-cli-11']
  * suggestion: start the node

current node details:
- node name: 'rabbitmq-cli-11@localhost'
- home dir: /var/lib/rabbitmq
- cookie hash: qib2bCkQ8XIJmRtJP4qxFg==
=ERROR REPORT==== 24-Aug-2017::17:33:47 ===
** Generic server <0.215.0> terminating
** Last message in was {'$gen_cast',
                           {submit_async,
                               #Fun<rabbit_queue_index.32.103862237>}}
** When Server state == undefined
** Reason for termination == 
** {{case_clause,undefined},
    [{rabbit_queue_index,add_segment_relseq_entry,3,
                         [{file,"src/rabbit_queue_index.erl"},{line,1091}]},
     {rabbit_queue_index,parse_segment_entries,3,
                         [{file,"src/rabbit_queue_index.erl"},{line,1075}]},
     {rabbit_queue_index,'-recover_journal/1-fun-0-',1,
                         [{file,"src/rabbit_queue_index.erl"},{line,863}]},
     {lists,map,2,[{file,"lists.erl"},{line,1239}]},
     {rabbit_queue_index,segment_map,2,
                         [{file,"src/rabbit_queue_index.erl"},{line,989}]},
     {rabbit_queue_index,recover_journal,1,
                         [{file,"src/rabbit_queue_index.erl"},{line,856}]},
     {rabbit_queue_index,scan_segments,3,
                         [{file,"src/rabbit_queue_index.erl"},{line,676}]},
     {rabbit_queue_index,queue_index_walker_reader,2,
                         [{file,"src/rabbit_queue_index.erl"},{line,664}]}]}
=INFO REPORT==== 24-Aug-2017::17:44:51 ===
Error description:
   {could_not_start,rabbit,
       {{badmatch,
            {error,
                {{{{case_clause,undefined},
                   [{rabbit_queue_index,add_segment_relseq_entry,3,
                        [{file,"src/rabbit_queue_index.erl"},{line,1091}]},
                    {rabbit_queue_index,parse_segment_entries,3,
                        [{file,"src/rabbit_queue_index.erl"},{line,1075}]},
                    {rabbit_queue_index,'-recover_journal/1-fun-0-',1,
                        [{file,"src/rabbit_queue_index.erl"},{line,863}]},
                    {lists,map,2,[{file,"lists.erl"},{line,1239}]},
                    {rabbit_queue_index,segment_map,2,
                        [{file,"src/rabbit_queue_index.erl"},{line,989}]},
                    {rabbit_queue_index,recover_journal,1,
                        [{file,"src/rabbit_queue_index.erl"},{line,856}]},
                    {rabbit_queue_index,scan_segments,3,
                        [{file,"src/rabbit_queue_index.erl"},{line,676}]},
                    {rabbit_queue_index,queue_index_walker_reader,2,
                        [{file,"src/rabbit_queue_index.erl"},{line,664}]}]},
                  {gen_server2,call,[<0.266.0>,out,infinity]}},
                 {child,undefined,msg_store_persistent,
                     {rabbit_msg_store,start_link,
                         [msg_store_persistent,
                          "/var/lib/rabbitmq/mnesia/rabbit@gitlab",[],
                          {#Fun<rabbit_queue_index.2.103862237>,
                           {start,
                               [{resource,<<"yun">>,queue,
                                    <<"com.yun.app.api.internal.AppUserEvents:1.0.1:app-server">>},
                                {resource,<<"/">>,queue,
                                    <<"com.yun.kcbp.finance.api.TicketService:1.0.1">>},
                                {resource,<<"yun">>,queue,
                                    <<"com.yun.park.api.internal.ParkRecordEvents:1.0.1:park-server">>},
                                {resource,<<"yun">>,queue,
                                    <<"com.yun.park.api.internal.ParkBusinessEvents:1.0.1:app-server">>},
                                {resource,<<"yun">>,queue,
                                    <<"com.yun.park.api.internal.ParkRecordEvents:1.0.1:monitor-server">>},
                                {resource,<<"yun">>,queue,
                                    <<"com.yun.sys.api.internal.SysLogEvents:1.0.1:sys-server">>},
                                {resource,<<"yun">>,queue,
                                    <<"com.yun.park.api.internal.ParkRecordEvents:1.0.1:app-server">>}]}}]},
                     transient,30000,worker,
                     [rabbit_msg_store]}}}},
        [{rabbit_variable_queue,start_msg_store,2,
             [{file,"src/rabbit_variable_queue.erl"},{line,454}]},
         {rabbit_variable_queue,start,1,
             [{file,"src/rabbit_variable_queue.erl"},{line,436}]},
         {rabbit_priority_queue,start,1,
             [{file,"src/rabbit_priority_queue.erl"},{line,92}]},
         {rabbit_amqqueue,recover,0,
             [{file,"src/rabbit_amqqueue.erl"},{line,239}]},
         {rabbit,recover,0,[{file,"src/rabbit.erl"},{line,652}]},
         {rabbit_boot_steps,'-run_step/2-lc$^1/1-1-',1,
             [{file,"src/rabbit_boot_steps.erl"},{line,49}]},
         {rabbit_boot_steps,run_step,2,
             [{file,"src/rabbit_boot_steps.erl"},{line,49}]},
         {rabbit_boot_steps,'-run_boot_steps/1-lc$^0/1-0-',1,
             [{file,"src/rabbit_boot_steps.erl"},{line,26}]}]}}

Log files (may contain more information):
   /var/log/rabbitmq/rabbit@gitlab.log
   /var/log/rabbitmq/rabbit@gitlab-sasl.log

最终办法

  • 搜索百度、google无果
  • 仔细看日志内容,发现应该是mq启动时候,恢复队列内容数据时候发生了错误
  • 可能是由于磁盘满了,队列数据写磁盘时候发生日常,导致数据文件格式错误了
  • 进入 cd /var/lib/rabbitmq/mnesia/rabbit@gitlab/queues
  • 该目录是存放队列的数据文件的地方
  • 找到子目录中的数据文件,把可能损坏的文件删除。(或者全部删掉,不过这些队列中的数据就丢失了)
  • 然后重启,就正常了
  • service rabbitmq-server start

PS:还好只是测试服务器,数据丢掉点问题不大。

© 著作权归作者所有

共有 人打赏支持
Jason_hu
粉丝 8
博文 19
码字总数 8642
作品 0
浦东
私信 提问
RabbitMQ入门之安装配置与简单实例

简介 由于某些原因,今天接触了一下一个新的东西RabbitMQ( http://www.rabbitmq.com/)总的来说给人的感觉就是安装简单方便,同时功能强大。而且官网也给出了几个相当实用的例子,不管关于消...

墨鱼ID
2012/08/08
0
5
配置RabbitMQ默认群集模式

RabbitMQ是什么? MQ(Msaaage Queue,消息队列)是一种应用程序对应用程序的通信方式。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无须专用链接来连接它们。消息传递指...

cchenyz
07/31
0
0
高可用RabbitMQ安装及使用 

高可用RabbitMQ安装及使用 引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消...

DemonsI
08/20
0
0
RabbitMQ 安装使用及集群架设

Ubuntu 系统安装 RabbitMQ 写在前面 链接rabbitMQ官网 php教程。PHP-RabbitMQ 1.关于RabbitMQ安装  由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlang,执行命令: sudo...

青瓶冷水
08/02
0
0
RabbitMQ学习系列(六): RabbitMQ 高可用集群

前面讲过一些RabbitMQ的安装和用法,也说了说RabbitMQ在一般的业务场景下如何使用。不知道的可以看我前面的博客,http://www.cnblogs.com/zhangweizhong/category/855479.html 本来一直想写一...

andrewniu
05/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

docker部署springboot项目

安装docker 菜鸟教程 springboot项目 maven依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001......

yimingkeji
今天
10
0
ios多个target

1.建立3个target,分别为heroone,heroone test,heroone dev;分别为正式环境,test环境,dev环境 2.注意取消掉autocreate以防止名字不对,分别以Duplicate的方式建立另外两个scheme 3.创建...

HeroHY
今天
5
0
php获取客户端IP

php获取客户端IP 首先先阅读关于IP真实性安全的文章:如何正確的取得使用者 IP? 「任何從客戶端取得的資料都是不可信任的!」 HTTP_CLIENT_IP头是有的,但未成标准,不一定服务器都实现。 ...

DrChenXX
昨天
0
0
. The valid characters are defined in RFC 7230 and RFC 问题

通过这里的回答,我们可以知道: Tomcat在 7.0.73, 8.0.39, 8.5.7 版本后,添加了对于http头的验证。 具体来说,就是添加了些规则去限制HTTP头的规范性 参考这里 具体来说: org.apache.tom...

west_coast
昨天
1
0
刷leetcode第704题-二分查找

今天双十一买的算法书到货了,路上刷到有人说的这个题,借(chao)鉴(xi)一下别人的思路,这个是C++标准库里面的经典方法,思路精巧,优雅好品味 int search(int* nums, int numsSize, in...

锟斤拷烫烫烫
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部