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>

當新節點以備份目錄和匹配的節點名稱啟動時,它會根據需要執行升級步驟並繼續引導。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM