湖南建設(shè)廳網(wǎng)站不良記錄數(shù)據(jù)分析師資格證書怎么考
Rocket.Chat 的業(yè)務(wù)數(shù)據(jù)主要存儲(chǔ)于mongodb數(shù)據(jù)庫的rocketchat
庫中,聊天中通過發(fā)送文件功能產(chǎn)生的文件儲(chǔ)存于/app/uploads
中(文件方式設(shè)置為"FileSystem"
),因此在對(duì)Rocket.Chat做數(shù)據(jù)移動(dòng)或備份主要分為兩步,數(shù)據(jù)庫備份和文件備份。
前提
已在本地或docker中部署完成Rocket.Chat服務(wù),部署方法請(qǐng)查看[學(xué)習(xí)筆記] Rocket.Chat 安裝與設(shè)置啟動(dòng)項(xiàng)。
使用docker-compose方式部署時(shí)
- 確保mongodb暴露了端口以供宿主機(jī)訪問。
- 確保宿主機(jī)的目錄映射至rocketchat服務(wù)的
/app/uploads
目錄,此目錄應(yīng)在后臺(tái)管理已正確設(shè)置
docker-compose.yml
文檔中rocketchat和mongo部分的內(nèi)容應(yīng)如下
rocketchat:...volumes:- ./uploads:/app/uploads
mongo:...volumes:- ./data/db:/data/db- ./data/dump:/dumpports:- 27017:27017
準(zhǔn)備工作
我們可以在服務(wù)宿主機(jī)中執(zhí)行備份(本地備份),或者在遠(yuǎn)程計(jì)算機(jī)中執(zhí)行備份(異地備份)
安裝 mongodb-org-tools
工具,我們要用的是數(shù)據(jù)庫備份mongodump
和以及恢復(fù)mongorestore
工具
詳情請(qǐng)查看官網(wǎng)或教程
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
運(yùn)行安裝命令
yum install mongodb-org-tools
備份
數(shù)據(jù)庫備份
運(yùn)行下列命令進(jìn)行備份
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)
此時(shí)備份文件將在/home/xamarin/dump
目錄下
在異地備份時(shí)可以使用-h
和 -port
指定服務(wù)器地址
mongodump -h="<數(shù)據(jù)庫服務(wù)器地址>" --port="27017" -d="rocketchat" --gzip -o "/home/xamarin/dump"
文件備份
前往已映射到宿主機(jī)的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/
還原
數(shù)據(jù)庫還原
運(yùn)行如下命令進(jìn)行mongodb數(shù)據(jù)庫還原
mongorestore --gzip --drop --dir="/home/xamarin/backups/mongodb/dump/gzip/"
在異地還原時(shí)可以使用 -h
和 -port
指定服務(wù)器地址
mongorestore -h="<數(shù)據(jù)庫服務(wù)器地址>" --port="27017" --gzip --drop --dir="/home/xamarin/backups/mongodb/dump/gzip/"
文件還原
前往uploads-full.tar.gz
備份文件所在目錄
cd /home/xamarin/backups/uploads/
運(yùn)行解壓縮文件
tar -g uploads-snapshot -zxvf uploads-full.tar.gz -C /home/xamarin
打開Web端,觀察到業(yè)務(wù)數(shù)據(jù)已悉數(shù)恢復(fù)
Troubleshooting
在還原過程中若出現(xiàn)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'.
請(qǐng)確保備份和還原的工具版本一致,使用--version
參數(shù)查看 mongodump
或 mongorestore
版本
mongodump --version