Mongodb数据库的备份与恢复操作实例_MongoDB

写在前面

本文已经假设你已经安装好了Mongodb(2.6),并且已经开启了auth。

用户

首先我们添加备份和恢复数据所需的用户,这个用户需要有readWrite和userAdmin权限

复制代码 代码如下:

$ mongo
$ use admin
$ db.auth("admin", "youradminpasswd");
$ use backupdb
$ db.addUser({ user: "backup", pwd: "passwd", roles: [ "readWrite", "userAdmin" ] })

备份

注:此命令是在控制台中执行
我们使用mongodump来进行数据的备份(注意:mongodump不会备份local数据库中内容)。

mongodump可以通过以下两种方式来进行数据的备份:

连接到mongod或者mongos

直接访问数据文件

这个工具可以备份整个服务器、单个database或者单个collection的数据,也可以通过查询语句只备份collection中的部分数据。

如果不带任何参数直接执行mongodump,那么它会去连接本地(127.0.0.1或者localhost)27017端口上的MongoDB实例,并且会创建名为dump的备份。

复制代码 代码如下:

$ mongodump --host mongodb.example.net --port 27017 --db test --collection some --username backup --password passwd

以上会使mongodump连接到mongodb.example.net:27017上的mongod,并且把dbtest中的somecollection备份到dump目录下

注意:从Mongodb2.2版本开始,mongodump使用的数据格式与旧版本的mongod实例不兼容。所以不要使用新版本(>=2.2)的mongodump去备份旧数据。

恢复

使用mongodump备份的数据,需要使用mongorestore来恢复。

mongorestore恢复数据的方式与mongodump相对应,也是分为两种:

连接到mongod或者mongos

直接写入到数据文件

mongorestore既可以恢复整个备份也可以恢复一部分。

复制代码 代码如下:

$ mongorestore --host mongodb.example.net --port 27017 --db test --collection some --username backup --password password /data/backup

以上会从/data/backup中恢复数据,其中只恢复testdb中somecollection到mongodb.example.net:27017中。如果不指定--host和--portoption,那么mongorestore会默认使用localhost:27017。

注:在还原时必需在将要还原的数据库上新建将要还原的数据与所属的用户   --drop的意思是删除库中原来的数据库并将数据库还原上去
此命令是在控制台中执行

时间: 2024-12-23 07:15:20

Mongodb数据库的备份与恢复操作实例_MongoDB的相关文章

MongoDB教程之数据操作实例_MongoDB

1.  批量插入:      以数组的方式一次插入多个文档可以在单次TCP请求中完成,避免了多次请求中的额外开销.就数据传输量而言,批量插入的数据中仅包含一份消息头,而多次单条插入则会在每次插入数据时封装消息头数据.对于数据导入而言,我们可以使用mongoimport完成.  2.  数据库清除: 复制代码 代码如下:     > db.users.remove()       以上命令将会清除users集合中的所有数据,但是不会删除集合本身以及关联的索引.数据删除操作是不可恢复的,一旦删除就物

MongoDB教程之查询操作实例_MongoDB

1.  基本查询:     构造查询数据.   复制代码 代码如下:     > db.test.findOne()     {          "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"),          "name" : "stephen",          "age" : 35,          "genda" : &qu

MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码_MongoDB

MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 下面给大家介绍MongoDB查询文档操作的实例 先把student删除,再重新插入数据 > db.student.drop() true > db.student.insert([{ "_id" : 1, "

PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例_MongoDB

PHP 扩展mongon.mod.dll下载http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.windows 然后php.ini添加 extension=php_mongo.dll 最后phpinfo() 查找到 表标PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器) 一.连接数据库 使用下面的代码创建一个数据库链接 复制代码 代码如下: <?php $conne

Yii框架连接mongodb数据库的代码_php实例

yii2框架是yii的升级版本,本文我们分别讲解在yii框架中如何连接数据库mongodb. 在文件夹common/config/main_local.php中加入如下代码: <?php return [ 'components' => [ 'mongodb' => [ 'class' => 'yii\mongodb\Connection', 'dsn' => 'mongodb://localhost:27017/数据库名' ], ], ]; 以上所述是小编给大家介绍的Yii

MongoDB数据库forEach循环遍历用法_MongoDB

MongoDB数据库forEach语句循环遍历功能是非常常用的一个功能. 采用foreach循环遍历,并每次循环允许执行一次回调函数. 此外,foreach循环遍历是for循环的一种扩展,对比同浏览器端的forEach用法是一致的. 示例如下: >var arr = ["ab","cd","ef"] >var show = function(value,index,ar){ print(value) } >arr.forEach

MongoDB入门教程之C#驱动操作实例_MongoDB

作为系列的最后一篇,得要说说C#驱动对mongodb的操作,目前驱动有两种:官方驱动和samus驱动,不过我个人还是喜欢后者, 因为提供了丰富的linq操作,相当方便. 官方驱动:https://github.com/mongodb/mongo-csharp-driver/downloads.下载后,还提供了一个酷似msdn的帮助文档. samus驱动:https://github.com/samus/mongodb-csharp/downloads. 下面就具体看看samus驱动,https:

PHP中的mongodb group操作实例_MongoDB

紧接着上篇来,这篇主要讲,mongodb的group功能,做的还是挺强大的,相当对于find(),skip(),distinct()等,用法比较复杂. 测试数据: 复制代码 代码如下: > db.fruit.find();  { "_id" : 1, "category" : "fruit", "name" : "apple" }  { "_id" : 2, "categ

mongodb数据库分布式读写操作教程

一. 分布式读操作 介绍分片集群和副本集如何影响读操作的性能. 1.1 分片集群读操作 分片集群允许数据分割到集群内的不同mongod实例上,这对应用程序来说几乎是透明的. 对于分片集群,应用程序发出操作与集群相关的mongos实例.     读操作直接定向到一个特定的分片上,集群读操作是最有效的. 查询到分片集合应该包括集合分片片键. 当一个查询包含分片片键,mongos从config server使用集群元数据将查询路由到分片. 查询条件包括分片关键.查询路由器mongos将查询直接到定位到