zoukankan      html  css  js  c++  java
  • rabbitmq数据备份与还原

    一、场景

    现在有服务器A和服务器B ,由于业务需要,要求把服务器A上mq的数据迁移到服务器B上,rabbitmq的数据包括元数据(RabbitMQ用户、vhost、队列、交换和绑定)和消息数据,而消息数据存储在单独的消息存储库中。

    A:192.168.2.58

    B:192.168.1.60

    二、元数据备份和还原

    1、操作

    在服务B上搭建rabbitmq服务,注意,主机名最好和A上的MQ保持一致。避免后面的数据存储节点名不一致,导致启动失败

    安装过程详见:

    2、导出数据

    用管理员账号登录到A服务器上的管理后台

    http://192.168.2.58:15672,按如下所示把备份的数据下载到本地

     3、导入数据

    登录到B服务器上的MQ管理后台

    http://192.168.1.60:15672,进入如下图所示的位置,导入数据,大概10秒钟左右。

    4、验证数据

    刷新页面,查看用户、队列、vhost 等信息是否存在

     三、消息数据备份和还原

    1、确定数据目录

    登录到A服务器,执行如下命令,确定消息数据存储目:

    [root@rabbitmq-ipr-service-test opt]# rabbitmqctl eval 'rabbit_mnesia:dir().'
    "/var/lib/rabbitmq/mnesia/rabbit@rabbitmq-ipr-service-test"

    2、为避免数据的一致性,需先停掉服务

    service rabbitmq-server stop

    3、备份数据目录

    tar  -zcvf rabbit@rabbitmq-ipr-service-test.tar.gz  rabbit@rabbitmq-ipr-service-test

     4、还原数据

    登录到B服务器上,先备份原来的数据目录,上传到备份数据到对应目录,并解压

    tar  -zxvf  rabbit@rabbitmq-ipr-service-test.tar.gz 

    5、修改数据目录权限

    chown  -R rabbitmq:rabbitmq  rabbit@rabbitmq-ipr-service-test

    6、启动B服务器上rabbitmq服务

    service rabbitmq-server satrt

    7、验证消息数据是否还原成功

    四、注意

    内部节点数据库在某些记录中存储节点的名称,如果节点名称发生更改,则必须首先使用以下rabbitmqctl命令更新数据库以便更改:

    rabbitmqctl rename_cluster_node <oldnode> <newnode>

    当新节点以备份目录和匹配的节点名称启动时,它会根据需要执行升级步骤并继续引导。

  • 相关阅读:
    使用php实现权限管理模块
    在Android手机上安装linux系统
    phpexcelreader超级简单使用
    Ci框架整合smarty模板引擎
    vcastr2.0插件超级简单使用
    如何让centos6.5在vm11里上网,连接网络?
    session跨域共享解决方案
    apache的 .htaccess文件的常用配置
    webbench的详细使用
    网站的压力测试
  • 原文地址:https://www.cnblogs.com/heruiguo/p/11045288.html
Copyright © 2011-2022 走看看