简单副本集的搭建

官方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. Adb 获取手机信息

    adb shell getprop [ro.product.board]: [herring][ro.product.brand]: [google][ro.product.cpu.abi2]: [a ...

  2. iOS app开发入门

    https://github.com/qinjx/30min_guides/blob/master/ios.md

  3. MYSQL列中的数据以逗号隔开,如何查询

    FROM `task_detatils` WHERE FIND_IN_SET( '1', responsible_user) 将含有1的responsible_user列数据全部搜索出来

  4. workerman定时器使用 php定时任务

    add int \Workerman\Lib\Timer::add(float $time_interval, callable $callback [,$args = array(), bool $ ...

  5. liunx 时间ntp同步服务器

    1.root 用户下安装 yum install ntp -y 报错如下: 29 Apr 00:25:04 ntpdate[8786]: the NTP socket is in use, exiti ...

  6. C#------如何使用Swagger调试接口

    1.打开NuGet程序包 2.安装下面两个程序包 3.安装完后会出现SwaggerConfig.cs类,并修改里面的内容 代码: [assembly: PreApplicationStartMetho ...

  7. 【GIS】postgres(postgis) --》nodejs+express --》geojson --》leaflet

    一.基本架构 1.数据存储层:PostgreSQL-9.2.13 + postgis_2_0_pg92 2.业务处理层:Nodejs + Express + PG驱动 3.前端展示层:Leaflet ...

  8. bodgeit测试平台

    下载war安装包:https://code.google.com/archive/p/bodgeit/downloads http://resources.infosecinstitute.com/t ...

  9. HttpClient(二)-- 模拟浏览器抓取网页

    一.设置请求头消息 User-Agent模拟浏览器 1.当使用第一节的代码 来 访问推酷的时候,会返回给我们如下信息: 网页内容:<!DOCTYPE html> <html> ...

  10. [Linux] 如何修改 Linux 主机名

    该方法适用于安装了 Linux 系统的Raspberry Pi & Cubieboard. 在终端执行: sudo vi /etc/hosts 你看到的 hosts 文件应该是这样的: 127 ...