mongodb数据导入导出以及备份恢复

数据导出 mongoexport

假设库里有一张user 表,里面有2 条记录,我们要将它导出

> use my_mongodb

switched to db my_mongodb

> db.user.find();

{ "_id" : ObjectId("4f81a4a1779282ca68fd8a5a"), "uid" : 2, "username" : "Jerry", "age" : 100 }

{ "_id" : ObjectId("4f844d1847d25a9ce5f120c4"), "uid" : 1, "username" : "Tom", "age" : 25 }

>

1 常用导出方法

[root
@localhost bin]#
./mongoexport -d my_mongodb -c user -o user.dat

connected to: 127.0.0.1

exported 2 records

[root
@localhost bin]# cat user.dat

{ "_id" : { "$oid" : "4f81a4a1779282ca68fd8a5a" }, "uid" : 2, "username" : "Jerry", "age" : 100 }

{ "_id" : { "$oid" : "4f844d1847d25a9ce5f120c4" }, "uid" : 1, "username" : "Tom", "age" : 25 }

[root
@localhost bin]#

参数说明:

-d 指明使用的库, 本例中为” my_mongodb”

-c 指明要导出的表, 本例中为”user”

-o 指明要导出的文件名, 本例中为”user.dat”

从上面可以看到导出的方式使用的是JSON 的样式

2 导出CSV格式的文件

[root
@localhost bin]#
./mongoexport -d my_mongodb -c user --csv -f uid,username,age -o

user_csv.dat

connected to: 127.0.0.1

exported 2 records

[root
@localhost bin]# cat user_csv.dat

uid,username,age

2,"Jerry",100

1,"Tom",25

[[email protected] bin]#

参数说明:

-csv 指要要导出为csv 格式

-f 指明需要导出哪些例

更详细的用法可以 mongoexport –help 来查看

数据导入mongoimport

在上例中我们讨论的是导出工具的使用,那么本节将讨论如何向表中导入数据
1 导入JSON 数据
我们先将表user 删除掉,以便演示效果
> db.user.drop();
true
> show collections;
system.indexes
>
然后导入数据
[[email protected] bin]# ./mongoimport -d my_mongodb -c user user.dat
connected to: 127.0.0.1
imported 2 objects
[[email protected] bin]#
可以看到导入数据的时候会隐式创建表结构

2 导入CSV数据
我们先将表user 删除掉,以便演示效果
> db.user.drop();
true
> show collections;
system.indexes
>
然后导入数据
[[email protected] bin]# ./mongoimport -d my_mongodb -c user --type csv --headerline --file
user_csv.dat
connected to: 127.0.0.1
imported 3 objects
[[email protected] bin]#
参数说明:
-type 指明要导入的文件格式
-headerline 批明不导入第一行,因为第一行是列名
-file 指明要导入的文件路径
注意:
CSV 格式良好,主流数据库都支持导出为CSV 的格式,所以这种格式非常利于异构数据迁移

数据备份mongodump


可以用mongodump 来做MongoDB 的库或表级别的备份,下面举例说明:
备份my_mongodb 数据库
[[email protected] bin]# ./mongodump -d my_mongodb
connected to: 127.0.0.1
DATABASE: my_mongodb to dump/my_mongodb
my_mongodb.system.indexes to dump/my_mongodb/system.indexes.bson
1 objects
my_mongodb.user to dump/my_mongodb/user.bson
2 objects
[[email protected] bin]# ll
总计 67648
-rwxr-xr-x 1 root root 7508756 2011-04-06 bsondump
drwxr-xr-x 3 root root 4096 04-10 23:54 dump
-rwxr-xr-x 1 root root 2978016 2011-04-06 mongo
此时会在当前目录下创建一个dump 目录,用于存放备份出来的文件
也可以指定备份存放的目录,

[[email protected] bin]# ./mongodump -d my_mongodb -o my_mongodb_dump
connected to: 127.0.0.1
DATABASE: my_mongodb to my_mongodb_dump/my_mongodb
my_mongodb.system.indexes to
my_mongodb_dump/my_mongodb/system.indexes.bson
1 objects
my_mongodb.user to my_mongodb_dump/my_mongodb/user.bson
2 objects
[[email protected] bin]#
这个例子中将备份的文件存在了当前目录下的my_mongodb_dump 目录下

数据恢复mongorestore


由于刚刚已经做了备份,所以我们先将库my_mongodb 删除掉
> use my_mongodb
switched to db my_mongodb
> db.dropDatabase()
{ "dropped" : "my_mongodb", "ok" : 1 }
> show dbs
admin (empty)
local (empty)
test (empty)
>
接下来我们进行数据库恢复
[[email protected] bin]# ./mongorestore -d my_mongodb my_mongodb_dump/*
connected to: 127.0.0.1
Wed Apr 11 00:03:03 my_mongodb_dump/my_mongodb/user.bson
Wed Apr 11 00:03:03 going into namespace [my_mongodb.user]
Wed Apr 11 00:03:03 2 objects found
Wed Apr 11 00:03:03 my_mongodb_dump/my_mongodb/system.indexes.bson
Wed Apr 11 00:03:03 going into namespace [my_mongodb.system.indexes]
Wed Apr 11 00:03:03 { name: "_id_", ns: "my_mongodb.user", key: { _id: 1 }, v: 0 }
Wed Apr 11 00:03:03 1 objects found
[[email protected] bin]#
经验证数据库又回来了,其实要是想恢复库,也大可不必先删除my_mongodb 库,只要指
明 –drop 参数,就可以在恢复的时候先删除表然后再向表中插入数据

时间: 2024-10-06 22:12:18

mongodb数据导入导出以及备份恢复的相关文章

MongoDB学习(三)数据导入导出及备份恢复

这几天想着公司要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下命令均在cmd命令行中输入,导出及备份未指明目录情况下,均保存在当前操作目录下. 数据导出mongoexport 1.常用导出方法:导出数据为json 假设库里有一张area 表,里面有9 条记录,我们要将它导出 >c:\mongo\bin\mongoexport -d iflashbuy_log

数据导入导出、备份恢复

4.数据导入1.作用 :把文件系统的内容导入到数据库中2.语法 load data infile "/var/lib/mysql-files/文件名" into table 表名 fields terminated by "分隔符" lines terminated by "\n";3.将scoretable.csv文件导入到数据库的表中 1.在数据库中创建对应的表 create table scoretab( id int, name varc

搞定linux上MySQL编程(五):数据导入导出和备份

[版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途] 在MySQL中提供多种数据导入方法,比如mysqlinport.sql语句导入以及编写专门导入程序等.通常情况下,数据导入基本步骤科分成3步: 1. 确定导入的数据源,按固定格式存储的文本文件或者SQL文件. 2. 依照导入的文件格式,确定目标数据表,这个数据表如果没有,可以依照导入的文本文件格式,创建一个相对应的数据表. 3. 执行导入命令,将数据导入数据表中. 下面分别介

MongoDB数据导入导出

——————(1)数据导出———————— 导出为JSON格式 mongoexport -d '数据库' -c '表名' -o ***.json 导出为csv mongoexport -d '数据库' -c '表名' --csv -f hostname, startTime -o **.csv //指定每列代表什么 ——————(2)数据导入———————— db.createCollection('log') mongoimport -d ‘数据库’ -c '表名' --file 'json名

MongoDB数据导入导出成csv或者json

1. 从远程数据表拉取数据到本地json文件 mongoexport --host 远程服务器IP --port 远程服务器端口 --username 远程数据库用户名 --password 远程数据库密码 --db 数据库名 --collection 数据表名 -q "{_id: ObjectId('')}" --out /home/user/Public/table.json 2. 将本地json文件导入到本地数据库 mongoimport --db 本地数据库名 --collec

Linux下mongodb安装及数据导入导出教程

Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1.到mongodb的官网(https://www.mongodb.org/downloads) 下载相应你系统的安装包,拷贝(能够用ftp工具如winscp)到你的linux系统上面. 2.解压相应的安装包 命令例如以下:tar zxvf mongodb-linux-x86_64-3.0.4.tgz

mongodb备份恢复,数据导入导出

数据导出 mongoexport 假设库里有一张apachelog表,里面有2 条记录,我们要将它导出 /test/mongodb/bin/mongo use wxdata switched to db wxdata db.apachelog.find(); { "_id" : ObjectId("53993357e0e73ac14b29da8a"), "host" : "66.249.69.194", "metho

Mysql导入导出大量数据的方法、备份恢复办法

经常使用PHP+Mysql的朋友一般都是通过phpmyadmin来管理数据库的.日常的一些调试开发工作,使用phpmyadmin确实很方便.但是当我们需要导出几百兆甚至几个G的数据库时,phpmyadmin就会很卡.甚至如果你是想导入大量数据,则phpmyadmin完全无法完成.因为phpmyadmin是基于PHP网页的,无法上传太大的sql文件.其实mysql官方给了我们很好的解决方案:mysqldump. 下面介绍,如何在Windows环境下,使用mysqldump导出数据库: 找到你mys

搭建 MongoDB 服务器,MongoDB 基本使用,数据导入导出

MongoDB 1.1软件介绍 ? 介于关系数据库和非关系数据库之间的产品 – 一个基于分布式文件存储的数据库. – 由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. – MongoDB 将数据存储为一个文档,数据结构由键值(key=>value) 对组成. – MongoDB 文档类似于 JSON 对象.字段值可以包含其他文档,数组及文档数组. 1.2软件特点 – 安装简单 – 面向文档存储,操作比较简单容易 – 支持丰富的查询表达 – 可以设置任何属性的索引 –