mongodb 数据库操作--备份 还原 导出 导入

一,mongodump备份数据库

1,常用命令格

mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径

如果没有用户谁,可以去掉-u和-p。
如果导出本机的数据库,可以去掉-h。
如果是默认端口,可以去掉--port。
如果想导出所有数据库,可以去掉-d。

2,导出所有数据库

[root@localhost mongodb]# mongodump -h 127.0.0.1 -o /home/zhangy/mongodb/
connected to: 127.0.0.1
Tue Dec 3 06:15:55.448 all dbs
Tue Dec 3 06:15:55.449 DATABASE: test   to   /home/zhangy/mongodb/test
Tue Dec 3 06:15:55.449   test.system.indexes to /home/zhangy/mongodb/test/system.indexes.bson
Tue Dec 3 06:15:55.450     1 objects
Tue Dec 3 06:15:55.450   test.posts to /home/zhangy/mongodb/test/posts.bson
Tue Dec 3 06:15:55.480     0 objects 

。。。。。。。。。。。。。。。。。。。。省略。。。。。。。。。。。。。。。。。。。。。。。。。。

3,导出指定数据库

[root@localhost mongodb]# mongodump -h 192.168.1.108 -d tank -o /home/zhangy/mongodb/
connected to: 192.168.1.108
Tue Dec 3 06:11:41.618 DATABASE: tank   to   /home/zhangy/mongodb/tank
Tue Dec 3 06:11:41.623   tank.system.indexes to /home/zhangy/mongodb/tank/system.indexes.bson
Tue Dec 3 06:11:41.623     2 objects
Tue Dec 3 06:11:41.623   tank.contact to /home/zhangy/mongodb/tank/contact.bson
Tue Dec 3 06:11:41.669     2 objects
Tue Dec 3 06:11:41.670   Metadata for tank.contact to /home/zhangy/mongodb/tank/contact.metadata.json
Tue Dec 3 06:11:41.670   tank.users to /home/zhangy/mongodb/tank/users.bson
Tue Dec 3 06:11:41.685     2 objects
Tue Dec 3 06:11:41.685   Metadata for tank.users to /home/zhangy/mongodb/tank/users.metadata.json

三,mongorestore还原数据库

1,常用命令格式

mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径 

--drop的意思是,先删除所有的记录,然后恢复。

2,恢复所有数据库到mongodb中

[root@localhost mongodb]# mongorestore /home/zhangy/mongodb/  #这里的路径是所有库的备份路径 

3,还原指定的数据库

[root@localhost mongodb]# mongorestore -d tank /home/zhangy/mongodb/tank/  #tank这个数据库的备份路径 

[root@localhost mongodb]# mongorestore -d tank_new /home/zhangy/mongodb/tank/  #将tank还有tank_new数据库中

这二个命令,可以实现数据库的备份与还原,文件格式是json和bson的。无法指写到表备份或者还原。

四,mongoexport导出表,或者表中部分字段

1,常用命令格式

mongoexport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 -f 字段 -q 条件导出 --csv -o 文件名

上面的参数好理解,重点说一下:
-f    导出指字段,以字号分割,-f name,email,age导出name,email,age这三个字段
-q    可以根查询条件导出,-q '{ "uid" : "100" }' 导出uid为100的数据
--csv 表示导出的文件格式为csv的,这个比较有用,因为大部分的关系型数据库都是支持csv,在这里有共同点

2,导出整张表

[root@localhost mongodb]# mongoexport -d tank -c users -o /home/zhangy/mongodb/tank/users.dat
connected to: 127.0.0.1
exported 4 records

3,导出表中部分字段

[root@localhost mongodb]# mongoexport -d tank -c users --csv -f uid,name,sex -o tank/users.csv
connected to: 127.0.0.1
exported 4 records

4,根据条件敢出数据

[root@localhost mongodb]# mongoexport -d tank -c users -q '{uid:{$gt:1}}' -o tank/users.json
connected to: 127.0.0.1
exported 3 records

五,mongoimport导入表,或者表中部分字段

1,常用命令格式

1.1,还原整表导出的非csv文件
mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsert --drop 文件名 
重点说一下--upsert,其他参数上面的命令已有提到,--upsert 插入或者更新现有数据
1.2,还原部分字段的导出文件
mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --upsertFields 字段 --drop 文件名 
--upsertFields根--upsert一样
1.3,还原导出的csv文件
mongoimport -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -c 表名 --type 类型 --headerline --upsert --drop 文件名 
上面三种情况,还可以有其他排列组合的。

2,还原导出的表数据

[root@localhost mongodb]# mongoimport -d tank -c users --upsert tank/users.dat
connected to: 127.0.0.1
Tue Dec 3 08:26:52.852 imported 4 objects

3,部分字段的表数据导入

[root@localhost mongodb]# mongoimport -d tank -c users  --upsertFields uid,name,sex  tank/users.dat 
connected to: 127.0.0.1 
Tue Dec  3 08:31:15.179 imported 4 objects

4,还原csv文件

[root@localhost mongodb]# mongoimport -d tank -c users --type csv --headerline --file tank/users.csv
connected to: 127.0.0.1
Tue Dec 3 08:37:21.961 imported 4 objects

总体感觉,mongodb的备份与还原,还是挺强大的,虽然有点麻烦。

(0)

相关推荐

  • MongoDB常用操作命令大全

    如:如果你想创建一个"myTest"的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫"myTest"的数据库. 一.数据库常用命令1.Help查看命令提示 复制代码 代码如下: helpdb.help();db.yourColl.help();db.youColl.find().help();rs.help(); 2.切换/创建数据库 复制代码 代码如下: use you

  • MongoDB数据库文档操作方法(必看篇)

    前面的话 本文将详细介绍MongoDB数据库关于文档的增删改查 如果数据库中不存在集合,则MongoDB将创建此集合,然后将文档插入到该集合中 要在单个查询中插入多个文档,可以在insert()命令中传递文档数组 可以使用js语法,插入多个文档 [save()] 插入文档也可以使用db.post.save(document). 如果不在文档中指定_id,那么save()方法将与insert()方法一样自动分配ID的值.如果指定_id,则将以save()方法的形式替换包含_id的文档的全部数据.

  • MongoDB入门教程之细说MongoDB数据库的增删查改操作

    看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongodb,突然 傻眼了,擦,竟然开启不了,仔细观察"划线区域"的信息,发现db文件夹下有一个类似的"lock file"阻止了mongodb的开启,接下来我们要做的就 是干掉它,之后,开启成功,关于mongodb的管理方式将在后续文章分享.  一: Insert操作 上一篇也说过,文档是采用"K-V"格式存储的,如果大家对JSO

  • 基于MongoDB数据库的数据类型和$type操作符详解

    前面的话 本文将详细介绍MongoDB数据库的数据类型和$type操作符 类型 数字 备注 Double 1 双精度浮点数 - 此类型用于存储浮点值 String 2 字符串 - 这是用于存储数据的最常用的数据类型.MongoDB中的字符串必须为UTF-8 Object 3 对象 - 此数据类型用于嵌入式文档 Array 4 数组 - 此类型用于将数组或列表或多个值存储到一个键中 Binary data 5 二进制数据 - 此数据类型用于存储二进制数据 Undefined 6 已废弃 Objec

  • mongodb 数据库操作--备份 还原 导出 导入

    一,mongodump备份数据库 1,常用命令格 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户谁,可以去掉-u和-p. 如果导出本机的数据库,可以去掉-h. 如果是默认端口,可以去掉--port. 如果想导出所有数据库,可以去掉-d. 2,导出所有数据库 [root@localhost mongodb]# mongodump -h 127.0.0.1 -o /home/zhangy/mongodb/ connecte

  • Python常见MongoDB数据库操作实例总结

    本文实例讲述了Python常见MongoDB数据库操作.分享给大家供大家参考,具体如下: MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可

  • PHP实现的mongoDB数据库操作类完整实例

    本文实例讲述了PHP实现的mongoDB数据库操作类.分享给大家供大家参考,具体如下: 最近的项目开发中使用的数据库是mongodb数据库,因为小编的公司也是刚刚使用mongodb数据库,所以之前没有封装好的mongodb数据库操作类拿来使用,所以小编在项目中自己封装了一个mongodb数据库操作类,特拿出来分享,不尽人意的地方希望大家勿喷. 众所周知,mongodb是典型的nosql数据库的代表,受到很多开发者的追捧,近几年尤为火热,mongodb的流行不是没有原因的,下边给大家简单介绍下Mo

  • MySQL用作备份还原的导入和导出命令用法整理

    mysqldump 命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql    (输入后会让你输入进入MySQL的密码) (如果导出单张表的话在数据库名后面输入表名

  • sql2005 数据库转为sql2000数据库的方法(数据导出导入)

    假如你用SQL2005做一个数据库备份,然后把这个备份到装有SQL2000的服务器去恢复,是恢复不了,同样,你把SQL2005数据库附加到SQL2000,也是失败,怎么办,见如下 1. 生成for 2000版本的数据库脚本 2005 的manger studio -- 打开"对象资源管理器"(没有的话按F8), 连接到你的实例 -- 右键要转到2000的库 -- 任务 -- 生成脚本 -- 在"脚本向导"的"选择数据库"中, 确定选择的是要转到2

  • mongodb 数据库操作详解--创建,切换,删除

    mongodb安装就不说了,请参考:centos yum 安装 mongodb 以及php扩展 一,创建,切换,删除数据库 [root@localhost zhangy]# mongo MongoDB shell version: 2.4.6 connecting to: tank > use test //创建 or 切换数据库 switched to db test > db.dropDatabase() //删除数据库 { "dropped" : "test

  • PHP实现的MongoDB数据库操作类分享

    class HMongodb { private $mongo; //Mongodb连接 private $curr_db_name; private $curr_table_name; private $error; public function getInstance($mongo_server, $flag=array()) { static $mongodb_arr; if (empty($flag['tag'])) { $flag['tag'] = 'default'; } if (

  • 自用mysql自带命令实现数据库备份还原的方法

    本文章介绍了都是mysql常用的命令一些数据导入导出的命令了,只要我们撑握这些命令就可以方法快速的给我们的数据库进行备份还原了 mysql数据到导入导出 500MB数据 问题:500M的库表数据,需要导入到新的数据库中. 首先通过控制台进入mysql mysql -u root -p 12345 CREATE DATABASE `demo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; use demo:切换数据库 source file

  • PHP数据库操作四:mongodb用法分析

    本文实例讲述了PHP数据库mongodb用法.分享给大家供大家参考,具体如下: 传统数据库中,我们要操作数据库数据都要书写大量的sql语句,而且在进行无规则数据的存储时,传统关系型数据库建表时对不同字段的处理也显得有些乏力,mongo应运而生,而且ajax技术的广泛应用,json格式的广泛接受,也使得mongo更贴近开发人员. mongo简介及应用场景 MongoDB是一个面向文档的非关系型数据库(NoSQL),使用json格式存储.Mongo DB很好的实现了面向对象的思想(OO思想),在Mo

  • 【MongoDB for Java】Java操作MongoDB数据库

    本篇文章主要介绍Java操作MongoDB. 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开发依赖库: JavaEE5.mongo-2.5.3.jar.junit-4.8.2.jar 一.准备工作 1. 首先,下载mongoDB对Java支持的驱动包 驱动包下载地址:http://www.jb51.net/softs/41751.html mongoDB对Java的相关支持.技术:http://www.mongodb

随机推荐