我应该使用什么命令来创建我的数据库的MongoDB转储?
当前回答
或者你可以在Windows上做备份脚本,记得将Winrar添加到%PATH%
bin\mongodump --db=COL1 -o D:\BACK\COL1
rar.exe a -ep1 -r COL1.rar COL1
rename COL1.rar "COL1_%date:~10,4%_%date:~7,2%_%date:~4,2%_%time:~0,2%_%time:~3,2%.rar"
#rmdir /s /q COL1 -> don;t run this on your mongodb/ dir !!!!!
其他回答
Mongo转储和恢复与uri到本地
mongodump --uri "mongodb://USERNAME:PASSWORD@IP_OR_URL:PORT/DB_NAME" --collection COLLECTION_NAME -o LOCAL_URL
省略——collection COLLECTION_NAME将转储整个DB。
如果数据库在本地系统中。然后您可以键入下面的命令。 Linux终端
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
如果数据库有用户名和密码,那么你可以使用下面的代码。
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
这在我的Linux终端上运行得非常好。
cmd - - - >
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
定时备份/恢复Mongodb。
备份:
sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`
——db参数作为数据库名
输出路径的——out参数
恢复:
sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/
——drop参数用于在恢复前删除数据库
时间:
您可以使用crontab进行定时备份:
sudo crontab -e
它以编辑器打开(例如:纳米)
3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`
每天凌晨03:03备份
根据您的MongoDB数据库大小,您可能很快就会耗尽磁盘 备份太多的空间。这就是为什么也建议清洗 定期或压缩旧备份。例如,删除 所有超过7天的备份都可以使用下面的bash 命令:
3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;
删除超过7天的所有备份
祝你好运。
裁判: https://www.digitalocean.com/community/tutorials/how-to-back-up-restore-and-migrate-a-mongodb-database-on-ubuntu-14-04
你也可以使用gzip备份一个集合,并在运行中压缩备份:
mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz
或者在文件名中加上日期:
mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz
更新: 在date文件夹中备份数据库的所有集合。文件被gzip压缩:
mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`
或者对于单个存档:
mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
或者mongodb在docker内部运行时:
docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
推荐文章
- 什么是分片,为什么它很重要?
- 在mongodb中存储日期/时间的最佳方法
- 数据库触发器是必要的吗?
- 如何排序mongodb与pymongo
- 如何在mongodb上导入。bson文件格式
- 为什么我应该使用基于文档的数据库而不是关系数据库?
- 哪个更快/最好?SELECT *或SELECT columnn1, colum2, column3等
- 将值从同一表中的一列复制到另一列
- 什么是数据库池?
- 关于数据库,每个开发人员应该知道些什么?
- JSON文件的蒙古导入
- "where 1=1"语句
- 是使用各有一个模式的多个数据库更好,还是使用一个数据库有多个模式更好?
- 如何从Oracle的表中获取列名?
- 如何删除mongodb中的数组元素?