zoukankan      html  css  js  c++  java
  • 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 [root@localhost 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   dump/test/tea.bson
    2 
    3 > db.tea.find()
    4 { "_id" : ObjectId("5743d98aaddef29711337fb4"), "email" : "a@163.com" }
    5 { "_id" : ObjectId("5743d98daddef29711337fb5"), "email" : "b@163.com" }
    6 { "_id" : ObjectId("5743d9cfaddef29711337fb7"), "email" : "c@163.com" }
    7 { "_id" : ObjectId("5743dc98addef29711337fbc") }
  • 相关阅读:
    (二)Spark
    (一)Spark
    (一)Scala
    (三)Kafka
    (二)kafka
    四、(项目架构的过去与现在)亿级用户行为之大数据实时分析
    (一)kafka
    三、(项目架构的过去与现在)亿级用户行为之大数据实时分析
    SpringBoot+Elasticsearch7.7.0实战
    springboot2.2.2企业级项目整合redis与redis 工具类大全
  • 原文地址:https://www.cnblogs.com/chinesern/p/5526427.html
Copyright © 2011-2022 走看看