• mongodb之 mongodump 与 mongorestore


    一、备份

    和之前介绍的 mongoexport 的数据导出工具不同, mongodump 是将数据以二进制形式导出,而 mongoexport 导出的数据格式为 csv 或 json 格式; mongodump 可以导出一个数据库,或者整个 MongoDB 服务上的所有数据库,因此 mongodump 是更大范围的备份工具。

    [root@mysql3 admin]# mongodump --help
    Usage:
    mongodump <options>

    Export the content of a running server into .bson files.

    Specify a database with -d and a collection with -c to only dump that database or collection.

    See http://docs.mongodb.org/manual/reference/program/mongodump/ for more information.

    general options:
    --help print usage
    --version print the tool version and exit

    verbosity options:
    -v, --verbose=<level> more detailed log output (include multiple times for more verbosity, e.g.
    -vvvvv, or specify a numeric value, e.g. --verbose=N)
    --quiet hide all log output

    connection options:
    -h, --host=<hostname> mongodb host to connect to (setname/host1,host2 for replica sets)
    --port=<port> server port (can also use --host hostname:port)

    ssl options:
    --ssl connect to a mongod or mongos that has ssl enabled
    --sslCAFile=<filename> the .pem file containing the root certificate chain from the certificate
    authority
    --sslPEMKeyFile=<filename> the .pem file containing the certificate and key
    --sslPEMKeyPassword=<password> the password to decrypt the sslPEMKeyFile, if necessary
    --sslCRLFile=<filename> the .pem file containing the certificate revocation list
    --sslAllowInvalidCertificates bypass the validation for server certificates
    --sslAllowInvalidHostnames bypass the validation for server name
    --sslFIPSMode use FIPS mode of the installed openssl library

    authentication options:
    -u, --username=<username> username for authentication
    -p, --password=<password> password for authentication
    --authenticationDatabase=<database-name> database that holds the user's credentials
    --authenticationMechanism=<mechanism> authentication mechanism to use

    namespace options:
    -d, --db=<database-name> database to use
    -c, --collection=<collection-name> collection to use

    query options:
    -q, --query= query filter, as a JSON string, e.g., '{x:{$gt:1}}'
    --queryFile= path to a file containing a query filter (JSON)
    --readPreference=<string>|<json> specify either a preference name or a preference json object
    --forceTableScan force a table scan

    output options:
    -o, --out=<directory-path> output directory, or '-' for stdout (defaults to 'dump')
    --gzip compress archive our collection output with Gzip
    --repair try to recover documents from damaged data files (not supported by all
    storage engines)
    --oplog use oplog for taking a point-in-time snapshot
    --archive=<file-path> dump as an archive to the specified path. If flag is specified without a
    value, archive is written to stdout
    --dumpDbUsersAndRoles dump user and role definitions for the specified database
    --excludeCollection=<collection-name> collection to exclude from the dump (may be specified multiple times to
    exclude additional collections)
    --excludeCollectionsWithPrefix=<collection-prefix> exclude all collections from the dump that have the given prefix (may be
    specified multiple times to exclude additional prefixes)
    -j, --numParallelCollections= number of collections to dump in parallel (4 by default) (default: 4)
    --viewsAsCollections dump views as normal collections with their produced data, omitting
    standard collections


    # 备份指定数据库中的某个集合
    mongodump -d andy -h 10.100.25.42:27001 -o mongo_andy.dmp -c XX

    # 备份指定数据库
    mongodump -d andy -h 10.100.25.42 --port 27001 -o mongo_andy.dmp

    说明:从日志看出,mongodump 的结果会生成一个目录,第一层目录为数据库名,再下一层为每个集合对应的备份文件。

    # 备份实例所有数据库
    mongodump -h 10.100.25.42 --port 27001 -o mongo_all.dmp

    说明:mongodump 如果不指定 -d 参数,刚会备份整个 MongoDB 实例。

    二、恢复


    [root@mysql3 admin]# mongorestore --help
    Usage:
    mongorestore <options> <directory or file to restore>

    Restore backups generated with mongodump to a running server.

    Specify a database with -d to restore a single database from the target directory,
    or use -d and -c to restore a single collection from a single .bson file.

    See http://docs.mongodb.org/manual/reference/program/mongorestore/ for more information.

    general options:
    --help print usage
    --version print the tool version and exit

    verbosity options:
    -v, --verbose=<level> more detailed log output (include multiple times for more verbosity, e.g.
    -vvvvv, or specify a numeric value, e.g. --verbose=N)
    --quiet hide all log output

    connection options:
    -h, --host=<hostname> mongodb host to connect to (setname/host1,host2 for replica sets)
    --port=<port> server port (can also use --host hostname:port)

    ssl options:
    --ssl connect to a mongod or mongos that has ssl enabled
    --sslCAFile=<filename> the .pem file containing the root certificate chain from the certificate
    authority
    --sslPEMKeyFile=<filename> the .pem file containing the certificate and key
    --sslPEMKeyPassword=<password> the password to decrypt the sslPEMKeyFile, if necessary
    --sslCRLFile=<filename> the .pem file containing the certificate revocation list
    --sslAllowInvalidCertificates bypass the validation for server certificates
    --sslAllowInvalidHostnames bypass the validation for server name
    --sslFIPSMode use FIPS mode of the installed openssl library

    authentication options:
    -u, --username=<username> username for authentication
    -p, --password=<password> password for authentication
    --authenticationDatabase=<database-name> database that holds the user's credentials
    --authenticationMechanism=<mechanism> authentication mechanism to use

    namespace options:
    -d, --db=<database-name> database to use when restoring from a BSON file
    -c, --collection=<collection-name> collection to use when restoring from a BSON file
    --excludeCollection=<collection-name> DEPRECATED; collection to skip over during restore (may be specified
    multiple times to exclude additional collections)
    --excludeCollectionsWithPrefix=<collection-prefix> DEPRECATED; collections to skip over during restore that have the given
    prefix (may be specified multiple times to exclude additional prefixes)
    --nsExclude=<namespace-pattern> exclude matching namespaces
    --nsInclude=<namespace-pattern> include matching namespaces
    --nsFrom=<namespace-pattern> rename matching namespaces, must have matching nsTo
    --nsTo=<namespace-pattern> rename matched namespaces, must have matching nsFrom

    input options:
    --objcheck validate all objects before inserting
    --oplogReplay replay oplog for point-in-time restore
    --oplogLimit=<seconds>[:ordinal] only include oplog entries before the provided Timestamp
    --oplogFile=<filename> oplog file to use for replay of oplog
    --archive=<filename> restore dump from the specified archive file. If flag is specified
    without a value, archive is read from stdin
    --restoreDbUsersAndRoles restore user and role definitions for the given database
    --dir=<directory-name> input directory, use '-' for stdin
    --gzip decompress gzipped input

    restore options:
    --drop drop each collection before import
    --dryRun view summary without importing anything. recommended with verbosity
    --writeConcern=<write-concern> write concern options e.g. --writeConcern majority, --writeConcern '{w:
    3, wtimeout: 500, fsync: true, j: true}' (defaults to 'majority')
    (default: majority)
    --noIndexRestore don't restore indexes
    --noOptionsRestore don't restore collection options
    --keepIndexVersion don't update index version
    --maintainInsertionOrder preserve order of documents during restoration
    -j, --numParallelCollections= number of collections to restore in parallel (4 by default) (default: 4)
    --numInsertionWorkersPerCollection= number of insert operations to run concurrently per collection (1 by
    default) (default: 1)
    --stopOnError stop restoring if an error is encountered on insert (off by default)
    --bypassDocumentValidation bypass document validation


    # 追加恢复
    mongorestore -h 10.100.25.42:27001 /tmp/mongo_andy.dmp

    # 恢复前先删除数据库中与备份集相同对象
    mongorestore -h 10.100.25.42:27001 --drop /tmp/mongo_andy.dmp

  • 相关阅读:
    ubuntu 安装(install) pwntcha[一个做"验证码识别"的开源程序]
    MySQL 二进制日志过滤
    MySQL 分区表各个分区的行数
    MySQL 表分区A
    MySQL show binglog event in 'log_name'
    MySQL、You are using safe update mode
    SQL 设计心得、逗号分隔列表
    MYSQL @、@@、@x
    SQL Server
    建设供内网访问的网站
  • 原文地址:https://www.cnblogs.com/andy6/p/9830783.html
Copyright © 2020-2023  润新知