备份
该例子基于以下条件:
1. mongodb服务器运行在当前登录的机器
2. 磁盘空间足够大,备份的文件最大可能与数据一样大
cd ~
mkdir testmongobackup
cd testmongobackup
mongodump
2016-12-25T18:37:36.378+0800 writing admin.system.users to
2016-12-25T18:37:36.386+0800 done dumping admin.system.users (1 document)
2016-12-25T18:37:36.387+0800 writing admin.system.version to
2016-12-25T18:37:36.389+0800 done dumping admin.system.version (2 documents)
2016-12-25T18:37:36.389+0800 writing media.media to
2016-12-25T18:37:36.390+0800 done dumping media.media (3 documents)
数据库备份到testmongobackup文件夹下
[mongo@mongo testmongobackup]$ find ./
./
./dump
./dump/media
./dump/media/media.metadata.json
./dump/media/media.bson
./dump/admin
./dump/admin/system.users.metadata.json
./dump/admin/system.version.metadata.json
./dump/admin/system.users.bson
./dump/admin/system.version.bson
恢复
cd ~/testmongobackup
mongorestore --drop
2016-12-25T18:57:39.008+0800 using default 'dump' directory
2016-12-25T18:57:39.008+0800 preparing collections to restore from
2016-12-25T18:57:39.019+0800 reading metadata for media.media from dump/media/media.metadata.json
2016-12-25T18:57:39.035+0800 restoring media.media from dump/media/media.bson
2016-12-25T18:57:39.038+0800 no indexes to restore
2016-12-25T18:57:39.038+0800 finished restoring media.media (3 documents)
2016-12-25T18:57:39.038+0800 restoring users from dump/admin/system.users.bson
2016-12-25T18:57:39.056+0800 done
注:
- 使用–drop选项,可以在恢复数据之前先丢弃现有的数据,最终备份数据将替换现有的数据。如果不使用,被恢复的数据将追加到每个集合的尾部,这将导致出现重复的数据。
- mongodump工具在写入备份文件之前,不会清空输出目录中的内容。
备份或恢复单个数据库
mongodump -d databasse_name
mongorestore -d databasse_name --drop
备份或恢复单个集合
mongodump -d database_name -c collection_name
mongorestore -d databasse_name -c collection_name --drop
深入学习
mongodump --help
mongorestore --help