当前位置: 首页 > news >正文

[学习笔记]Rocket.Chat业务数据备份

Rocket.Chat 的业务数据主要存储于mongodb数据库的rocketchat库中,聊天中通过发送文件功能产生的文件储存于/app/uploads中(文件方式设置为"FileSystem"),因此在对Rocket.Chat做数据移动或备份主要分为两步,数据库备份和文件备份。

前提

已在本地或docker中部署完成Rocket.Chat服务,部署方法请查看[学习笔记] Rocket.Chat 安装与设置启动项。

使用docker-compose方式部署时

  • 确保mongodb暴露了端口以供宿主机访问。
  • 确保宿主机的目录映射至rocketchat服务的/app/uploads目录,此目录应在后台管理已正确设置
    在这里插入图片描述

docker-compose.yml文档中rocketchat和mongo部分的内容应如下

rocketchat:...volumes:- ./uploads:/app/uploads
 mongo:...volumes:- ./data/db:/data/db- ./data/dump:/dumpports:- 27017:27017

准备工作

我们可以在服务宿主机中执行备份(本地备份),或者在远程计算机中执行备份(异地备份)

安装 mongodb-org-tools 工具,我们要用的是数据库备份mongodump和以及恢复mongorestore工具
详情请查看官网或教程

cd /etc/yum.repos.d
nano  mongodb-org-4.0.repo
[mongodb]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
gpgcheck=0
enabled=1

运行安装命令

yum install mongodb-org-tools

备份

数据库备份
运行下列命令进行备份

mongodump -d="rocketchat" --gzip -o "/home/xamarin/dump"     

等待备份完成,打印如下

2023-02-21T03:07:23.140+0000    writing rocketchat.users to 
2023-02-21T03:07:23.140+0000    writing rocketchat.rocketchat_statistics to 
2023-02-21T03:07:23.141+0000    writing rocketchat.rocketchat_cron_history to 
2023-02-21T03:07:23.141+0000    writing rocketchat.rocketchat_message to 
2023-02-21T03:07:24.980+0000    [........................]                    rocketchat.users  101/10594  (1.0%)
2023-02-21T03:07:24.980+0000    [#.......................]    rocketchat.rocketchat_statistics   101/1791  (5.6%)
2023-02-21T03:07:24.980+0000    [#.......................]       rocketchat.rocketchat_message   101/1363  (7.4%)
2023-02-21T03:07:24.980+0000    [#.......................]  rocketchat.rocketchat_cron_history   101/1549  (6.5%)
2023-02-21T03:07:24.980+0000
2023-02-21T03:07:25.059+0000    [########################]  rocketchat.rocketchat_message  1363/1363  (100.0%)
2023-02-21T03:07:25.059+0000    done dumping rocketchat.rocketchat_message (1363 documents)

此时备份文件将在/home/xamarin/dump目录下

在异地备份时可以使用-h-port指定服务器地址

mongodump -h="<数据库服务器地址>" --port="27017" -d="rocketchat" --gzip -o "/home/xamarin/dump"     

文件备份
前往已映射到宿主机的uploads所在目录,此处以/home/xamarin为例

cd /home/xamarin

添加压缩文件和快照文件,并保存在/home/xamarin/backups

tar -g /home/xamarin/uploads-snapshot -zcvf /home/xamarin/uploads-full.tar.gz  /home/xamarin/backups/uploads/

在这里插入图片描述

还原

数据库还原
运行如下命令进行mongodb数据库还原

mongorestore --gzip --drop --dir="/home/xamarin/backups/mongodb/dump/gzip/"

在异地还原时可以使用 -h-port指定服务器地址

mongorestore  -h="<数据库服务器地址>" --port="27017"  --gzip --drop --dir="/home/xamarin/backups/mongodb/dump/gzip/" 

文件还原
前往uploads-full.tar.gz备份文件所在目录

cd /home/xamarin/backups/uploads/

运行解压缩文件

tar -g uploads-snapshot -zxvf uploads-full.tar.gz -C /home/xamarin

打开Web端,观察到业务数据已悉数恢复
在这里插入图片描述

Troubleshooting

在还原过程中若出现Unrecognized field 'snapshot'字样如下

2023-02-21T14:06:07.022+0800    Failed: error writing data for collection `rocketchat.users` to disk: error reading collection: Failed to parse: { find: "users", skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "rocketchat" }. Unrecognized field 'snapshot'.

请确保备份和还原的工具版本一致,使用--version参数查看 mongodumpmongorestore版本

mongodump --version
http://www.lryc.cn/news/15276.html

相关文章:

  • 【ZOJ 1090】The Circumference of the Circle 题解(海伦公式+正弦定理推论)
  • 【go】slice原理
  • 【数据库】MySQL概念知识语法-基础篇(DQL),真的很详细,一篇文章你就会了
  • 博客界的至高神:属于自己的WordPress网站,你值得拥有!
  • 操作系统(day13)-- 虚拟内存;页面分配策略
  • SQL零基础入门学习(四)
  • 19岁就患老年痴呆!这些前兆别忽视!
  • 【C++】thread|mutex|atomic|condition_variable
  • 学成在线项目笔记
  • FreeRTOS队列
  • rancher2安装nfs-subdir-external-provisioner为PVC/PV动态提供存储空间(动态分配卷)
  • 1.JAVA-JDK安装
  • Java必备小知识点4——数据类型、数组、位运算符
  • 麦克风分类汇总
  • 九龙证券|机制改革激发转融券活力 全面注册制释放两融展业新空间
  • 6——JVM调优工具详解及调优实战
  • AcWing语法基础课笔记 第八章 C++ STL 第九章 位运算与常用库函数
  • Qt中的多线程
  • React-Hooks怎样封装防抖和节流-面试真题
  • 算法训练营 day51 动态规划 打家劫舍系列
  • 【蓝桥集训】第六天——递归
  • react源码中的hooks
  • 038.Solidity入门——25调用其他合约的方法
  • Revit项目浏览器的标准设置应用和快速视图样板?
  • 安装MQTT Server遇到报错“cannot verify mosquitto.org‘s certificate”,该如何解决?
  • 程序员如何向架构师转型?看完就明白该怎么做了
  • Flask入门(9):蓝图
  • 跑步戴哪种耳机好,最适合运动跑步的蓝牙耳机
  • 微信小程序实现瀑布流布局
  • 2023最新网络工程师HCIA-Datacom“1000”道题库,光速刷题拿证