外链网站推荐,wordpress安装很慢,专业的广州手机网站建设,深圳网上专业推广公司Rocket.Chat 的业务数据主要存储于mongodb数据库的rocketchat库中#xff0c;聊天中通过发送文件功能产生的文件储存于/app/uploads中#xff08;文件方式设置为FileSystem#xff09;#xff0c;因此在对Rocket.Chat做数据移动或备份主要分为两步#xff0c;…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.dnano mongodb-org-4.0.repo[mongodb]
nameMongoDB Repository
baseurlhttp://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/
gpgcheck0
enabled1运行安装命令
yum install mongodb-org-tools备份
数据库备份 运行下列命令进行备份
mongodump -drocketchat --gzip -o /home/xamarin/dump 等待备份完成打印如下
2023-02-21T03:07:23.1400000 writing rocketchat.users to
2023-02-21T03:07:23.1400000 writing rocketchat.rocketchat_statistics to
2023-02-21T03:07:23.1410000 writing rocketchat.rocketchat_cron_history to
2023-02-21T03:07:23.1410000 writing rocketchat.rocketchat_message to
2023-02-21T03:07:24.9800000 [........................] rocketchat.users 101/10594 (1.0%)
2023-02-21T03:07:24.9800000 [#.......................] rocketchat.rocketchat_statistics 101/1791 (5.6%)
2023-02-21T03:07:24.9800000 [#.......................] rocketchat.rocketchat_message 101/1363 (7.4%)
2023-02-21T03:07:24.9800000 [#.......................] rocketchat.rocketchat_cron_history 101/1549 (6.5%)
2023-02-21T03:07:24.9800000
2023-02-21T03:07:25.0590000 [########################] rocketchat.rocketchat_message 1363/1363 (100.0%)
2023-02-21T03:07:25.0590000 done dumping rocketchat.rocketchat_message (1363 documents)此时备份文件将在/home/xamarin/dump目录下
在异地备份时可以使用-h 和 -port指定服务器地址
mongodump -h数据库服务器地址 --port27017 -drocketchat --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数据库服务器地址 --port27017 --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.0220800 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参数查看 mongodump 或 mongorestore版本
mongodump --version