程序员人生 网站导航

mongoDB的读书笔记(04)_【Replica】(05)_初探Replica set副本集的搭建 By Test模式

栏目:数据库应用时间:2015-03-19 08:42:06

  • Replica set Deployment On Test Mode
    • 为啥是测试模式
    • 实战
      • 先罗唆罗唆操作系统
      • 在1台机器上创建摹拟5个节点
        • 进入非db连接模式
        • 建立5个节点的test script
        • 启动所有的节点
        • 配置节点
          • 进入1个节点
          • 配置Replica的config
          • 进行初始化
          • check心跳和log
          • 查看Replia的详细
          • 查看Secondary Replia的详细
        • 写数据实验
          • Primary写入
          • Secondary查看

Replica set Deployment On Test Mode

为啥是测试模式

标题写的比较含糊。配置副本集就配置吧,干吗还要在1个测试Mode下呢。
实际上是这样的,配置1个副本集集群按说应当在几个不同的节点上面配置,但是,1般情况下我们可能会首先在1个摹拟环境下去实验,跑1些程序跑1些设置后,再在真实的多节点环境上铺开。所以我们首先先在1个简单的测试模式的基础上去感受1下mongoDB的Replica是个虾米东东。

实战

先罗唆罗唆操作系统

当下,windows系统基本上快从开发OS的第1阵营跌落了。很多的开源产品直接不提供windows的编译命令,比如Flume从2.0开始已告别windows。而Hadoop从2.X开始也对windows的支持基本上say goodbye了。我去客户现场出差的时候米国和印度的哥们发过来的所有架构和代码都是基于Ubuntu的,我们这边用windows1个个去实验。。。结果啥都打不开。然后就用Cygwin,结果还是很多新版的东西根本不能支持,本想是不是可以自己编译windows的命令包,我靠,除非弄研究行了,累死了。最后想一想,人家的原生就是Linux你为啥非得移植到windows啊,乖乖的也扔掉windows完了。后来,我以windows要衰落的名义去Ginza还买了1台15寸的mac,嘿嘿嘿,然后没几天就用1个chown命令弄死了机器,当晚重装了mac的系统,觉得这系统太不硬朗了,重装竟然耗费了1宿也太tm夸大了吧。。。现在mac还躺在柜子里,啥时候想玩swift的时候再拿出来吧。
那,说到这个,mongoDB对windows的命令支持真的是很不错yeah,业内良知,不打压寡头。呵呵。所以基本上现在我的操作都是windows的命令操作。

在1台机器上创建摹拟5个节点

mongoDB的命令有shell命令,还有被封装的javascript命令,固然,自己也能够封装各种各样的javascript,这个没有尽头的东西,只能靠学用结合了。我的例子是权威指南书中的1个例子,固然,如果依照书中直接跑可能会有疑问,通过我的操作干掉这些疑问吧。

进入非db连接模式

C:MongoDBin>mongo --nodb

这个命令不已连接或创建DB为目的,而进入mongoDB的shell编辑环境

C:MongoDBin>mongo --nodb MongoDB shell version: 2.6.5 >

可以看出,我用的是2.6.5的版本,现在最新的是2.6.6?还是2.6.7来着。。。嗯。说到这里,提个题外话,之前我还在mongoDB的jira系统给mongo提了个bug,结果人家回复说,你的系统不支持Linux命令。唉,丢人丢大了。哈哈。

建立5个节点的test script

C:MongoDBin>mongo --nodb MongoDB shell version: 2.6.5 > rep = new ReplSetTest({"nodes":5})

输入rep = new ReplSetTest({“nodes”:5}) 这个命令后

"removePartitionDelay" : function (from, to, bidirectional) { this.addPartitionDelay(from, to, 0, bidirectional); }, "addOneWayPartitionDelay" : function (from, to, delay) { this.addPartitionDelay(from, to, delay, false); }, "removeOneWayPartitionDelay" : function (from, to) { this.addPartitionDelay(from, to, 0, false); } } >

如果出现了以下毛病的话,请先做成1个C:datadb 的文件夹,至于为何下1节06的时候再说。

ERROR: dbpath (datadb) does not exist.

屏幕像发疯了1样进行了1堆操作,这个都是在履行创建5个节点这个script后履行的1些后台操作,不用管啥意思了,除非你有兴趣看看屏幕这堆javascript代码

启动所有的节点

"removePartitionDelay" : function (from, to, bidirectional) { this.addPartitionDelay(from, to, 0, bidirectional); }, "addOneWayPartitionDelay" : function (from, to, delay) { this.addPartitionDelay(from, to, delay, false); }, "removeOneWayPartitionDelay" : function (from, to) { this.addPartitionDelay(from, to, 0, false); } } > rep.startSet()

然后输入rep.startSet()
图1
这里写图片描述
屏幕不是1直固定成上面这个模样哦,你会发现屏幕1直在滚啊滚啊滚啊滚( ̄Q ̄)

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐