一:导出 mongoexport
mongoexport --help可以查看mongodb导出的所有参数(linux下用./mongoexport --help),若指定为csv格式的可以加上参数--csv
常用参数:
-h host 主机
-port port 端口
-u username 用户名
-p passwd 密码
-d 库名
-c 表名 必填的参数,只有存在的表名才有可能导出数据
-f 'field1,field2' 列名 注意json导出实际还会加上'_id'字段
-q 查询条件
-csv 导出格式
-o 导出文件名
eg1:
./mongoexport -h 127.0.0.1 --port 27017 -u test -p aaaaaa -d test -c user -f 'age,sex' -q '{age:{$lte:20}}' --type json -o user.json
eg2:
./mongoexport -h 127.0.0.1 --port 27017 -u test -p aaaaaa -d test -c user -f 'age,sex' -q '{age:{$lte:20}}' --type csv -o user.csv
eg3: 未开启认证的导出
mongoexport -d ichpms -c user -o E:/user.json 导出ichpms中的user集合到E盘根目录下的user.json文件
注意:mongoexport 一次只能导出一个collection,且只导出了collection的数据,collection对应的索引信息没有导出来。
二:导入 mongoimport
常用参数:
-h host 主机
-port port 端口
-u username 用户名
-p passwd 密码
-d 库名
-c 表名 必填的参数,不存在的表名直接写入数据,存在的表名追加记录。
--type 被导入的文件类型,默认是json,非json格式的都需要明确指定
--headerline 使用第一行作为字段名(只有导入csv格式才能使用,且不能和-f参数同时使用)
--file 导入的文件名
json 格式的导入
eg1:
./mongoimport -h 127.0.0.1 --port 27017 -u test -p aaaaaa -d test -c userjson --type json --file ./user.json
eg2: 未开启认证的导入
mongoimport -d testdb -c user --file E:/user.json 将 E:/user.json 文件导入到testdb数据库中的user集合中去。
cvs格式的导入
csv格式导入时必须申明格式是csv格式,必须指定--headerline参数,且不能使用-f参数
eg1:
./mongoimport -h 127.0.0.1 --port 27017 -u test -p aaaaaa -d test -c usercsv --headerline --type csv --file ./user.csv
注意:mongoimport 一次只能将一个文件导入到一个指定集合中去,由于数据文件中不可能有索引,所以经过mongoexport和mongodbimport后索引信息被丢失了。
三:备份 mongodump 备份的是二进制文件,效率高,连索引信息一起备份出来了。
每个collection备份出两个文件,一个是二进制.bson格式的数据文件,.json格式的索引文件。
mongodump --help 可以再mongodb中看到所有的参数(linux下用./mongodump --help)
常用参数:
-h host 主机
-port port 端口
-u username 用户名
-p passwd 密码
-d 库名
-c 表名 可选参数 默认是导出所有collection
-o 备份的文件路径 可选参数,默认是当前路径下的dump文件夹中
eg1:
./mongodump -h 127.0.0.1 --port 27017 -u test -p aaaaaa -d test #备份整个test数据库
eg2:
./mongodump -h 127.0.0.1 --port 27017 -u test -p aaaaaa -d test -c user #只备份test数据库的user集合
MongDB运行时备份(导出)指定数据库:
切换到bin目录下
./mongodump -h 127.0.0.1 -u root -p aaaaaa -d ichpms -o /data/userdata/
参数说明:
-h ip地址 -u 用户 -p 密码 -d 数据库 -o导出数据库存储的文件的路径
将导出的数据库文件压缩成zip文件
zip -p -r ichpms.zip /data/userdata/ichpms
注意:若导出过程中报下面错误:
assertion: 18 { code: 18, ok: 0.0, errmsg: "auth fails" }
step1:检查要导出的数据库是否存在。
step2:当数据库存在还报这个错误进入数据库之后执行 db.addUser('root','aaaaaa')
step3:若是Shell版本问题那就xxxxxx
四:恢复 mongorestore
恢复二进制文件到指定数据库 效率高
mongorestore --help 可以再mongodb中看到所有的参数(linux下用./mongorestore --help)
常用参数:
-h host 主机
-port port 端口
-u username 用户名
-p passwd 密码
-d 库名
--dir 要恢复的文件路径
--drop 在导入集合之前如果数据库中已存在集合,则会先将已存在的集合删除。注意不会先删除数据库。
--authenticationDatabase 认证的数据库名 (-u -p 对应的数据库)
eg1:关闭认证的恢复
./mongorestore -h 127.0.0.1 --port 27017 -d testrestore1 --dir ./dump/test
eg2:开启认证的恢复(其它数据库认证恢复)
./mongorestore -h 127.0.0.1 --port 27017 -u root3 -p aaaaaa --authenticationDatabase admin -d testrestore2 --dir ./dump/test
eg3:开启认证的恢复(本数据库认证恢复)
use admin
db.auth('root3','aaaaaa'); 先认证超级管理员用户
use testrestore3
db.createUser({
user:'u1',
pwd:'aaaaaa',
roles:['readWrite']
});
db.logout();
db.auth('u1','aaaaaa');
./mongorestore -h 127.0.0.1 --port 27017 -u u1 -p aaaaaa -d testrestore3 --dir ./dump/test
MongDB运行时恢复(导入)到指定数据库:
2.x 下的导入方式
./mongorestore -h 127.0.0.1:27017 -d ichpms --directoryperdb /data/userdata/ichpms --drop 将指定路径下的文件导入到ichpms数据库中去,若数据库不存在会创建数据库。--drop表示在导入之前先删除数据库中的所有集合
3.x 下的导入方式
mongorestore -h 192.168.10.15:27017 -u user-p password --authenticationDatabase=databaseName -d cms3 --dir=/data/dbdata/cms3 --drop
192.168.10.15 要恢复到的数据库的ip
databaseName 认证 -u user-p password用户信息的数据库名称。
导入、导出、备份、恢复总结:mongoexport和mongoimport 可以跨版本进行,而mongoredump和mongorestore可能会因为MongoDB数据库版本的问题导致BSON文件格式不同导致无法恢复。
克隆本地的collection
db.source_collection.find().forEach(function(x){db.target_collection.insert(x)});
将source_collection中的数据复制一份到target_collection。
克隆本地的数据库
db.copyDatabase("source_db","target_db","localhost");
将source_db数据库复制到本地,并重新命名为target_db
远程克隆Collection
远程克隆数据库( 将指定ip上的fromDB数据库复制一份存到本地为toDB):
格式:copyDatabase(fromdb,todb,fromhost[,username,password])
fromdb:源数据库名称
todb:目标数据库名称
fromhost:源数据库地址,本地和远程都可以
username:远程数据库用户名
password:远程数据密码
db.copyDatabase("fromDB","toDB","192.168.10.10") 192.168.10.10是fromhost
相关推荐
总结来说,MongoDB的`mongoexport`和`mongoimport`提供了强大的数据导入导出能力,能够灵活地处理各种数据格式,满足开发人员和管理员在数据管理中的多种需求。正确理解和使用这些工具,能有效提高工作效率,确保...
"mongodb 备份恢复工具" 主要涉及到MongoDB提供的多种工具,如mongobackup、mongoexport以及mongosync等,用于实现数据的备份和恢复。 **mongobackup** 是一个针对复制集的增量备份工具,它能够持续跟踪并备份自...
本篇文章将深入讲解MongoDB的数据导出、导入和备份恢复操作,并通过实例进行演示。 ### 1. 数据导出 MongoDB 提供了一个名为 `mongoexport` 的命令行工具,用于将数据导出为JSON、CSV或TSV格式。以下是一些关键...
在运维MongoDB的过程中,数据的备份与恢复是至关重要的环节,以确保数据的安全性和业务连续性。本篇文章将详细讲解MongoDB的常用备份工具`mongoexport`、`mongoimport`以及`mongodump`和`mongorestore`的使用方法。 ...
MongoDB安装包缺少对应的工具包,需要单独下载进行使用,需要讲下载的文件放在MongoDB安装后的bin目录下即可使用MongoDB的导出和恢复功能
总的来说,MongoGitBackup是MongoDB数据库管理和保护的一个强大工具,结合了MongoDB的文本导出、Git的版本控制以及GitHub的云存储优势,为企业和个人提供了可靠的数据备份和恢复方案。通过灵活配置,用户可以根据...
在实际的数据库管理工作中,数据的导入导出是常见的操作,尤其是在数据迁移、备份、恢复或者数据分析时。本文将深入分析MongoDB的数据导入导出,主要关注其内置工具`mongoexport`和`mongoimport`。 ### 一、MongoDB...
总结,MongoDB 的文档管理和数据备份恢复是其核心功能,通过理解这些概念和工具,开发者能够更好地管理和保护 MongoDB 数据库。同时,了解数据导入导出方法有助于在不同环境间迁移数据,实现数据的高效流动。
在IT领域,数据库之间的导入导出是一项至关重要的任务,尤其对于数据迁移、备份恢复、数据分析等场景。本文将深入探讨如何使用Java实现不同(或相同)数据源的数据库间的数据导入导出,以及异构数据源之间数据的迁移...
`mongodump` 和 `mongorestore` 是MongoDB官方提供的用于备份和恢复数据的工具,这两个命令对于数据的安全管理和迁移至关重要。 1. **mongodump**: 这个命令用于将MongoDB数据库中的数据导出为二进制文件(BSON格式...
在实际运营中,为了防止数据丢失,确保系统的稳定运行,MongoDB的备份和恢复策略至关重要。下面我们将深入探讨MongoDB的几种备份方式。 首先,我们提到的是`mongodump`和`mongorestore`命令。这两个工具是MongoDB...
### MySQL与MongoDB的定时备份知识点详解 #### 一、MySQL与MongoDB备份的重要性 ...通过上述步骤,我们可以有效地实现MySQL和MongoDB数据库的定时备份及恢复功能,保障数据的安全性和业务的连续性。
在Linux操作系统中,数据库的导入导出是数据库管理员日常工作中不可或缺的部分,特别是在系统迁移、备份恢复或性能优化等场景中。本篇文章将详细介绍如何在Linux环境下进行数据库的dump(备份)以及如何导入这些备份...
以下是对 MongoDB 备份命令的详细解释,以及如何使用 JSON 和 CSV 格式进行数据导出和导入。 1. **MongoDB 备份命令**: MongoDB 提供了两种主要的备份方法:`mongodump` 和 ` mongorestore`。`mongodump` 用于...
它提供了丰富的功能,如数据浏览、查询、导入导出、备份恢复以及性能分析等,极大地简化了 MongoDB 的日常运维工作。 1. **数据浏览**:Studio 3T 提供了一个直观的界面,允许用户通过树状视图查看数据库、集合、...
在MongoDB的日常管理中,备份、还原、导出、导入和克隆等操作是至关重要的,以确保数据的安全性和一致性。以下是这些操作的详细说明: 1. **数据库备份**: 使用`mongodump`工具可以将MongoDB数据库备份到文件系统...
MongoDB提供了`mongorestore`命令用于将之前备份的数据恢复到MongoDB中。 ``` mongorestore [-h <host>:] [-d ] [--directoryperdb] ``` - **参数说明**: - `-h <host>:<port>`: 指定MongoDB服务所在的主机地址...