简单副本集的搭建

官方demo的最小化的副本集为Three Member Sets,一个primary和两个secondary。我们先就搭建一个这样的测试环境。

首先建立三个数据目录和日志目录:

 cd /opt/mongodb3/data/

 mkdir -p rs0-  rs0-  rs0-

 cd /opt/mongodb3/log/

 mkdir -p rs0- rs0- rs0-

然后我们以守护进程的方式启动三个mongod进程,端口分别是37017,37018和37019:

./bin/mongod --fork --dbpath data/rs0-/ --logpath log/rs0-/rs0-.log --rest --replSet rs0 --port 

./bin/mongod --fork --dbpath data/rs0-/ --logpath log/rs0-/rs0-.log --rest --replSet rs0 --port 

./bin/mongod --fork --dbpath data/rs0-/ --logpath log/rs0-/rs0-.log --rest --replSet rs0 --port 

跟启普通的mongod进程基本相同,不同的跟了--replSet选项,rs0是该副本集的名称。--rest参数是打开web监控页面,比如我们这里监听37017端口,则打开http://192.9.10.13:38017/(mongod端口加上1000)就可以看到这个mongodb数据库进程的信息,如果是副本集就能查看整个副本集的相关信息。

然后我们用mongo shell连上端口为37017的mongod:

 ./bin/mongo -port 37017
use admin

接着我们需要初始化一个Replica Set:首先创建一个副本集配置对象:

1.    rsconf={
2. "_id" : "rs0",
3. "members" : [
4. {
5. "_id" : 0,
6. "host" : "192.9.10.13:37017"
7. }
8. ]
9. }

_id:代表副本集名称,numbers:代表成员。

然后用rs.initiate()进程初始化:

1.    rs.initiate(rsconf)
2. {
3. "info" : "Config now saved locally. Should come online in about a minute.",
4. "ok" : 1
5. }

添加成员:

通过rs.add()将另外两个mongod添加到副本集当中:

1.    rs0:PRIMARY> rs.add("192.9.10.13:37018")
2. { "ok" : 1 }
3. rs0:PRIMARY> rs.add("192.9.10.13:37019")
4. { "ok" : 1 }

会发现37017这个mongod默认就是PRIMARY节点了。通过rs.conf()可以查看集群的配置情况:

1.    rs0:PRIMARY> rs.conf()
2. {
3. "_id" : "rs0",
4. "version" : 3,
5. "members" : [
6. {
7. "_id" : 0,
8. "host" : "192.9.10.13:37017"
9. },
10. {
11. "_id" : 1,
12. "host" : "192.9.10.13:37018"
13. },
14. {
15. "_id" : 2,
16. "host" : "192.9.10.13:37019"
17. }
18. ]
19. }

修改priority:

副本中所有的secondary节点都有一个priority值,为任意的浮点数,该值越大则该节点在election中越优先成为primary节点,通过下面的命令修改该值,目前primary节点是37017:

1.    rs0:PRIMARY> cfg=rs.conf()
2. {
3. "_id" : "rs0",
4. "version" : 7,
5. "members" : [
6. {
7. "_id" : 0,
8. "host" : "192.9.10.13:37017"
9. },
10. {
11. "_id" : 1,
12. "host" : "192.9.10.13:37018"
13. },
14. {
15. "_id" : 2,
16. "host" : "192.9.10.13:37019"
17. }
18. ]
19. }

我们将37019节点的priority设置成2:

1.    rs0:PRIMARY> cfg=rs.conf()
2. cfg.members[2].priority = 2 然后执行:
rs0:PRIMARY> rs.reconfig(cfg)

注意:执行rs.reconfig()命令会强制整个副本集集群进行一次election,这样priority较高的37019节点便成了primary节点。

转自:http://blog.csdn.net/huwei2003/article/details/40453159

参考:
http://www.cnblogs.com/zhoujinyi/p/3554010.html

Centos6.5 虚拟机Mongodb创建副本集的更多相关文章

  1. mongodb创建副本集命令

    mongodb创建副本集命令 ./mongod --replSet spock --dbpath ../data --smallfiles > config ={... "_id&qu ...

  2. [DataBase] MongoDB (8) 副本集

    MongoDB  创建副本集 MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. 复制还允许您从 ...

  3. 9.MongoDB系列之创建副本集(二)

    1. 如何设计副本集 大多数:选取主节点时需要由大多数决定,主节点只有在得到大多数支持时才能继续作为主节点,写操作被复制到大多数成员时就是安全的写操作.这里的大多数定义为"副本集中一半以上的 ...

  4. 8.MongoDB系列之创建副本集(一)

    1. 复制简介 在MongoDB中,创建副本集后就可以使用复制功能了,副本集是一组服务器,其中一个是用于处理写操作的主节点,还有多个用于保存主节点的数据副本的从节点,如果主节点崩溃了,则从节点会从中选 ...

  5. Mongodb 笔记05 创建副本集

    创建副本集 1. 副本集:副本集时一组服务器,其中有一个主服务器(primary),用于处理客户端请求:还有多个备份服务器(secondary),用于保存主服务器的数据副本.如果主服务器崩溃了,备份服 ...

  6. mongodb之 3.4.0 mongodb sharing 副本集群搭建

    系统系统 centos6.5三台服务器:10.100.25.42/43/44安装包: mongodb-linux-x86_64-rhel62-3.4.0.tgz 服务器规划:mongos mongos ...

  7. MongoDB之副本集

    MongoDB之副本集 一.简介 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库 ...

  8. Mongodb主从复制/ 副本集/分片集群介绍

    前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replica Sets 模式(副本集). Mong ...

  9. MongoDB 复制(副本集)

    MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性. 复制还允许您从硬件故障和服务中断中恢复数据. ...

随机推荐

  1. Android开发学习笔记-GridView的动态显示

    1.添加GridItem布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...

  2. python 类属性 、实例属性,可变数据结构作为类属性需要注意的地方

    1.一些经典的python错误不去阅读和不重视,就会把错误的做法带入到实际项目中来,甚至造成难以排查问题. 2.有一个大笨猪,按java写观察者模式,java写得是直接在类名下声明一个实例属性(不加s ...

  3. scrapy 元素的相对xpath

  4. Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心

    Dubbo -- 系统学习 笔记 -- 目录 示例 想完整的运行起来,请参见:快速启动,这里只列出各种场景的配置方式 多注册中心 可以自行扩展注册中心,参见:注册中心扩展 (1) 多注册中心注册 比如 ...

  5. Eclipse cdt解决github导入的项目无法打开声明的bug (cannot open declaration)

    概述: 我利用eclipse 的git插件clone github上的远程项目(C++)到本地时遇到一个问题:clone下来的项目没有C++特性,无法使用open declaration等操作,下面是 ...

  6. NetBpm 组织架构(4)

    大牛的杰作,赞一个 转自:NetBPM工作流的架构设计及实现浅析 读前的话:由于本文涉及内容颇多,若有地方读来不很明白,建议先跳过,整体上有个认识后,再回过头来理解.作者认识有限,若有错误,欢迎斧正: ...

  7. 【Python】paddlepaddle docker python2.7 centos运行

    PS E:\AI\BlockMining> docker cp .\LearnPaddle-master\ 30acd98dbc60:\rootPS E:\AI\BlockMining> ...

  8. SaltStack 使用 Jinja2 模板

    Jinja2 是基于 python 的一个模板引擎,如下,使用 Jinja2 实现根据不同的操作系统分发不同的文件: [root@localhost ~]$ cat /srv/salt/test.sl ...

  9. 在 Linux 使用 GCC 编译C语言共享库

    对任何程序员来说库都是必不可少的.所谓的库是指已经编译好的供你使用的代码.它们常常提供一些通用功能,例如链表和二叉树可以用来保存任何数据,或者是一个特定的功能例如一个数据库服务器的接口,就像MySQL ...

  10. 【译】Kafka最佳实践 / Kafka Best Practices

    本文来自于DataWorks Summit/Hadoop Summit上的<Apache Kafka最佳实践>分享,里面给出了很多关于Kafka的使用心得,非常值得一看,今推荐给大家. 硬 ...