浅谈MongoDB的备份方式_MongoDB

简要说一下MongoDB的备份方式:

1. mogodump / mongorestore

这2命令将mongodb的数据dump为BSON格式,需要的时候可以恢复。
这种方式作为小的数据库还适用。但如果是sharding或者几百G数据以上的话
就几乎不可用了。因为BSON及其占用空间。

2. Slave Replication

这是最适合和可靠的,适合生产环境。MongoDb支持master+多个slave。因此可以很方便的起一个slave来进行备份。
但是需要注意的是如果数据量很大的话,如果是新建的slave,速度又没有保证的话,一定要调高 oplogSize 的大小,对于一个300G的数据库,
可以调到60G以上。这样避免同步到中间出现oplogSize不足等异常。

3. 关于增量热备份

对于某些热衷单独文件备份的同志,也可以考虑使用“增量热”备份的方式作为最后的屏障。
做法就是,最开始将某个slave暂时shutdown,然后将数据库文件复制到另一个目录作为增量备份的起点。

每次备份的时候,在这个目录上起一个slave, 使用–fastsync参数,同步完毕即可tar这个目录就可以了。

这种方式的一个缺点就是如果备份周期的过长的话,空间浪费会非常大,尤其是频繁删除的情况下,
目前1.6以前的版本对于删除的空间回收机制有bug。这个问题应该在1.6版本发布时候解决。

要想回收这些空间需要repairDatabase,速度比较慢,不如直接从头clone一个新的db了。(其实Repair的过程也就是先clone然后copy回来)。

综上所述, 最靠谱和安全的备份方式就是用mongodb自身的同步复制机制.
最经典也最小的生产环境是:
1 master + 2 slaves

以上所述就是本文关于MongoDB的备份方式的全部内容了,希望大家能够喜欢。

时间: 2024-12-20 22:44:59

浅谈MongoDB的备份方式_MongoDB的相关文章

浅谈mongodb中query查询_MongoDB

Mongodb最大的功能之一就是它支持动态查询,就跟传统的关系型数据库查询一样,但是它的查询来的更灵活. 一.  Query Expression Objects:查询表达式对象 查询表达式文档也是一个BSON结构的文档,例如,我们可以用下面的查询语句来查询集合中的所有记录: db.users.find({}) 这里,表达式对象是一个空文档,在查询的时候去去匹配所有的记录.再看: 复制代码 代码如下: db.users.find({'last_name': 'Smith'}) 这里,我们将会查询

浅谈JS函数定义方式的区别_javascript技巧

关于JS的函数定义方式有以下两种: (1)典型的函数声明 function slide(arguments){ //...code } (2)以函数表达式的形式定义函数 var slide = function(arguments){ //...code } 虽然上面两种方式逻辑上是等价的,但是还是有点小区别: 区别一:例一中的函数会在代码执行以前被加载到作用域中,而例二则是在代码执行到那一行的时候才会有定 义: 区别二:函数声明会给函数指定一个名字,而函数表达式则是创建一个匿名函数,然后将这个

浅谈js文件引用方式及其同步执行与异步执行_java

任何以appendChild(scriptNode) 的方式引入的js文件都是异步执行的 (scriptNode 需要插入document中,只创建节点和设置 src 是不会加载 js 文件的,这跟 img 的与加载不同 ) html文件中的<script>标签中的代码或src引用的js文件中的代码是同步加载和执行的 html文件中的<script>标签中的代码使用document.write()方式引入的js文件是异步执行的 html文件中的<script>标签src

浅谈尾递归的优化方式

在上文<尾递归与Continuation>里,我们谈到了尾递归的概念和示例,不过有些朋友对于尾递归的 功效依然有所怀疑.因此现在,老赵再简单讲解一下尾递归的优化原理,希望能给大家以一定理性认识. 尾递归的循环优化 尾递归,即是递归调用放在方法末尾的递归方式,如经典的阶乘: int FactorialTailRecursion(int n, int acc) { if (n == 0) return acc; return FactorialTailRecursion(n - 1, acc *

浅谈免费的推广方式——博客和论坛的使用心得

中介交易 SEO诊断 淘宝客 云主机 技术大厅 最开始做网络营销,算是淘宝引发的,两年前还在杭州上班,也不知道咋地慢慢的对淘宝开网店热心起来,边天天幻想着哪天赚够了本钱自己做网店去,自由媒人管又不用看谁脸色,可是老天不给面子,一直没创造属于自己的那片土地,没能像想象中那样自由主宰我的梦想,之后08年经济危机就去深圳另谋生路,从那个时候起才算真正做与我喜欢的网络营销有关系的工作. 论坛营销 做网店也要做很多免费的推广,开始是从论坛开始的,当时并不清楚什么叫论坛营销,只是机械性的在论坛发帖-回贴-顶

浅谈MongoDB中几种不同查询方法

 1.find MongoDB使用find来进行查询.查询就是返回一个集合中文档的子集,子集合的范围从0个文档到整个集合.find的第一个参数 决定了要返回哪些文档.其形式也是一个文档,说明要查询的细节. 空的查询文档{}会匹配集合的全部内容.要是不指定查询文档,默认是{}. 如:db.users.find()返回集合users中的所有内容. 向查询文档中添加键值对,就意味着添加了查询条件.对绝大多数类型来说,整数匹配整数,布尔类型匹配布尔类型,字符串匹配 字符串. 2.指定返回的键 有时并不需

浅谈网址导航站推广方式

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 现在我们知道的推广方式有很多种,网上甚至有的写出了100多种推广方式,其实我们能够用到的无非就是那几种,而且能用的,效果已经越来越差,好比百度知道,网摘,分类目录.每当一种推广方式被广大的朋友熟知的时候,就是要慢慢的淘汰的时候,因为使用的人太多了,产生的垃圾信息也多.所以这就是很多人不愿意分享自己的资源的原因,可能一些人使用还有效果,但是大量

浅谈MySQL的授权方式

很多人都不理解MySQL的授权方式,主要原因是没有中文资料别无其他!我不想嘲笑谁,但是我认为有 必要搞清楚这一重要的因素.国际官司我们已经吃亏太多了,我不想这变成笑柄. 当前,MySQL采用双重授权(Dual Licensed),他们是GPL和MySQL AB制定的商业许可协议.如果你在一 个遵循GPL的自由(开源)项目中使用MySQL,那么你可以遵循GPL协议使用MySQL.否则,你需要购买 MySQLAB制定的那个商业许可协议.这里最重要的一点就是要想免费使用MySQL,你所开发的软件必须是

浅谈微博的盈利方式及几种增加粉丝的工具

中介交易 SEO诊断 淘宝客 云主机 技术大厅 玩微博的的人,无非就是为了两个字,一个是名,一个是利.对于明星来说,开微博一般是为了更好的宣传自己,对于草根微博来说,就是为了钱,另外那些路过的观众我就不提了.微博赚钱的方法有多种多样,不同的人,不同的企业,有不同的营销方式,本人总结了一下,目前大概有这么几种盈利的方式: 一,在微博中插入广告.简单一点的就是硬广告,就是直接在微博上正面宣传自己的产品,这种纯粹的广告比较少人看,效果不是那么的好,但是针对性强,有这方面需求的人才会去看这种广告;稍微好