zoukankan      html  css  js  c++  java
  • Mongodb 备份与恢复

    1 mongodb常用命令
    数据库备份、还原,mongodump、mongorestore、mongoimport、mongoexport

    导出工具mongoexport
    Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。
    参数 参数说明
    -h    主机的IP
    -u    用户名
    -p    密码
    -d    数据库的名字
    -c    collection的名字
    -f    要导出那些列
    -o    到要导出的文件名
    -q    导出数据的过滤条件
    --type    文件类型
    --authenticationDatabase 验证数据的名称
    mongoexport备份实践
    备份test库下的table1集合
    [mongodb@hongquan1 bk_mongodb]$ /usr/local/mongodb/bin/mongoexport -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    > -d test -c table1 -o /data/bk_mongodb/table1.dat
    2018-03-12T06:37:48.619+0800 connected to: 192.168.20.118:28002
    2018-03-12T06:37:48.630+0800 exported 1000 records
    导出CSV格式的数据
    [mongodb@hongquan1 bk_mongodb]$ /usr/local/mongodb/bin/mongoexport -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    > -d test -c table1 --type=csv -f id,test1 -o /data/bk_mongodb/table1_csv.dat
    2018-03-12T06:52:19.493+0800 connected to: 192.168.20.118:28002
    2018-03-12T06:52:19.505+0800 exported 1000 records

    导入工具mongoimport
    Mongodb中的mongoimport工具可以把一个特定格式文件中的内容导入到指定的collection中。该工具可以导入JSON格式数据,也可以导入CSV格式数据。
    -q    导出数据的过滤条件
    --drop    插入之前先删除原有的
    --headerline   第一行是列名,不需要导入
    -j    同时运行的插入操作数(默认为1),并行
    mongoimport恢复实践
    db.table1.save({id:1001,"test1":"testval11001"})
    MyMongo:PRIMARY> db.table1.count()
    将之前恢复的数据导入
    /usr/local/mongodb/bin/mongoimport -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    -d test -c table1 --drop /data/bk_mongodb/table1.dat
    将之前恢复的CSV格式数据导入
    [mongodb@hongquan1 bk_mongodb]$ /usr/local/mongodb/bin/mongoimport -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    > -d test -c table1 --type=csv --headerline --drop /data/bk_mongodb/table1_csv.dat
    2018-03-12T06:58:44.621+0800 connected to: 192.168.20.118:28002
    2018-03-12T06:58:44.621+0800 dropping: test.table1
    2018-03-12T06:58:44.664+0800 imported 1000 documents

    实验 mysql数据迁移至mongodb数据库
    将mysql数据库中的mysql下的user表导出
    (system@127.0.0.1:3306) [(none)]> select user,host from mysql.user
    -> into outfile '/data/mysqldata/loadfile/user.csv'
    -> fields terminated by ','
    -> optionally enclosed by '"'
    -> escaped by '"'
    -> lines terminated by ' ';
    Query OK, 10 rows affected (0.00 sec)
    在mongodb中导入数据
    --f与headerline 不能共存?
    [mongodb@hongquan1 bk_mongodb]$ /usr/local/mongodb/bin/mongoimport -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    > -d test -c mysqluser -f user,host --type=csv --drop /data/mysqldata/loadfile/user.csv
    2018-03-12T07:19:44.076+0800 connected to: 192.168.20.118:28002
    2018-03-12T07:19:44.076+0800 dropping: test.mysqluser
    2018-03-12T07:19:44.103+0800 imported 10 documents
    MyMongo:PRIMARY> db.mysqluser.find()
    { "_id" : ObjectId("5aa5b9906bcc4e18a8328c12"), "user" : "maxscale_route", "host" : "%" }
    { "_id" : ObjectId("5aa5b9906bcc4e18a8328c13"), "user" : "system", "host" : "%" }
    { "_id" : ObjectId("5aa5b9906bcc4e18a8328c14"), "user" : "system", "host" : "127.0.0.1" }

    2 mongodump/mongorestore

    mongodump备份工具
    mongodump的参数与mongoexport的参数基本一致
    --gzip 备份时压缩
    --oplog use oplog for taking a point-in-time snapshot
    [root@mysqlt1 28002]# /usr/local/mongodb/bin/mongodump --help

    mongodump实践

    全库备份
    [mongodb@hongquan1 bk_mongodb]$ /usr/local/mongodb/bin/mongodump -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    > -o /data/bk_mongodb/full
    [mongodb@hongquan1 full]$ ll #config,local未在备份里面
    total 12
    drwxrwxr-x 2 mongodb mongodb 4096 Mar 12 07:24 admin
    drwxrwxr-x 2 mongodb mongodb 4096 Mar 12 07:24 mydb
    drwxrwxr-x 2 mongodb mongodb 4096 Mar 12 07:24 test
    MyMongo:PRIMARY> show dbs;
    admin 0.000GB
    config 0.000GB
    local 0.001GB
    mydb 0.000GB
    test 0.000GB
    备份test库
    /usr/local/mongodb/bin/mongodump -h 192.168.20.118:28002 -u 'dba' -p 'dba' --authenticationDatabase admin
    -d test -o /data/bk_mongodb/p_test_auth_bk

    /usr/local/mongodb/bin/mongodump -h 192.168.20.118:28002 -d test -o /data/bk_mongodb/p_test_20180312_28002_bk

    备份test库下的table1集合
    [mongodb@hongquan1 bk_mongodb]$ /usr/local/mongodb/bin/mongodump -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    > -d test -c table1 -o /data/bk_mongodb/table1_dump
    2018-03-12T07:27:18.519+0800 writing test.table1 to
    2018-03-12T07:27:18.521+0800 done dumping test.table1 (1000 documents)
    压缩备份库
    /usr/local/mongodb/bin/mongodump -h 192.168.20.118:28002 -u 'dba' -p 'dba' --authenticationDatabase admin
    -d test -o /data/bk_mongodb/test_mdump_zip.zip --gzip
    压缩备份单表
    /usr/local/mongodb/bin/mongodump -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    > -d test -c table1 -o /data/bk_mongodb/table1_dump.zip --gzip

    mongorestore恢复实践
    mongorestore与mongoimport参数类似
    全库备份中恢复单库(基于之前的全库备份)
    /usr/local/mongodb/bin/mongorestore -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    -d test --drop /data/bk_mongodb/full/test
    恢复test库
    /usr/local/mongodb/bin/mongorestore -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    -d test /data/bk_mongodb/test_mdump_zip/test
    恢复test库下的table1集合
    /usr/local/mongodb/bin/mongorestore -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    -d test /data/bk_mongodb/test_mdump_zip/test/table1.bson

    --drop参数实践恢复,#还原之前先删除原来数据库(集合)
    /usr/local/mongodb/bin/mongorestore -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    -d test --drop /data/bk_mongodb/test_mdump_zip/test
    /usr/local/mongodb/bin/mongorestore -h 192.168.20.118:28002 -u'dba' -p'dba' --authenticationDatabase admin
    -d test --drop /data/bk_mongodb/test_mdump_zip/test/table1.bson

  • 相关阅读:
    awt
    登录校验 简单实现
    事务隔离级别
    事务的四大特性(ACID)
    多线程简单了解
    Eureka bug
    什么是存储过程
    filter和servlet的区别
    说说你对多线程锁机制的理解
    session的生命周期,session何时创建,何时销毁,session销毁的方式
  • 原文地址:https://www.cnblogs.com/yhq1314/p/10008130.html
Copyright © 2011-2022 走看看