`

MongoDB导入、导出、备份、恢复

阅读更多

一:导出  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导入与导出.pdf

    总结来说,MongoDB的`mongoexport`和`mongoimport`提供了强大的数据导入导出能力,能够灵活地处理各种数据格式,满足开发人员和管理员在数据管理中的多种需求。正确理解和使用这些工具,能有效提高工作效率,确保...

    mongodb 备份恢复工具

    "mongodb 备份恢复工具" 主要涉及到MongoDB提供的多种工具,如mongobackup、mongoexport以及mongosync等,用于实现数据的备份和恢复。 **mongobackup** 是一个针对复制集的增量备份工具,它能够持续跟踪并备份自...

    MongoDB 导出导入备份恢复数据详解及实例

    本篇文章将深入讲解MongoDB的数据导出、导入和备份恢复操作,并通过实例进行演示。 ### 1. 数据导出 MongoDB 提供了一个名为 `mongoexport` 的命令行工具,用于将数据导出为JSON、CSV或TSV格式。以下是一些关键...

    MongoDB的备份与恢复1

    在运维MongoDB的过程中,数据的备份与恢复是至关重要的环节,以确保数据的安全性和业务连续性。本篇文章将详细讲解MongoDB的常用备份工具`mongoexport`、`mongoimport`以及`mongodump`和`mongorestore`的使用方法。 ...

    MongoDB数据库备份恢复工具包

    MongoDB安装包缺少对应的工具包,需要单独下载进行使用,需要讲下载的文件放在MongoDB安装后的bin目录下即可使用MongoDB的导出和恢复功能

    mongogitbackup是一个将MongoDB文本导出存储在Github中的工具

    总的来说,MongoGitBackup是MongoDB数据库管理和保护的一个强大工具,结合了MongoDB的文本导出、Git的版本控制以及GitHub的云存储优势,为企业和个人提供了可靠的数据备份和恢复方案。通过灵活配置,用户可以根据...

    深入分析Mongodb数据的导入导出

    在实际的数据库管理工作中,数据的导入导出是常见的操作,尤其是在数据迁移、备份、恢复或者数据分析时。本文将深入分析MongoDB的数据导入导出,主要关注其内置工具`mongoexport`和`mongoimport`。 ### 一、MongoDB...

    mongo 文档及 数据备份还原及导入导出手册

    总结,MongoDB 的文档管理和数据备份恢复是其核心功能,通过理解这些概念和工具,开发者能够更好地管理和保护 MongoDB 数据库。同时,了解数据导入导出方法有助于在不同环境间迁移数据,实现数据的高效流动。

    不同数据库间的导入导出

    在IT领域,数据库之间的导入导出是一项至关重要的任务,尤其对于数据迁移、备份恢复、数据分析等场景。本文将深入探讨如何使用Java实现不同(或相同)数据源的数据库间的数据导入导出,以及异构数据源之间数据的迁移...

    mongodb导出导入

    `mongodump` 和 `mongorestore` 是MongoDB官方提供的用于备份和恢复数据的工具,这两个命令对于数据的安全管理和迁移至关重要。 1. **mongodump**: 这个命令用于将MongoDB数据库中的数据导出为二进制文件(BSON格式...

    浅谈MongoDB的备份方式

    在实际运营中,为了防止数据丢失,确保系统的稳定运行,MongoDB的备份和恢复策略至关重要。下面我们将深入探讨MongoDB的几种备份方式。 首先,我们提到的是`mongodump`和`mongorestore`命令。这两个工具是MongoDB...

    mysql和mongodb的定时备份

    ### MySQL与MongoDB的定时备份知识点详解 #### 一、MySQL与MongoDB备份的重要性 ...通过上述步骤,我们可以有效地实现MySQL和MongoDB数据库的定时备份及恢复功能,保障数据的安全性和业务的连续性。

    linux下数据库dump的导入导出

    在Linux操作系统中,数据库的导入导出是数据库管理员日常工作中不可或缺的部分,特别是在系统迁移、备份恢复或性能优化等场景中。本篇文章将详细介绍如何在Linux环境下进行数据库的dump(备份)以及如何导入这些备份...

    mongodb备份

    以下是对 MongoDB 备份命令的详细解释,以及如何使用 JSON 和 CSV 格式进行数据导出和导入。 1. **MongoDB 备份命令**: MongoDB 提供了两种主要的备份方法:`mongodump` 和 ` mongorestore`。`mongodump` 用于...

    mongodb 连接工具studio-3t-x64

    它提供了丰富的功能,如数据浏览、查询、导入导出、备份恢复以及性能分析等,极大地简化了 MongoDB 的日常运维工作。 1. **数据浏览**:Studio 3T 提供了一个直观的界面,允许用户通过树状视图查看数据库、集合、...

    MongoDB备份、还原、导出、导入、克隆操作示例

    在MongoDB的日常管理中,备份、还原、导出、导入和克隆等操作是至关重要的,以确保数据的安全性和一致性。以下是这些操作的详细说明: 1. **数据库备份**: 使用`mongodump`工具可以将MongoDB数据库备份到文件系统...

    mongodb与oracle11的备份还原命令

    MongoDB提供了`mongorestore`命令用于将之前备份的数据恢复到MongoDB中。 ``` mongorestore [-h <host>:] [-d ] [--directoryperdb] ``` - **参数说明**: - `-h <host>:<port>`: 指定MongoDB服务所在的主机地址...

Global site tag (gtag.js) - Google Analytics