mongodb备份与恢复

备份

该例子基于以下条件:
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

注:

  1. 使用–drop选项,可以在恢复数据之前先丢弃现有的数据,最终备份数据将替换现有的数据。如果不使用,被恢复的数据将追加到每个集合的尾部,这将导致出现重复的数据。
  2. 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

你可能感兴趣的:(mongoDB)