1.导出数据(需中断其他操作)
打开CMD
查看mongoexport命令
参数 | 含义 |
---|---|
-d | database 指明使用的库 |
-c | colletion 指明要导出的表(不指明则默认导出该库中所有的表(集合)) |
-o | outputfile 指明要导出的文件名 |
-csv | 制定导出的是 csv 格式 |
-q | 过滤导出 |
–type | 指定其他格式 `< json |
1.1把数据库 foobar 中的 persons文档 导出
mongoexport -d foobar -c persons -o d:/persons.json
1.2导出其他主机数据库的文档
mongoexport --host 192.168.0.16 --port 37017
2.导入数据(中断其他操作)
API参考:
http://cn.docs.mongodb.org/manual/reference/mongoimport/
2.1 向persons数据库导入persons文件
mongoimport --db persons --collection persons --file d:/persons.json
或者简写为:
mongoimport -d persons -c persons --file d:/persons.json
注:如果数据库有用户安全认证要求,则需要在后面加上参数 -u USERNAME -p PASSWORD
才可以顺利执行导入导出操作
3.运行时备份– mongodump 命令
API参考:
http://cn.docs.mongodb.org/manual/reference/mongodump/
1.1 备份127.0.0.1服务器下的27017端口的foobar数据库
mongodump --host 127.0.0.1:27017 -d foobar -o d:/foobar
日志显示:
C:\Users\dxf>mongodump -h 127.0.0.1:27017 -d persons -o d:/mongooutput
connected to: 127.0.0.1:27017
DATABASE: persons to d:/mongooutput/persons
persons.books to d:/mongooutput/persons/books.bson
200000 objects
persons.system.indexes to d:/mongooutput/persons/system.indexes.bson
10 objects
persons.map to d:/mongooutput/persons/map.bson
14 objects
persons.mycoll to d:/mongooutput/persons/mycoll.bson
4 objects
persons.fs.files to d:/mongooutput/persons/fs.files.bson
1 objects
persons.fs.chunks to d:/mongooutput/persons/fs.chunks.bson
1 objects
persons.system.js to d:/mongooutput/persons/system.js.bson
2 objects
persons.persons to d:/mongooutput/persons/persons.bson
12 objects
4.运行时恢复– mongorestore 命令应用
mongoDB可以在运行时进行备份,但同时,在缓冲池中的数据还没来得及写入数据库,就会被漏掉,后面将介绍锁的使用来避免这种数据遗漏的现象。
API参考:
http://cn.docs.mongodb.org/manual/reference/mongorestore/
4.1删除原本的数据库用刚才导出的数据库恢复
删除原本的数据库
> db.dropDatabase()
{ "dropped" : "persons", "ok" : 1 }
> show dbs
foobar 0.03125GB
local (empty)
已经没有了persons数据库
4.2 用刚才导出的数据库恢复
mongorestore --host 127.0.0.1:27017 -d foobar -directoryperdb d:/foobar/foobar
日志显示:
C:\Users\dxf>mongorestore --host 127.0.0.1:27017 -d persons -directoryperdb d:/m
ongooutput/persons
connected to: 127.0.0.1:27017
Fri Dec 09 10:55:04 d:/mongooutput/persons/books.bson
Fri Dec 09 10:55:04 going into namespace [persons.books]
1056090/11688890 9%
2036290/11688890 17%
3086090/11688890 26%
4420090/11688890 37%
5859690/11688890 50%
7818490/11688890 66%
9800890/11688890 83%
10845190/11688890 92%
200000 objects found
Fri Dec 09 10:55:30 d:/mongooutput/persons/fs.chunks.bson
Fri Dec 09 10:55:30 going into namespace [persons.fs.chunks]
1 objects found
Fri Dec 09 10:55:30 d:/mongooutput/persons/fs.files.bson
Fri Dec 09 10:55:30 going into namespace [persons.fs.files]
1 objects found
Fri Dec 09 10:55:30 d:/mongooutput/persons/map.bson
Fri Dec 09 10:55:30 going into namespace [persons.map]
14 objects found
Fri Dec 09 10:55:30 d:/mongooutput/persons/mycoll.bson
Fri Dec 09 10:55:30 going into namespace [persons.mycoll]
4 objects found
Fri Dec 09 10:55:30 d:/mongooutput/persons/persons.bson
Fri Dec 09 10:55:30 going into namespace [persons.persons]
12 objects found
Fri Dec 09 10:55:30 d:/mongooutput/persons/system.js.bson
Fri Dec 09 10:55:30 going into namespace [persons.system.js]
2 objects found
Fri Dec 09 10:55:30 d:/mongooutput/persons/system.indexes.bson
Fri Dec 09 10:55:30 going into namespace [persons.system.indexes]
Fri Dec 09 10:55:30 { key: { _id: 1 }, ns: "persons.books", name: "_id_" }
Fri Dec 09 10:55:30 { key: { number: 1.0 }, ns: "persons.books", name: "number_1
" }
Fri Dec 09 10:55:31 { key: { _id: 1 }, ns: "persons.map", name: "_id_" }
Fri Dec 09 10:55:31 { key: { gis: "2d" }, ns: "persons.map", name: "gis_", min:
-1.0, max: 201.0 }
Fri Dec 09 10:55:31 { key: { _id: 1 }, ns: "persons.fs.files", name: "_id_" }
Fri Dec 09 10:55:31 { key: { filename: 1 }, ns: "persons.fs.files", name: "filen
ame_1" }
Fri Dec 09 10:55:31 { key: { _id: 1 }, ns: "persons.fs.chunks", name: "_id_" }
Fri Dec 09 10:55:31 { key: { files_id: 1, n: 1 }, ns: "persons.fs.chunks", name:
"files_id_1_n_1" }
Fri Dec 09 10:55:31 { key: { _id: 1 }, ns: "persons.system.js", name: "_id_" }
Fri Dec 09 10:55:31 { key: { _id: 1 }, ns: "persons.persons", name: "_id_" }
10 objects found
5.懒人备份
mongoDB是文件数据库,这就可以用直接拷贝文件的方式进行备份
但是这需要停止服务器之后才能备份