zoukankan      html  css  js  c++  java
  • 一次生产环境下MongoDB备份还原数据

    最近开发一个版本的功能当中用到了MongoDB分页,懒于造数据,于是就研究了下从生产环境上导出数据到本地来进行测试。

    研究了一下,发现MongoDB的备份还原和MySQL语法还挺类似,下面请看详细介绍。

    一、备份数据

    因为需要测试数据,所以先要从生产服务器(CentOS 6.5)上备份出一份数据出来,

    格式:  mongodump-h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径

    示例:

     /opt/mongodb/bin/mongodump -h 127.0.0.1 --port 27017 -u 用户名 -p 密码 -d ad_api_count -o /tmp

    (注意Linux下如果密码有特殊字符需要转义)

    进入到备份出来的数据ad_api_count目录下,可以看到ad_api_count中两个集合的信息

    二、还原数据库

    把生产环境下导出数据库下载到本地的e:eead_api_count下,接下来我们就可以导入数据到本地MongoDB进行测试了

    命令格式:mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 文件名的具体路径(后缀格式为bson)

    示例:

    cd C:Program FilesMongoDBServer3.4in
    mongorestore.exe -h 127.0.0.1 --port 27017 -u 用户名 -p 密码 -d ad_api_count e:custad_api_countuserAdCount.bson

    如上图,我们知道就完成了还原工作

    三、其他

    mongoexport导出表,或导出表中部分字段:

    命令格式:mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv -o 文件名的具体路径(后缀格式可以是.dat或.csv);

    mongoimport导入表,或者表中部分字段 :

    1.还原整表导出的非csv文件

       命令格式:mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名的具体路径   (--drop当不需要删除源文件可不加)

    2.还原部分字段的导出文件

      命令格式:mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsertFields 字段 --drop 文件名的具体路径 (--drop当不需要删除源文件可不加)

    3.还原导出的csv文件(导出数据时如果不加--csv选项,导出的数据就会存在很多双引号,导入就会失败)

      命令格式:mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --type 类型(csv) --headerline --upsert --drop 文件名的具体路径  

      注意:如果数据库存在数据,要导入最新的数据,则需要加--upsert选项,会更新数据,否则会报错(提示重复键错误收集)

  • 相关阅读:
    冲刺周2
    java 流
    java 线程控制方法
    java界面编程(下)
    java 界面编程(上)
    java数组
    java 异常
    java程序中的存储区
    java中稍微有些陌生的关键字
    IOCP服务器搭建
  • 原文地址:https://www.cnblogs.com/zishengY/p/7615731.html
Copyright © 2011-2022 走看看