mongodb 的数据备份与恢复

        导入/导出可以操作是本地的或远程的,所以都有以下通用选项【如果是操作本地机并且没有密码的话可以省去】:

               1、-h host         主机
               2、-port port     端口
               3、-u username 用户名
               4、-p password 密码
 
导出【这两种格式适合做数据交换】:
      ./bin/mongoexport -d test -c stu -f sn,name -q '{sn:{$lte:1000}}' -o ./test.stu.json【因为导出的是 json 格式,所以是 json 后缀命名】
                          -d  库名
                          -c  表名
                          -f  属性名(列名,不声明就是全部导出)
                          -q 导出条件
                          -o 存放文件位置及名字
      ./bin/mongoexport -d test -c stu -f sn,name -q '{sn:{$lte:1000}}' --csv -o ./test.stu.csv【因为导出的是csv 格式,所以是 csv 后缀命名】
                         --csv    声明是 csv 格式【便于和传统型数据库交换数据,因为 mysql 有一个引擎就是 csv 的,只要把文件放在mysql相关目录,引擎改为 csv 的,就能直接读取数据】
 
导出成二进制格式:
          ./bin/mongodump -d test -c tea
                              -d      导出库名
                              -c      导出的表名(不写导出库内所有表)
                              -f       导出的字段(不写导出表内所有字段)
         【导出成二进制文件,好处是索引文件也被备份下来了,适合做备份,且导出速度快】
          规律:
                默认会导出到 mongo 下的dump目录 
                导出的文件放在 库名 的命名目录下
                每个表生成两个文件,分别是 bson 结构的数据文件,json 的索引信息
                如果不声明表名,会导出所有表    
 
 
导入:
    ./bin/mongoimport -d test -c animal --type json --file ./test.stu.json 【导入 json 格式】
                           -d   导入的库名
                           -c   导入的表名【不存在会隐式创建】
                           --type  导入数据的类型【不写默认 json】
                           --file    导入数据文件路径 
 
    ./bin/mongoimport -d test -c bird --type csv -f sn,name --headerline --file ./test.stu.csv 【导入 csv 格式】
               因为 csv 格式文件第一行是逗号分割的字段名,所以需要声明都有哪些字段。并且 mondodb 会把第一行也当作数据,所以我们要 --headerline 声明跳过第一行
 
 


 
导入【二进制文件】
      ./bin/mongorestore -d test --directoryperdb dump/test
                   -d  导入进的库名【不存在会创建】
                   --directoryperdb  备份文件存放的位置【会把此目录下的所有备份文件都导入】





 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值