简单副本集的搭建

官方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. cp -rf 提示覆盖解决办法

    cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当文件比较少的时候还可以按Y确认,当很多文件的时候就不好说了 方法一:vi ~/.bashrc # .bashrc # User specific ...

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

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

  3. c++友元函數---16

    原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/ 有些情况下,允许特定的非成员函数访问一个类的私有成员,同时仍阻止一般的访问,这是很方便做到的.例 ...

  4. 数据注解特性--NotMapped

    NotMapped特性可以应用到领域类的属性中,Code-First默认的约定,是为所有带有get,和set属性选择器的属性创建数据列.. NotManpped特性打破了这个约定,你可以使用NotMa ...

  5. Linux+Redis实战教程_day03_4、通用redis命令【重点】

    4.通用redis命令[重点] Redis五种数据类型,String,hash,list,set,有序set l keys pattern:获取所有与pattern匹配的key,返回所有与该key匹配 ...

  6. mysql asyn 实战

    创建configuration时,发现URLParser找不到,于是只能使用配置文件来,当然使用配置文件比使用URL初始化还要直观些 def configurationWithPassword = n ...

  7. Docker-创建和分享应用(3)

          Dockerfile定义容器内环境中发生的事情.对网络接口和磁盘驱动器等资源的访问在此环境中进行虚拟化,该环境与系统的其他部分隔离,因此您需要将端口映射到外部世界,并具体说明要“复制”哪些 ...

  8. CentOS安装、配置RabbitMQ

    安装步骤(rpm包安装): rpm安装官网:http://www.rabbitmq.com/install-rpm.html 下载rpm并安装: CentOs: wget http://www.rab ...

  9. Install VMware Workstation as a Service

    Under default conditions, VMware Workstation does not support the ability to run virtual machines as ...

  10. O2O(online to offline)营销模式

    O2O营销模式又称离线商务模式,是指线上营销线上购买带动线下经营和线下消费.O2O通过打折.提供信息.服务预订等方式,把线下商店的消息推送给互联网用户,从而将他们转换为自己的线下客户,这就特别适合必须 ...