一.mongodump备份
mongodump主要是用于库和集合的备份,适用于数据量比较小的场景,不适用于大数据量的备份
- 仅备份数据库中的文档,不备份索引
- 备份过程会对mongod服务性能产生影响
使用语法:
mongodump <options>
常用参数
参数 | 说明 |
---|---|
-h, --host | 数据库ip地址 |
–port | 数据库端口 |
-u, --username | 数据库用户 |
-p, --password | 用户密码 |
--authenticationDatabase | 用户所在库 |
--authenticationMechanism | 认证机制 |
--help | 帮助信息 |
--version | 版本信息 |
-v, --verbose | 输出详细日志信息 |
--quiet | 安静输出 |
-d, --db | 数据库名称 |
-c, --collection | 集合名称 |
-j, --numParallelCollections | 备份进程数,默认4个 |
--uri | 指定mongodb-uri的的登录方式 |
-q, --query | 查询条件 |
--queryFile | 以文件信息导入查询条件信息 |
--readPreference=<string>|<json> | 指定一个首选项名称或首选项json对象 |
--forceTableScan | 强制扫描全表 |
-o, --out | 输出文件路径 |
--gzip | gzip方式压缩输出文件 |
--repair | 修复文档,部分引擎支持 |
--oplog | mongodump将会在执行备份期间的oplog日志输出到文件oplog.bson,即记录备份期间的数据集操作 |
--archive | 归档路径 |
--dumpDbUsersAndRoles | 备份创建的用户和角色 |
--excludeCollection | 指定不备份的集合名称 |
--viewsAsCollections | 将视图按照正常集合形式备份 |
测试
- 转储成bson和json的备份文件形式
- bson二进制文件,可以使用mongodb自带命令工具bsondump进行解析
## 备份所有库,即整个实例
./mongodump --host 127.0.0.1 --port 27017 -u root -p 123456 -o /temp/mongodb-2021-12-26
## 备份指定数据库
./mongodump --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase=admin -d test -o /temp/mongodb-test
## 备份指定的集合
./mongodump --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase=admin -d test -c test -o /temp/mongodb-test.test
## 备份指定条件
./mongodump --host 127.0.0.1 --port 27017 -u root -p 123456 --authenticationDatabase=admin -d test -c user --query='{age:"{$lt:19}"}' -o user
二.mongorestore数据恢复
mongorestore仅仅执行insert操作,不执行update操作。同时mongorestore不恢复system.profile的数据
使用语法:
mongorestore <options> <directory or file to restore>
常用参数
参数 | 说明 |
---|---|
-h, --host | 数据库ip地址 |
–port | 数据库端口 |
-u, --username | 数据库用户 |
-p, --password | 用户密码 |
--authenticationDatabase | 用户所在库 |
--authenticationMechanism | 认证机制 |
--help | 帮助信息 |
--version | 版本信息 |
-v, --verbose | 输出详细日志信息 |
--quiet | 安静输出 |
-d, --db | 数据库名称 |
-c, --collection | 集合名称 |
--uri | 指定mongodb-uri的的登录方式 |
--excludeCollection | 指定跳过某个或某些集合不进行恢复 |
--excludeCollectionsWithPrefix | 指定跳过一系列符合某些前缀的集合不进行恢复 |
--nsExclude | 指定不包含namespaces |
--nsInclude | 指定包含namespaces |
--nsFrom 和 --nsTo | 重命名namespaces,这个两个参数要同时一起使用 |
--objcheck | 数据插入前进行校验 |
--oplogReplay | 重放oplog进行快照恢复 |
--oplogLimit | 限定恢复数据 |
--oplogFile | oplog文件路径 |
--archive | 指定归档路径恢复 |
--restoreDbUsersAndRoles | 恢复用户和权限 |
--dir | 恢复的数据路径 |
--gzip | gzip解压 |
--drop | 导入之前先删除集合 |
--dryRun | 预执行,并不实际运行,可用于正在操作之前进行检测 |
--noIndexRestore | 不恢复索引 |
--noOptionsRestore | 不恢复集合 |
--keepIndexVersion | 保持索引版本不变 |
--maintainInsertionOrder | 保持插入顺序 |
-j, --numParallelCollections | 恢复的并发进程数,默认4 |
--numInsertionWorkersPerCollection | 每个集合要并发运行的插入操作数,默认1 |
--stopOnError | 如果在插入时遇到错误,则停止恢复 |
--bypassDocumentValidation | 忽略文档验证 |
--preserveUUID | 保留原始集合uuid,默认是关闭 |
测试
./mongorestore --host 127.0.0.1 --port 27017 -u root -p 123456 /temp/mongodb-2021-12-26/