zoukankan      html  css  js  c++  java
  • MongoDB入门(3)- MongoDB备份与恢复

    1. 备份

    MongoDB提供了备份工具,mongodump.exe,在bin目录下,其用法如下:

    mongodump.exe -h localhost -d database_name -o d:mongodump
    
    -h:MongDB所在服务器地址,例如:127.0.0.1,当然也可以指定端口号:127.0.0.1:27017
    -d:需要备份的数据库实例,例如:database_name
    -o:备份的数据存放位置,例如:d:mongodump,当然该目录需要提前建立,在备份完成后,
    系统自动在dump目录下建立一个database_name目录,这个目录里面存放该数据库实例的备份数据。
    

    mongodump说明:

    Export MongoDB data to BSON files.
    
    Options:
      --help                                produce help message
      -v [ --verbose ]                      be more verbose (include multiple times
                                            for more verbosity e.g. -vvvvv)
      --quiet                               silence all non error diagnostic 
                                            messages
      --version                             print the program's version and exit
      -h [ --host ] arg                     mongo host to connect to ( <set 
                                            name>/s1,s2 for sets)
      --port arg                            server port. Can also use --host 
                                            hostname:port
      --ipv6                                enable IPv6 support (disabled by 
                                            default)
      -u [ --username ] arg                 username
      -p [ --password ] arg                 password
      --authenticationDatabase arg          user source (defaults to dbname)
      --authenticationMechanism arg (=MONGODB-CR)
                                            authentication mechanism
      --gssapiServiceName arg (=mongodb)    Service name to use when authenticating
                                            using GSSAPI/Kerberos
      --gssapiHostName arg                  Remote host name to use for purpose of 
                                            GSSAPI/Kerberos authentication
      --dbpath arg                          directly access mongod database files 
                                            in the given path, instead of 
                                            connecting to a mongod  server - needs 
                                            to lock the data directory, so cannot 
                                            be used if a mongod is currently 
                                            accessing the same path
      --directoryperdb                      each db is in a separate directory 
                                            (relevant only if dbpath specified)
      --journal                             enable journaling (relevant only if 
                                            dbpath specified)
      -d [ --db ] arg                       database to use
      -c [ --collection ] arg               collection to use (some commands)
      -o [ --out ] arg (=dump)              output directory or "-" for stdout
      -q [ --query ] arg                    json query
      --oplog                               Use oplog for point-in-time 
                                            snapshotting
      --repair                              try to recover a crashed database
      --forceTableScan                      force a table scan (do not use 
                                            $snapshot)
      --dumpDbUsersAndRoles                 Dump user and role definitions for the 
                                            given database
    
    

    2. 恢复

    mongorestore.exe -h localhost -d database_name –directoryperdb d:mongodumpdatabase_name
    
    mongorestore.exe -h localhost /db jxs_database /dir d:dbdumpjxs_database
    
    -h:MongoDB所在服务器地址
    -d:需要恢复的数据库实例,例如:database_name,当然这个名称也可以和备份时候的不一样,比如test2
    –directoryperdb:备份数据所在位置,例如:d:mongodumpdatabase_name
    –drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用.
    

    mongorestore说明:

    Import BSON files into MongoDB.
    
    usage: mongorestore [options] [directory or filename to restore from]
    Options:
      --help                                produce help message
      -v [ --verbose ]                      be more verbose (include multiple times
                                            for more verbosity e.g. -vvvvv)
      --quiet                               silence all non error diagnostic 
                                            messages
      --version                             print the program's version and exit
      -h [ --host ] arg                     mongo host to connect to ( <set 
                                            name>/s1,s2 for sets)
      --port arg                            server port. Can also use --host 
                                            hostname:port
      --ipv6                                enable IPv6 support (disabled by 
                                            default)
      -u [ --username ] arg                 username
      -p [ --password ] arg                 password
      --authenticationDatabase arg          user source (defaults to dbname)
      --authenticationMechanism arg (=MONGODB-CR)
                                            authentication mechanism
      --gssapiServiceName arg (=mongodb)    Service name to use when authenticating
                                            using GSSAPI/Kerberos
      --gssapiHostName arg                  Remote host name to use for purpose of 
                                            GSSAPI/Kerberos authentication
      --dbpath arg                          directly access mongod database files 
                                            in the given path, instead of 
                                            connecting to a mongod  server - needs 
                                            to lock the data directory, so cannot 
                                            be used if a mongod is currently 
                                            accessing the same path
      --directoryperdb                      each db is in a separate directory 
                                            (relevant only if dbpath specified)
      --journal                             enable journaling (relevant only if 
                                            dbpath specified)
      -d [ --db ] arg                       database to use
      -c [ --collection ] arg               collection to use (some commands)
      --objcheck                            validate object before inserting 
                                            (default)
      --noobjcheck                          don't validate object before inserting
      --filter arg                          filter to apply before inserting
      --drop                                drop each collection before import
      --oplogReplay                         replay oplog for point-in-time restore
      --oplogLimit arg                      include oplog entries before the 
                                            provided Timestamp (seconds[:ordinal]) 
                                            during the oplog replay; the ordinal 
                                            value is optional
      --keepIndexVersion                    don't upgrade indexes to newest version
      --noOptionsRestore                    don't restore collection options
      --noIndexRestore                      don't restore indexes
      --restoreDbUsersAndRoles              Restore user and role definitions for 
                                            the given database
      --w arg (=0)                          minimum number of replicas per write
    
    

    3. 单collection备份

    mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory
    
    -h: MongoDB所在服务器地址
    -d: 需要恢复的数据库实例
    -c: 需要恢复的集合
    -f: 需要导出的字段(省略为所有字段)
    -o: 表示导出的文件名
    

    mongoexport说明

    Export MongoDB data to CSV, TSV or JSON files.
    
    Options:
      --help                                produce help message
      -v [ --verbose ]                      be more verbose (include multiple times
                                            for more verbosity e.g. -vvvvv)
      --quiet                               silence all non error diagnostic 
                                            messages
      --version                             print the program's version and exit
      -h [ --host ] arg                     mongo host to connect to ( <set 
                                            name>/s1,s2 for sets)
      --port arg                            server port. Can also use --host 
                                            hostname:port
      --ipv6                                enable IPv6 support (disabled by 
                                            default)
      -u [ --username ] arg                 username
      -p [ --password ] arg                 password
      --authenticationDatabase arg          user source (defaults to dbname)
      --authenticationMechanism arg (=MONGODB-CR)
                                            authentication mechanism
      --gssapiServiceName arg (=mongodb)    Service name to use when authenticating
                                            using GSSAPI/Kerberos
      --gssapiHostName arg                  Remote host name to use for purpose of 
                                            GSSAPI/Kerberos authentication
      --dbpath arg                          directly access mongod database files 
                                            in the given path, instead of 
                                            connecting to a mongod  server - needs 
                                            to lock the data directory, so cannot 
                                            be used if a mongod is currently 
                                            accessing the same path
      --directoryperdb                      each db is in a separate directory 
                                            (relevant only if dbpath specified)
      --journal                             enable journaling (relevant only if 
                                            dbpath specified)
      -d [ --db ] arg                       database to use
      -c [ --collection ] arg               collection to use (some commands)
      -f [ --fields ] arg                   comma separated list of field names 
                                            e.g. -f name,age
      --fieldFile arg                       file with field names - 1 per line
      -q [ --query ] arg                    query filter, as a JSON string, e.g., 
                                            '{x:{$gt:1}}'
      --csv                                 export to csv instead of json
      -o [ --out ] arg                      output file; if not specified, stdout 
                                            is used
      --jsonArray                           output to a json array rather than one 
                                            object per line
      -k [ --slaveOk ] arg (=1)             use secondaries for export if 
                                            available, default true
      --forceTableScan                      force a table scan (do not use 
                                            $snapshot)
      --skip arg (=0)                       documents to skip, default 0
      --limit arg (=0)                      limit the numbers of documents 
                                            returned, default all
      --sort arg                            sort order, as a JSON string, e.g., 
                                            '{x:1}'
    
    

    4. 单collection恢复

    mongoimport -d dbhost -c collectionname –type csv –headerline –file
    
    -type: 指明要导入的文件格式
    -headerline: 批明不导入第一行,因为第一行是列名
    -file: 指明要导入的文件路径
    

    mongoimport说明

    Import CSV, TSV or JSON data into MongoDB.
    
    When importing JSON documents, each document must be a separate line of the input file.
    
    Example:
      mongoimport --host myhost --db my_cms --collection docs < mydocfile.json
    
    Options:
      --help                                produce help message
      -v [ --verbose ]                      be more verbose (include multiple times
                                            for more verbosity e.g. -vvvvv)
      --quiet                               silence all non error diagnostic 
                                            messages
      --version                             print the program's version and exit
      -h [ --host ] arg                     mongo host to connect to ( <set 
                                            name>/s1,s2 for sets)
      --port arg                            server port. Can also use --host 
                                            hostname:port
      --ipv6                                enable IPv6 support (disabled by 
                                            default)
      -u [ --username ] arg                 username
      -p [ --password ] arg                 password
      --authenticationDatabase arg          user source (defaults to dbname)
      --authenticationMechanism arg (=MONGODB-CR)
                                            authentication mechanism
      --gssapiServiceName arg (=mongodb)    Service name to use when authenticating
                                            using GSSAPI/Kerberos
      --gssapiHostName arg                  Remote host name to use for purpose of 
                                            GSSAPI/Kerberos authentication
      --dbpath arg                          directly access mongod database files 
                                            in the given path, instead of 
                                            connecting to a mongod  server - needs 
                                            to lock the data directory, so cannot 
                                            be used if a mongod is currently 
                                            accessing the same path
      --directoryperdb                      each db is in a separate directory 
                                            (relevant only if dbpath specified)
      --journal                             enable journaling (relevant only if 
                                            dbpath specified)
      -d [ --db ] arg                       database to use
      -c [ --collection ] arg               collection to use (some commands)
      -f [ --fields ] arg                   comma separated list of field names 
                                            e.g. -f name,age
      --fieldFile arg                       file with field names - 1 per line
      --ignoreBlanks                        if given, empty fields in csv and tsv 
                                            will be ignored
      --type arg                            type of file to import.  default: json 
                                            (json,csv,tsv)
      --file arg                            file to import from; if not specified 
                                            stdin is used
      --drop                                drop collection first 
      --headerline                          first line in input file is a header 
                                            (CSV and TSV only)
      --upsert                              insert or update objects that already 
                                            exist
      --upsertFields arg                    comma-separated fields for the query 
                                            part of the upsert. You should make 
                                            sure this is indexed
      --stopOnError                         stop importing at first error rather 
                                            than continuing
      --jsonArray                           load a json array, not one item per 
                                            line. Currently limited to 16MB.
    
    
  • 相关阅读:
    springboot:快速构建一个springboot项目
    SpringBoot Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
    springboot添加swagger2组件
    Mysql实现企业级数据库主从复制架构实战
    方案优化:网站实现扫描二维码关注微信公众号,自动登陆网站并获取其信息
    网站实现扫描二维码关注微信公众号,自动登陆网站并获取其信息
    九度OJ 1402 特殊的数 -- 位操作
    九度OJ 1385 重建二叉树
    九度OJ 1386 旋转数组的最小数字 【算法】
    九度OJ 城际公路网 -- 图论
  • 原文地址:https://www.cnblogs.com/wardensky/p/5799276.html
Copyright © 2011-2022 走看看