MongoDB 备份和还原
创建备份
在本章中,我们将看到如何在MongoDB中创建备份。
转储MongoDB数据
要在MongoDB中创建数据库备份,应使用mongodump命令。此命令会将服务器的全部数据转储到转储目录中。您可以通过许多选项来限制数据量或创建远程服务器的备份。
语法
mongodump命令的基本语法如下-
>mongodump
例
启动您的mongod服务器。假设您的mongod服务器在本地主机和端口27017上运行,请打开命令提示符并转到mongodb实例的bin目录,然后键入命令mongodump。
>mongodump
例
该命令将连接到运行于127.0.0.1和端口27017的服务器,并将服务器的所有数据返回到当前目录/dump/。以下是命令的输出-
2020-08-31T14:05:46.280+0800 writing admin.system.version to dump\admin\system.version.bson
2020-08-31T14:05:46.499+0800 done dumping admin.system.version (1 document)
2020-08-31T14:05:46.500+0800 writing my_db.people to dump\my_db\people.bson
2020-08-31T14:05:46.505+0800 done dumping my_db.people (2 documents)
以下是可与mongodump命令一起使用的可用选项的列表。
| 语法 | 描述 | 例子 |
|---|---|---|
| mongodump /host HOST_NAME /port PORT_NUMBER | 该命令将备份指定mongod实例的所有数据库。 | mongodump /host jc2182.com /port 27017 |
| mongodump /db:DB_NAME --out BACKUP_DIRECTORY | 此命令将仅备份指定路径上的指定数据库。 | mongodump /db:mydb /out /data/backup/ |
| mongodump /collection:COLLECTION_NAME /db:DB_NAME | 此命令将仅备份指定数据库的指定集合。 | mongodump /collection:mycol /db:test |
恢复数据
要还原备份数据,请使用MongoDB的mongorestore命令。此命令从备份目录还原所有数据。
mongorestore命令的基本语法是-
>mongorestore
以下是命令的输出-
2020-08-31T14:33:32.999+0800 using default 'dump' directory # 默认使用当前文件夹dump下面的数据来进行还原
2020-08-31T14:33:33.058+0800 preparing collections to restore from
2020-08-31T14:33:33.061+0800 restoring to existing collection my_db.people without dropping
2020-08-31T14:33:33.061+0800 reading metadata for my_db.people from dump\my_db\people.metadata.json
2020-08-31T14:33:33.062+0800 restoring my_db.people from dump\my_db\people.bson
2020-08-31T14:33:33.073+0800 continuing through error: E11000 duplicate key error collection: my_db.people index: _id_ dup key: { _id: ObjectId('5f437edfd1b84f3c344ea558') }
2020-08-31T14:33:33.073+0800 continuing through error: E11000 duplicate key error collection: my_db.people index: _id_ dup key: { _id: ObjectId('5f438082d1b84f3c344ea559') }
2020-08-31T14:33:33.074+0800 no indexes to restore
2020-08-31T14:33:33.074+0800 finished restoring my_db.people (0 documents, 2 failures)
2020-08-31T14:33:33.074+0800 0 document(s) restored successfully. 2 document(s) failed to restore.
提示:使用命令的 --help 选项来查看使用帮助。