понедельник, 3 августа 2015 г.

Хозяйке на заметку: Восстанавливаем RabbitMQ после некорректного выключения

Дано: нода с RabbitMQ, которую крайне неаккуратно потушили. Нода не стартует, на любые попытки стартовать выдаёт нечто невразумительное вроде:

[root@rabbitmq4 ~]# rabbitmqctl status
Status of node rabbit@rabbitmq4 ...
Error: unable to connect to node rabbit@rabbitmq4: nodedown

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

attempted to contact: [rabbit@rabbitmq4]

rabbit@rabbitmq4:
  * connected to epmd (port 4369) on rabbitmq4
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on rabbitmq4
  * suggestion: start the node
И тому подобное. В логах в лучшем случае будет что-то типа:
Crash dump was written to: erl_crash.dump
init terminating in do_boot (timeout_waiting_for_tables)
При этом никакой rabbitmqctl force_boot и тому подобное не поможет. Делаем следующее. Идём в /var/lib/rabbitmq/mnesia и копируем базу оттуда в сухое, тёплое место. Старую базу в mnesia/ удаляем. Далее, выполняем: service rabbitmq-server restart. Именно перезапуск, а не старт и не останов. Иначе не поднимается демон. Далее, проверяем ps-ом, что кролик стартанул. После чего делаем: systemctl rabbitmq-server stop. Далее, возвращаем базу на место, удалив то, что RabbitMQ сгенерил в каталоге mnesia/ при повторном перезапуске. Далее, как обычно: service rabbitmq-server start. Если всё сделано верно, то нода в рабочем состоянии появится в management-консоли.

Комментариев нет:

Отправить комментарий