MongoDB迁移备份还原小坑

本文介绍了如何使用mongodump和mongorestore命令进行MongoDB数据库的备份和恢复操作,包括正确参数的使用方法。在实践中,由于导出目录设置不准确导致了恢复错误,提醒用户注意备份文件的实际位置。恢复数据库时,由于重建索引和缓存加载,初期查询效率可能会降低。此外,恢复后的数据库占用空间可能小于原数据库,因为已删除数据的物理文件并未清除。
摘要由CSDN通过智能技术生成

执行备份库

mongodump --db 库名称 --out 备份存放路径

执行恢复库

mongorestore --db 库名称 备份存放路径

实例

导出数据

mongodump --host 192.168.1.1 --port 27020 --username root --password mypwd --authenticationDatabase admin --db user-data --out /home/user-data

导入数据

mongorestore --host 192.168.2.2 --port 27019 --username root --password mypwd --authenticationDatabase admin --db user-data --dir /home/user-data

报错

2021-10-11T18:42:28.495+0800    the --db and --collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use --nsInclude instead
2021-10-11T18:42:28.496+0800    building a list of collections to restore from /home/user-data dir
2021-10-11T18:42:28.496+0800    don't know what to do with subdirectory "user-data/user-data", skipping...
2021-10-11T18:42:28.496+0800    done 

原因

导出数据时,参数 –out /home/user-data 是父文件夹的名字,
实际导出的文件在 /home/user-data/user-data之中,
所以导入时,参数应为 –dir /home/user-data/user-data

总结

  • mongodump中参数 –out 是父文件夹名
  • mongorestore中参数 –dir 需要指定到数据库文件夹
  • 数据的备份消耗的时间,小于数据的恢复时间。数据恢复时需要对数据重新建立索引。
  • 恢复的数据库占用的磁盘可能更小,因为在数据库层面,表中删除的数据,其物理文件并未删除,只是查询时不可见。备份时不会备份这些文件。
  • 刚恢复的数据库查询效率较低,因为数据未加载入缓存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值