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

mongodb 的数据备份与恢复

2017-03-04 15:25 330 查看

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

               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  备份文件存放的位置【会把此目录下的所有备份文件都导入】

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