Ubuntu 上 RabbitMQ 的备份与恢复
一 核心原则与准备
rabbitmq-diagnostics -q log_location 查看)。rabbitmqctl rename_cluster_node oldnode newnode。二 备份步骤
sudo rabbitmqctl export_definitions /path/definitions.jsonsudo rabbitmqctl eval 'rabbit_mnesia:dir().'(返回如 /var/lib/rabbitmq/mnesia/rabbit@host)sudo systemctl stop rabbitmq-serversudo tar czf rabbitmq-mnesia-$(date +%F).tar.gz -C /var/lib/rabbitmq/mnesia/ rabbit@hostsudo systemctl start rabbitmq-serverrsync -av --delete /backup/ user@backup-host:/backup/)。三 恢复步骤
sudo rabbitmqctl stop_appsudo rabbitmqctl import_definitions /path/definitions.jsonsudo rabbitmqctl start_appsudo systemctl stop rabbitmq-serversudo mv /var/lib/rabbitmq/mnesia /var/lib/rabbitmq/mnesia.bak_$(date +%F)sudo tar xzf rabbitmq-mnesia-2025-11-29.tar.gz -C /var/lib/rabbitmq/mnesia/sudo chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/mnesia/rabbit@hostsudo systemctl start rabbitmq-serverrabbitmqctl status、rabbitmqctl cluster_status、管理界面核对队列与消息。sudo rabbitmqctl rename_cluster_node oldnode newnode四 常见场景与注意事项
sudo rabbitmqctl forget_cluster_node <failed-node>sudo systemctl restart rabbitmq-serversudo rabbitmqctl stop_app && sudo rabbitmqctl reset && sudo rabbitmqctl join_cluster <peer-node> && sudo rabbitmqctl start_app