非Snap/Docker部署的RocketChat 3.0.6升级及数据迁移咨询
RocketChat 升级与数据迁移方案
1. 数据备份与恢复方法
备份流程
- 停止相关服务:避免备份过程中数据写入导致不一致
sudo systemctl stop rocketchat sudo systemctl stop mongod - 备份MongoDB数据:因根目录空间不足,指定备份目录到挂载盘
sudo mkdir -p /mnt/vdb/backup/rocketchat_mongo sudo mongodump --dbpath /mnt/vdb/mongodb/ --out /mnt/vdb/backup/rocketchat_mongo/$(date +%Y%m%d_%H%M) - 备份配置与代码:用于回滚场景
sudo cp /lib/systemd/system/rocketchat.service /mnt/vdb/backup/ sudo tar -czf /mnt/vdb/backup/rocketchat_code_$(date +%Y%m%d_%H%M).tar.gz /opt/Rocket.Chat - 恢复服务运行
sudo systemctl start mongod sudo systemctl start rocketchat
恢复流程
- 停止服务
sudo systemctl stop rocketchat sudo systemctl stop mongod - 恢复MongoDB数据:替换
[备份目录]为实际备份路径sudo rm -rf /mnt/vdb/mongodb/* sudo mongorestore --dbpath /mnt/vdb/mongodb/ --dir [备份目录]/rocketchat sudo mongorestore --dbpath /mnt/vdb/mongodb/ --dir [备份目录]/local - 恢复代码与配置(回滚用)
sudo rm -rf /opt/Rocket.Chat sudo tar -xzf /mnt/vdb/backup/rocketchat_code_[日期].tar.gz -C / sudo cp /mnt/vdb/backup/rocketchat.service /lib/systemd/system/ - 修复权限并启动服务
sudo chown -R mongodb:mongodb /mnt/vdb/mongodb/ sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat sudo systemctl start mongod sudo systemctl start rocketchat
2. 源码部署版本升级步骤
跨版本过大必须逐步升级,建议路径:3.0.6 → 3.18.x(3.x最终稳定版) → 4.8.x(4.x最终稳定版) → 5.4.x(5.x最终稳定版) → 最新LTS版
前置准备
- 完成全量备份,确保可回滚
- 升级NodeJS:新版本需Node 14.x/16.x,替换旧版本
sudo apt remove nodejs -y curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install nodejs -y - 升级MongoDB:原4.0的mmapv1引擎已弃用,需升级到4.4并转换为WiredTiger
- 先升级MongoDB到4.2,再到4.4,每步启动后执行
db.adminCommand({ setFeatureCompatibilityVersion: "对应版本号" }) - 停止MongoDB,修改
mongod.conf添加storage.engine: wiredTiger,重启后自动完成引擎转换
- 先升级MongoDB到4.2,再到4.4,每步启动后执行
逐步升级RocketChat
- 升级到3.18.x
启动后访问后台确认功能正常,再进行下一版本升级sudo systemctl stop rocketchat cd /opt/Rocket.Chat sudo git fetch sudo git checkout 3.18.12 sudo npm install --production sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat sudo systemctl start rocketchat - 重复上述步骤,依次升级到4.8.x、5.4.x,最后到最新LTS版本,每个版本均需验证服务状态
- 升级完成后检查systemd服务的
ExecStart路径,确保指向新安装的Node二进制文件
3. 迁移到Snap部署版本的步骤
前置准备
- 完成全量数据备份
- 卸载旧源码部署:
sudo systemctl stop rocketchat sudo systemctl disable rocketchat sudo rm /lib/systemd/system/rocketchat.service sudo rm -rf /opt/Rocket.Chat
安装Snap版RocketChat
sudo snap install rocketchat-server
迁移MongoDB数据
- 停止Snap的Mongo服务:
sudo snap stop rocketchat-server.mongodb - 清空默认数据目录:
sudo rm -rf /var/snap/rocketchat-server/common/db/* - 恢复备份数据:
sudo mongorestore --dbpath /var/snap/rocketchat-server/common/db/ --dir [备份目录]/rocketchat sudo mongorestore --dbpath /var/snap/rocketchat-server/common/db/ --dir [备份目录]/local - 修复权限:
sudo chown -R snap_daemon:snap_daemon /var/snap/rocketchat-server/common/db/
配置Snap版服务
- 设置环境变量匹配原配置:
sudo snap set rocketchat-server root-url=https://rocketchat.myexampledomain.com/ sudo snap set rocketchat-server port=3456 - 启动服务:
sudo snap start rocketchat-server - 调整Nginx反向代理配置,确保指向Snap版服务端口,LE证书保持原有配置即可
内容的提问来源于stack exchange,提问作者trogwar
相关产品推荐
相关产品推荐

