Restore mongodb in a production server - WideChat/Rocket.Chat GitHub Wiki
Nightly Backups
Every night a cronjob grabs a mongodump and pushes it to an S3 bucket for backups. This is true in all of our vega and veranda environments.
MONGO_BACKUP_BUCKETS = {PROD_ACCOUNT: 'ver-prod-universe-verandamongodumpbackup',
DEV_ACCOUNT: 'ver-dev-universe-verandamongodumpbackup',
VEGA_DEV_ACCOUNT: 'vega-dev-messaging-mongobackups',
VEGA_PREPROD_ACCOUNT: 'vega-preprod-messaging-mongobackups',
VEGA_PROD_ACCOUNT: 'vega-prod-chatbot-messaging-mongobackups'}
Prerequisites
- The vega\kluster tool will facilitate running restore jobs if needed. You will need to configure it by following the
Setup
section in the README. - Our project in the tool is called
Veranda
and it is fully configured and ready to use. kluster/projects/veranda
How to restore the mongodb to a previous dump.
tl;dr
- Manually uninstall any installed Rocketchat apps on your server instance. For example, chatbot uses a Dialogflow and a Salesforce Integration app.
- Use the kluster tool to find the backup file you want to use in S3.
- Use the kluster tool to restore the db on your designated Rocketchat instance.
- Manually ssh to the primary0 of your mongodb in the cluster using
kubectl exec -it
or through Rancher. - Use the mongo cli to login to the
rocketchat
db and manually clear all the contents in the mongodb collection namedrocketchat_apps
. - Reinstall the Rocketchat apps using the kluster tool.
- Complete any manual configurations required when first setting up the apps used in our chatbot integration.