MongoDB基础之八 备份与恢复
Posted chinesern
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB基础之八 备份与恢复相关的知识,希望对你有一定的参考价值。
Mongodb导出与导入
1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.
所以,都有如下通用选项:
-h host 主机
--port port 端口
-u username 用户名
-p passwd 密码
2: mongoexport 导出json格式的文件
问: 导出哪个库,哪张表,哪几列,哪几行?
-d 库名
-c 表名
-f field1,field2...列名
-q 查询条件
-o 导出的文件名
-- csv 导出csv格式(便于和传统数据库交换数据)
例1:导出 stu表 sn小于1000的 sn 和 name 注: _id列总是导出
1 # ./bin/mongoexport -u testUser -p 1234 -d test -c stu -f sn,name -q ‘{sn:{$lte:1000}}‘ -o ./test.stu.json 2 connected to: 127.0.0.1 3 exported 1000 records 4 [[email protected] mongodb]# ll 5 总用量 156 6 drwxr-xr-x 2 root root 4096 5月 23 10:43 bin 7 -rw------- 1 hadoop hadoop 34520 8月 4 2013 GNU-AGPL-3.0 8 -rw------- 1 hadoop hadoop 1359 8月 4 2013 README 9 -rw-r--r-- 1 root root 86786 5月 25 10:12 test.stu.json 10 -rw------- 1 hadoop hadoop 18436 8月 4 2013 THIRD-PARTY-NOTICES
例2:导出stu表 csv的格式
1 ./bin/mongoexport -u testUser -p 1234 -d test -c stu -f sn,name -q ‘{sn:{$lte:10}}‘ -o ./test.stu.csv
查看 导出的 csv文件
1 # more test.stu.csv 2 sn,name 3 1.0,"student1" 4 2.0,"student2" 5 3.0,"student3" 6 4.0,"student4" 7 5.0,"student5" 8 6.0,"student6" 9 7.0,"student7" 10 8.0,"student8" 11 9.0,"student9" 12 10.0,"student10"
3.Mongoimport 导入
-d 待导入的数据库
-c 待导入的表(不存在会自己创建)
--type csv/json(默认)
--file 备份文件路径
例1: 导入json
1 # ./bin/mongoimport -u testUser -p 1234 -d test -c animal --type json --file ./test.stu.json
例2: 导入csv 注: --headerline 跳过列名
1 /bin/mongoimport -u testUser -p 1234 -d test -c bird -f sn,name --type csv --headline --file ./test.stu.csv
4.Mongodump 导出二进制bson结构的数据及其索引信息
-d 库名
-c 表名
-f field1,field2...列名
mongodum -d test [-c 表名] 默认是导出到mongo下的dump目录
规律:
1:导出的文件放在以database命名的目录下
2: 每个表导出2个文件,分别是bson结构的数据文件, json的索引信息
3: 如果不声明表名, 导出所有的表
mongorestore 导入二进制文件
例:
./bin/mongorestore -d test --directoryperdb dump/test/ (mongodump时的备份目录)
二进制备份,不仅可以备份数据,还可以备份索引,
备份数据比较小.
例:单表的备份和恢复
1.dump tea 表
1 ./bin/mongodump -u testUser -p 1234 -d test -c tea
2.查看 dump文件
1 # ll dump/test 2 总用量 8 3 -rw-r--r-- 1 root root 151 5月 25 10:37 tea.bson 4 -rw-r--r-- 1 root root 179 5月 25 10:37 tea.metadata.json
3.删除 tea 表
1 > db.tea.drop(); 2 true 3 > show tables 4 animal 5 bird 6 shop 7 stu 8 system.indexes 9 system.users 10 >
4.还原 tea 表 并查看记录 还原成功
1 ./bin/mongorestore -u testUser -p 1234 -d test --collection tea --directoryperdb dump/test/tea.bson 2 3 > db.tea.find() 4 { "_id" : ObjectId("5743d98aaddef29711337fb4"), "email" : "[email protected]" } 5 { "_id" : ObjectId("5743d98daddef29711337fb5"), "email" : "[email protected]" } 6 { "_id" : ObjectId("5743d9cfaddef29711337fb7"), "email" : "[email protected]" } 7 { "_id" : ObjectId("5743dc98addef29711337fbc") }
以上是关于MongoDB基础之八 备份与恢复的主要内容,如果未能解决你的问题,请参考以下文章