zoukankan      html  css  js  c++  java
  • mongodb备份恢复,数据导入导出

    数据导出 mongoexport

    假设库里有一张apachelog表,里面有2 条记录,我们要将它导出

    /test/mongodb/bin/mongo
    use wxdata

    switched to db wxdata

    db.apachelog.find();

    { "_id" : ObjectId("53993357e0e73ac14b29da8a"), "host" : "66.249.69.194", "method" : "GET", "uri" : "/uploads/yaopinimg/2013012415323219.jpg", "httpstatus" : 200, "size" : 7428, "agent" : "Googlebot-Image/1.0", "status" : 0 }

    1 常用导出方法

    /test/mongodb/bin/mongoexport -d wxdata -c apachelog -o apachelog.dat

    connected to: 127.0.0.1
    exported 2 records

    cat apachelog.dat

    { "_id" : ObjectId("53993357e0e73ac14b29da8a"), "host" : "66.249.69.194", "method" : "GET", "uri" : "/uploads/yaopinimg/2013012415323219.jpg", "httpstatus" : 200, "size" : 7428, "agent" : "Googlebot-Image/1.0", "status" : 0 }

    参数说明:
    -d 指明使用的库, 本例中为"wxdata"
    -c 指明要导出的表, 本例中为"apachelog"
    -o 指明要导出的文件名, 本例中为"apachelog.dat"
    从上面可以看到导出的方式使用的是JSON 的样式.

    2 导出CSV格式的文件

    /test/mongodb/bin/mongoexport -d wxdata -c apachelog --csv -f host,time,method -o apachelog_csv.dat

    connected to: 127.0.0.1
    exported 2 records

    cat apachelog_csv.dat

    host,time,method
    "66.249.69.194","12/Jun/2014:12:57:59","GET"
    参数说明:
    --csv 指要要导出为csv 格式
    -f 指明需要导出哪些例

    3.导出执行查询的结果

    /test/mongodb/bin/mongoexport -d wxdata -c apachelog -q '{httpstatus:404}' -o apachelog.dat

    参数说明:
    -q 指明过滤条件,这里是过滤出httpstatus等于404的记录。


    更详细的用法可以 mongoexport –help 来查看

    数据导入mongoimport

    1 导入JSON 数据
    我们先将表apachelog 删除掉,以便演示效果

    db.apachelog.drop();

    true
    show collections;
    system.indexes

    然后导入数据

    /test/mongodb/bin/mongoimport -d wxdata -c apachelog apachelog.dat

    connected to: 127.0.0.1
    imported 1 objects

    导入数据的时候会隐式创建表结构

    2 导入CSV数据

    我们先将表apachelog 删除掉,以便演示效果

    db.apachelog.drop();

    true
    show collections;
    system.indexes

    然后导入数据

    /test/mongodb/bin/mongoimport -d wxdata -c apachelog --type csv --headerline --file apachelog_csv.dat

    connected to: 127.0.0.1
    imported 1 objects

    参数说明:
    --type 指明要导入的文件格式
    --headerline 批明不导入第一行,因为第一行是列名
    --file 指明要导入的文件路径
    注意:
    CSV 格式良好,主流数据库都支持导出为CSV 的格式,所以这种格式非常利于异构数据迁移

    数据备份mongodump

    用mongodump 来做MongoDB 的库或表级别的备份

    备份wxdata 数据库

    /test/mongodb/bin/mongodump -d wxdata

    connected to: 127.0.0.1
    DATABASE: wxdata to dump/wxdata
    wxdata.system.indexes to dump/wxdata/system.indexes.bson
    1 objects
    wxdata.apachelog to dump/wxdata/apachelog.bson
    2 objects

    此时会在当前目录下创建一个dump 目录,用于存放备份出来的文件
    也可以指定备份存放的目录,

    /test/mongodb/bin/mongodump -d wxdata -o wxdata_dump

    connected to: 127.0.0.1
    DATABASE: wxdata to wxdata_dump/wxdata
    wxdata.system.indexes to
    wxdata_dump/wxdata/system.indexes.bson
    1 objects
    wxdata.apachelog to wxdata_dump/wxdata/apachelog.bson
    2 objects

    这个例子中将备份的文件存在了当前目录下的wxdata_dump 目录下

    数据恢复mongorestore

    由于刚刚已经做了备份,所以我们先将库wxdata 删除掉

    use wxdata

    switched to db wxdata
    db.dropDatabase()
    { "dropped" : "wxdata", "ok" : 1 }
    show dbs
    admin (empty)
    local (empty)
    test (empty)

    接下来我们进行数据库恢复

    /test/mongodb/bin/mongorestore -d wxdata wxdata_dump/*

    connected to: 127.0.0.1
    Wed Apr 11 00:03:03 wxdata_dump/wxdata/apachelog.bson
    Wed Apr 11 00:03:03 going into namespace [wxdata.apachelog]
    Wed Apr 11 00:03:03 2 objects found
    Wed Apr 11 00:03:03 wxdata_dump/wxdata/system.indexes.bson
    Wed Apr 11 00:03:03 going into namespace [wxdata.system.indexes]
    经验证数据库又回来了,其实要是想恢复库,也大可不必先删除wxdata 库,只要指
    明--drop 参数,就可以在恢复的时候先删除表然后再向表中插入数据.

  • 相关阅读:
    第四部分 | 第19章 —— Cocos2d-HTML5
    第四部分 | 第18章 —— 可视化开发
    第四部分 | 第17章 —— 多平台下的Cocos2d
    第三部分 | 第16章 —— 并发编程
    第三部分 | 第15章 —— 缓存与池
    第三部分 | 第14章 —— 网络
    第三部分 | 第13章 —— 数据持久化
    第二部分 | 第12章 —— 物理引擎
    ASA failover配置(A/S)
    深信服AF ipsec ikev2 新版本尝鲜(对接Azure)
  • 原文地址:https://www.cnblogs.com/yjken/p/3858112.html
Copyright © 2011-2022 走看看