您的位置:首页 > 数据库 > Mongodb

MongoDB基础之八 备份与恢复

2016-05-25 11:42 579 查看

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列总是导出

# ./bin/mongoexport -u testUser -p 1234 -d test -c stu -f sn,name -q '{sn:{$lte:1000}}' -o ./test.stu.json
connected to: 127.0.0.1
exported 1000 records
[root@localhost mongodb]# ll
总用量 156
drwxr-xr-x 2 root root 4096 5月 23 10:43 bin
-rw------- 1 hadoop hadoop 34520 8月 4 2013 GNU-AGPL-3.0
-rw------- 1 hadoop hadoop 1359 8月 4 2013 README
-rw-r--r-- 1 root root 86786 5月 25 10:12 test.stu.json
-rw------- 1 hadoop hadoop 18436 8月 4 2013 THIRD-PARTY-NOTICES

 例2:导出stu表 csv的格式

./bin/mongoexport -u testUser -p 1234  -d test -c  stu -f sn,name -q '{sn:{$lte:10}}' -o ./test.stu.csv

 查看 导出的 csv文件 

# more test.stu.csv
sn,name
1.0,"student1"
2.0,"student2"
3.0,"student3"
4.0,"student4"
5.0,"student5"
6.0,"student6"
7.0,"student7"
8.0,"student8"
9.0,"student9"
10.0,"student10"

 3.Mongoimport 导入

-d 待导入的数据库
-c 待导入的表(不存在会自己创建)
--type csv/json(默认)
--file 备份文件路径

例1: 导入json

# ./bin/mongoimport -u testUser -p 1234 -d test -c animal --type json --file ./test.stu.json

例2: 导入csv 注: --headerline 跳过列名

/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 表

./bin/mongodump -u testUser -p 1234 -d test -c tea

 2.查看 dump文件

# ll dump/test
总用量 8
-rw-r--r-- 1 root root 151 5月  25 10:37 tea.bson
-rw-r--r-- 1 root root 179 5月  25 10:37 tea.metadata.json

 3.删除 tea 表

> db.tea.drop();
true
> show tables
animal
bird
shop
stu
system.indexes
system.users
>

 4.还原 tea 表 并查看记录 还原成功

./bin/mongorestore -u testUser -p 1234 -d test --collection tea   dump/test/tea.bson

> db.tea.find()
{ "_id" : ObjectId("5743d98aaddef29711337fb4"), "email" : "a@163.com" }
{ "_id" : ObjectId("5743d98daddef29711337fb5"), "email" : "b@163.com" }
{ "_id" : ObjectId("5743d9cfaddef29711337fb7"), "email" : "c@163.com" }
{ "_id" : ObjectId("5743dc98addef29711337fbc") }

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: