A服务器备份rabbitmq持久化目录到B服务器,不显示mq队列消息

场景:在A服务器上docker启动mq服务,在mq服务器上恢复服务,结果队列消息丢失问题

1.备份持久化文件

docker inspect 容器id

bash 复制代码
      "Mounts": [
            {
                "Type": "bind",
                "Source": "/data/containers/rabbitmq/data",
                "Destination": "/var/lib/rabbitmq",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
bash 复制代码
# 使用tar压缩文件
tar -zcvf rabbitmq.tar.gz /data/containers/rabbitmq/data

将压缩文件发送到备用服务器103

2.新服务器启动mq服务

1.解压文件

解压文件到当前文件夹

bash 复制代码
tar -xzvf rabbitmq.tar.gz

查看文件

bash 复制代码
(base) [root@centos-3 rabbitmq]# ls
config  data  docker-compose.yml

docker-compose文件内容如下

bash 复制代码
services:
  rabbitmq:
    container_name: rabbitmq
    image: registry.cn-hangzhou.aliyuncs.com/spider_tie/rabbitmq:3.7
    restart: always
    ulimits:
      nofile:
        soft: 65536
        hard: 65536
    environment:
      - TZ=Asia/Shanghai
      - RABBITMQ_DEFAULT_USER=rbadmin
      - RABBITMQ_DEFAULT_PASS=OpsXlab2024!i
    volumes:
      - ./data:/var/lib/rabbitmq
    networks:
      - app-tier
        #ipv4_address: 172.22.1.10
    ports:
      - 5672:5672
      - 15672:15672
networks:
  app-tier:
    name: app-tier
    driver: bridge
    #external: true
    # ipam:
    #  config:
    #    - subnet: 172.22.1.0/24
bash 复制代码
docker-compose up -d

web端查看服务如下,mq中没有队列消息

可以看到队列无消息,但是原来的mq服务是有消息的

2.解决消息未显示问题

需要备份hostname和cookie,要不然持久化消息无法被识别

bash 复制代码
docker exec -it f43fb7de1ba1 cat /var/lib/rabbitmq/.erlang.cookie
docker exec -it f43fb7de1ba1 hostname

例如在101上操作

bash 复制代码
[root@centos-1 mnesia]# docker exec -it f43fb7de1ba1 cat /var/lib/rabbitmq/.erlang.cookie
IHMICEQVPBXTPPFDNFTT
[root@centos-1 mnesia]# docker exec -it f43fb7de1ba1 hostname
f43fb7de1ba1

然后再备用服务器103操作

bash 复制代码
(base) [root@centos-3 rabbitmq]# docker exec -it a0dbe129970f cat /var/lib/rabbitmq/.erlang.cookie
IHMICEQVPBXTPPFDNFTT
(base) [root@centos-3 rabbitmq]# docker exec -it a0dbe129970f hostname
a0dbe129970f

docker-compose.yml文件如下

bash 复制代码
services:
  rabbitmq:
    container_name: rabbitmq
    image: registry.cn-hangzhou.aliyuncs.com/spider_tie/rabbitmq:3.7
    restart: always
    hostname: f43fb7de1ba1
    ulimits:
      nofile:
        soft: 65536
        hard: 65536
    environment:
      - TZ=Asia/Shanghai
      - RABBITMQ_DEFAULT_USER=rbadmin
      - RABBITMQ_DEFAULT_PASS=OpsXlab2024!i
      - RABBITMQ_ERLANG_COOKIE=IHMICEQVPBXTPPFDNFTT
    volumes:
      - ./data:/var/lib/rabbitmq
    networks:
      - app-tier
        #ipv4_address: 172.22.1.10
    ports:
      - 5672:5672
      - 15672:15672
networks:
  app-tier:
    name: app-tier
    driver: bridge
    #external: true
    # ipam:
    #  config:
    #    - subnet: 172.22.1.0/24

注:主要是新增hostname,RABBITMQ_ERLANG_COOKIE

修改之后重新启动查看效果

备份前

备份后

至此,问题解决

相关推荐
JZC_xiaozhong2 小时前
数据不互通、审批慢?企业多系统智能协同与流程自动化解决方案
运维·自动化·流程管理·流程自动化·数据集成与应用集成·流程监控·流程可视化设计
爱学习的小囧2 小时前
ESXi 8.0 原生支持 NVMe 固态硬盘吗?VMD 配置详解教程
linux·运维·服务器·esxi·esxi8.0
坚持就完事了3 小时前
Linux中的变量
linux·运维·服务器
hERS EOUS3 小时前
nginx 代理 redis
运维·redis·nginx
Cat_Rocky3 小时前
利用Packet Tracer网络实验
linux·运维·服务器
嵌入式×边缘AI:打怪升级日志3 小时前
Linux 驱动实战:SR501 人体红外传感器驱动开发与调试全记录
linux·运维·驱动开发
正点原子3 小时前
【正点原子Linux连载】第三章 U-Boot使用 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南
linux·运维·驱动开发
忍冬行者4 小时前
MongoDB 三节点副本集离线部署运维手册
运维·数据库·mongodb
爱学习的小囧4 小时前
ESXi VMkernel 端口 MTU 最佳设置详解
运维·服务器·网络·php·虚拟化
程序员老邢5 小时前
【技术底稿 19】Redis7 集群密码配置 + 权限锁死 + 磁盘占满连锁故障真实排查全记录
java·服务器·经验分享·redis·程序人生·微服务