我是实践派之mongo的一主多从
mongo一主多从
为什么要做一主多从?
mongodb天生就是为了分布式而生的,为了保证数据读写分离和数据安全,把数据放在不同的机子上,可以减少主节点的读压力,而让从节点去承受读请求压力。
主节点用于写,然后同步到从节点去。同样当主节点挂掉之后,由于还有从节点,可以进行自动选举,重新生成一个主节点。我之前使用的单个主从,一旦主节点挂了,从节点无法自动根据选举机制成为主节点,这样会造成一直等待的结果。根据实验和经验,奇数个实例或者说节点利用率更高,也更有容灾性。
我在自己的项目中也开始决定这么做,不过由于我没有太多闲置的云服务器,所以我运行三个不同端口的实例来做这个一主二从。
分别写三个配置文件:
master:
port=27017
fork=true
logpath=/usr/local/mongodb/logs/mongodb.log
logappend=true
dbpath=/usr/local/mongodb/data
maxConns=1024
master=true
oplogSize=2048
slave1:
port=27018
fork=true
logpath=/usr/local/mongodb/logs/slave1.log
logappend=true
dbpath=/usr/local/mongodb/data/slave1
maxConns=1024
slave=true
oplogSize=2048
source=127.0.0.1:27017
autoresync=true
slave2:
port=27019
fork=true
logpath=/usr/local/mongodb/logs/slave2.log
logappend=true
dbpath=/usr/local/mongodb/data/slave2
maxConns=1024
slave=true
oplogSize=2048
source=127.0.0.1:27017
autoresync=true
然后连续起三个实例:
mongod -f /usr/local/mongodb/conf/mongod.conf & mongod -f /usr/local/mongodb/conf/slave1.conf & mongod -f /usr/local/mongodb/conf/slave2.conf
当然如果之前有数据,还需要导出历史数据,命令如下:
mongodump -h dbhost -d dataname [-c collectioName] -o /out/path
导出的bson的格式数据,非常的省内存。
导入数据命令如下:
mongorestore -h dbhost -d databaseName /out/path
引入单个collection:
mongorestore --collection people --db accounts dump/accounts/people.bson
感谢mongo,让主从架构变得如此简单。
更多关于mongorestore的命令参数和使用,见这个链接
我是实践派之mongo的一主多从的更多相关文章
- 《大话操作系统——做坚实的project实践派》(2)
<大话操作系统--做坚实的project实践派>(2)
- Docker Mongo数据库主主同步配置方法
一.背景 不多说,请看第一篇<Docker Mongo数据库主从同步配置方法> 二.具体操作方法 1.创建目录,如创建~/test/mongo_sr1和-/test/mongo_sr2两个 ...
- 《大话操作系统——做坚实的project实践派》(6)
继续写硬件体系.这个不写完.不会写操作系统内核.由于根基不正,则难于达到上层境地.
- 《大话操作系统——做坚实的project实践派》(5)
有人说我不是仅仅会玩X86吗?我如今铁板钉钉的申明:我事实上兼通:ARM.IA-32.IA-32e.AMD64. 了解MIPS.但没做过MIPS由于确实没有对应的MIPS硬件平台.
- 《大话操作系统——做坚实的project实践派》(3)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG1ub3M=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/d ...
- 《大话操作系统——做坚实的project实践派》(4)
操作系统内核必需要关注一个详细硬件平台的设备 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG1ub3M=/font/5a6L5L2T/fontsi ...
- 《大话操作系统——做坚实的project实践派》(7)
写操作系统内核须要了解一个详细计算平台的CPU,包含这个CPU里的寄存器和异常中断处理机制
- 《大话操作系统——扎实project实践派》(8.2)(除了指令集.完)
- ajax的再次封装!(改进版) —— new与不 new 有啥区别?
生命不息重构不止! 上一篇写了一下我对ajax的再次封装的方法,收到了很多有价值的回复,比如有童鞋建议用$.extend,一开始还以为要做成插件呢,后来才知道,原来这个东东还可以实现合并.省着自己再去 ...
随机推荐
- CSS学习笔记:溢出文本省略(text-overflow)
原文:CSS学习笔记:溢出文本省略(text-overflow) 在CSS3中,text-overflow属性的基本语法如下: clip:表示不显示省略文本,简单的裁切. ellipsis:表示对象文 ...
- Premiere Pro CC问题集,不断更新
1.Premiere Pro CC不好用? 是的.原因如下: 1.1 Adobe公司不注重用户体验,不注重工作流程,导致这款软件的用户体验很差,设计也很烂.对比Adobe公司当年用户体验最好的软件 F ...
- Url.Content
Url.Content了,Url是ViewPage的一个对象,它最常用的一个方法就是Content,它的功能是返回某个文件的路径.一般情况下,在使用了ASP.NET MVC后,目录结构变得有点诡异,像 ...
- Ubuntu12.10无法安装openssh-server[已解决]
因为要在Ubuntu下搞些东西,家里的台式有Deepin2013,但是发现有很多依赖的问题,实在不想解决,就到win7下用VBox安装了Ubuntu.打算使用SourceCRT连接虚拟机,但是在安装在 ...
- 算法课上机实验(一个简单的GUI排序算法比较程序)
(在家里的电脑上Linux Deepin截的图,屏幕大一点的话,deepin用着还挺不错的说) 这个应该是大二的算法课程上机实验时做的一个小程序,也是我的第一个GUI小程序,实现什么的都记不清了,只记 ...
- XLSTransformer生成excel一个简单的演示示例文件
项目结构图: 在这些项目中使用jar.可以http://www.findjar.com/index.x下载 ExcelUtil类源代码: package util; import java.io.IO ...
- Android中的dp,px以及wrap_content的实际展示效果
因为一个效果中的图片设置了wrap_content的属性,但在720dp跟540dp上面显示不一致使老大非常恼火.跟他讲也讲不明白.于是乎让我们彼此测试来探个究竟.首先测试的是个图片: 它的物理像素是 ...
- Extension Objects(扩展对象)
设计模式之美:Extension Objects(扩展对象) 索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):使用示例结构实现 Extension Objects. 实现方 ...
- Design Thinking BrainWalk
Design Thinking Design Thinking Workshop @ Agile Tour 2013 Shanghai 摘要: 设计思维工作坊上周日在2013年敏捷之旅上海站,引导 ...
- RikMigrations 或 Migrator.NET 进行自动化的数据库升级
一种版本化的数据库脚本管理机制 现今开发的软件当中,多数系统的数据都是基于数据库存储的,但是由于软件变化的复杂性,相对于维护代码,数据库架构的版本并不是那么好维护. 这里本人针对实际情况,理想化出一种 ...