当前位置:Gxlcms > 数据库问题 > MongoDB基础之八 备份与恢复

MongoDB基础之八 备份与恢复

时间:2021-07-01 10:21:17 帮助过:5人阅读

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. <span style="color: #008080;"> 1</span> # ./bin/mongoexport -u testUser -p <span style="color: #800080;">1234</span> -d test -c stu -f sn,name -q <span style="color: #800000;">‘</span><span style="color: #800000;">{sn:{$lte:1000}}</span><span style="color: #800000;">‘</span> -o ./<span style="color: #000000;">test.stu.json
  2. </span><span style="color: #008080;"> 2</span> connected to: <span style="color: #800080;">127.0</span>.<span style="color: #800080;">0.1</span>
  3. <span style="color: #008080;"> 3</span> exported <span style="color: #800080;">1000</span><span style="color: #000000;"> records
  4. </span><span style="color: #008080;"> 4</span> <span style="color: #000000;">[root@localhost mongodb]# ll
  5. </span><span style="color: #008080;"> 5</span> 总用量 <span style="color: #800080;">156</span>
  6. <span style="color: #008080;"> 6</span> drwxr-xr-x <span style="color: #800080;">2</span> root root <span style="color: #800080;">4096</span> 5月 <span style="color: #800080;">23</span> <span style="color: #800080;">10</span>:<span style="color: #800080;">43</span><span style="color: #000000;"> bin
  7. </span><span style="color: #008080;"> 7</span> -rw------- <span style="color: #800080;">1</span> hadoop hadoop <span style="color: #800080;">34520</span> 8月 <span style="color: #800080;">4</span> <span style="color: #800080;">2013</span> GNU-AGPL-<span style="color: #800080;">3.0</span>
  8. <span style="color: #008080;"> 8</span> -rw------- <span style="color: #800080;">1</span> hadoop hadoop <span style="color: #800080;">1359</span> 8月 <span style="color: #800080;">4</span> <span style="color: #800080;">2013</span><span style="color: #000000;"> README
  9. </span><span style="color: #008080;"> 9</span> -rw-r--r-- <span style="color: #800080;">1</span> root root <span style="color: #800080;">86786</span> 5月 <span style="color: #800080;">25</span> <span style="color: #800080;">10</span>:<span style="color: #800080;">12</span><span style="color: #000000;"> test.stu.json
  10. </span><span style="color: #008080;">10</span> -rw------- <span style="color: #800080;">1</span> hadoop hadoop <span style="color: #800080;">18436</span> 8月 <span style="color: #800080;">4</span> <span style="color: #800080;">2013</span> THIRD-PARTY-NOTICES

 例2:导出stu表 csv的格式

  1. <span style="color: #008080;">1</span> ./bin/mongoexport -u testUser -p <span style="color: #800080;">1234</span> -d test -c stu -f sn,name -q <span style="color: #800000;">‘</span><span style="color: #800000;">{sn:{$lte:10}}</span><span style="color: #800000;">‘</span> -o ./test.stu.csv

 查看 导出的 csv文件 

  1. <span style="color: #008080;"> 1</span> # <span style="color: #0000ff;">more</span><span style="color: #000000;"> test.stu.csv
  2. </span><span style="color: #008080;"> 2</span> <span style="color: #000000;">sn,name
  3. </span><span style="color: #008080;"> 3</span> <span style="color: #800080;">1.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student1</span><span style="color: #800000;">"</span>
  4. <span style="color: #008080;"> 4</span> <span style="color: #800080;">2.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student2</span><span style="color: #800000;">"</span>
  5. <span style="color: #008080;"> 5</span> <span style="color: #800080;">3.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student3</span><span style="color: #800000;">"</span>
  6. <span style="color: #008080;"> 6</span> <span style="color: #800080;">4.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student4</span><span style="color: #800000;">"</span>
  7. <span style="color: #008080;"> 7</span> <span style="color: #800080;">5.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student5</span><span style="color: #800000;">"</span>
  8. <span style="color: #008080;"> 8</span> <span style="color: #800080;">6.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student6</span><span style="color: #800000;">"</span>
  9. <span style="color: #008080;"> 9</span> <span style="color: #800080;">7.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student7</span><span style="color: #800000;">"</span>
  10. <span style="color: #008080;">10</span> <span style="color: #800080;">8.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student8</span><span style="color: #800000;">"</span>
  11. <span style="color: #008080;">11</span> <span style="color: #800080;">9.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student9</span><span style="color: #800000;">"</span>
  12. <span style="color: #008080;">12</span> <span style="color: #800080;">10.0</span>,<span style="color: #800000;">"</span><span style="color: #800000;">student10</span><span style="color: #800000;">"</span>

 3.Mongoimport 导入

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

例1: 导入json

  1. <span style="color: #008080;">1</span> # ./bin/mongoimport -u testUser -p <span style="color: #800080;">1234</span> -d test -c animal --type json --<span style="color: #0000ff;">file</span> ./test.stu.json

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

  1. <span style="color: #008080;">1</span> /bin/mongoimport -u testUser -p <span style="color: #800080;">1234</span> -d test -c bird -f sn,name --type csv --headline --<span style="color: #0000ff;">file</span> ./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. <span style="color: #008080;">1</span> ./bin/mongodump -u testUser -p <span style="color: #800080;">1234</span> -d test -c tea

 2.查看 dump文件

  1. <span style="color: #008080;">1</span> # ll dump/<span style="color: #000000;">test
  2. </span><span style="color: #008080;">2</span> 总用量 <span style="color: #800080;">8</span>
  3. <span style="color: #008080;">3</span> -rw-r--r-- <span style="color: #800080;">1</span> root root <span style="color: #800080;">151</span> 5月 <span style="color: #800080;">25</span> <span style="color: #800080;">10</span>:<span style="color: #800080;">37</span><span style="color: #000000;"> tea.bson
  4. </span><span style="color: #008080;">4</span> -rw-r--r-- <span style="color: #800080;">1</span> root root <span style="color: #800080;">179</span> 5月 <span style="color: #800080;">25</span> <span style="color: #800080;">10</span>:<span style="color: #800080;">37</span> tea.metadata.json

 3.删除 tea 表

  1. <span style="color: #008080;"> 1</span> ><span style="color: #000000;"> db.tea.drop();
  2. </span><span style="color: #008080;"> 2</span> <span style="color: #0000ff;">true</span>
  3. <span style="color: #008080;"> 3</span> ><span style="color: #000000;"> show tables
  4. </span><span style="color: #008080;"> 4</span> <span style="color: #000000;">animal
  5. </span><span style="color: #008080;"> 5</span> <span style="color: #000000;">bird
  6. </span><span style="color: #008080;"> 6</span> <span style="color: #000000;">shop
  7. </span><span style="color: #008080;"> 7</span> <span style="color: #000000;">stu
  8. </span><span style="color: #008080;"> 8</span> <span style="color: #000000;">system.indexes
  9. </span><span style="color: #008080;"> 9</span> <span style="color: #000000;">system.users
  10. </span><span style="color: #008080;">10</span> >

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

  1. <span style="color: #008080;">1</span> ./bin/mongorestore -u testUser -p <span style="color: #800080;">1234</span> -d test --collection tea --directoryperdb dump/test/<span style="color: #000000;">tea.bson
  2. </span><span style="color: #008080;">2</span>
  3. <span style="color: #008080;">3</span> > db.tea.<span style="color: #0000ff;">find</span><span style="color: #000000;">()
  4. </span><span style="color: #008080;">4</span> { <span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : ObjectId(<span style="color: #800000;">"</span><span style="color: #800000;">5743d98aaddef29711337fb4</span><span style="color: #800000;">"</span>), <span style="color: #800000;">"</span><span style="color: #800000;">email</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">a@163.com</span><span style="color: #800000;">"</span><span style="color: #000000;"> }
  5. </span><span style="color: #008080;">5</span> { <span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : ObjectId(<span style="color: #800000;">"</span><span style="color: #800000;">5743d98daddef29711337fb5</span><span style="color: #800000;">"</span>), <span style="color: #800000;">"</span><span style="color: #800000;">email</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">b@163.com</span><span style="color: #800000;">"</span><span style="color: #000000;"> }
  6. </span><span style="color: #008080;">6</span> { <span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : ObjectId(<span style="color: #800000;">"</span><span style="color: #800000;">5743d9cfaddef29711337fb7</span><span style="color: #800000;">"</span>), <span style="color: #800000;">"</span><span style="color: #800000;">email</span><span style="color: #800000;">"</span> : <span style="color: #800000;">"</span><span style="color: #800000;">c@163.com</span><span style="color: #800000;">"</span><span style="color: #000000;"> }
  7. </span><span style="color: #008080;">7</span> { <span style="color: #800000;">"</span><span style="color: #800000;">_id</span><span style="color: #800000;">"</span> : ObjectId(<span style="color: #800000;">"</span><span style="color: #800000;">5743dc98addef29711337fbc</span><span style="color: #800000;">"</span>) }

 

MongoDB基础之八 备份与恢复

标签:

人气教程排行