MongoDB副本集配置系列二:配置MongoDB副本集

接上一篇博客:

http://www.cnblogs.com/xiaoit/p/4479066.html

1:首先创建3台虚拟机作为配置环境

IP1:192.168.91.128

IP2:192.168.91.129

IP3:192.168.91.130

2:下载MongoDB 2.6版本

https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.9.zip

3:解压

tar -zxvf mongodb-linux-x86_64-2.6.9.zip
mv mongodb-linux-x86_64-2.6.9 mongodb

  

4:在mongodb目录创建 data目录和 log 目录 和conf配置文件

同时保证data和log目录有可读写权限

在3台服务器上做如上配置

5:编辑配置文件 vi mongo.conf

在IP1:192.168.91.128上

#日志目录
logpath=/root/software/mongodb/log/mongod

#数据目录
dbpath=/root/software/mongodb/data

#日志以追加方式添加
logappend=true

# 开启后台进程运行
fork = true

#端口
port = 27017

#副本集名称
replSet=gechongrepl/192.168.91.129:27017

  

在IP2:192.168.91.129上:

#日志目录
logpath=/root/software/mongodb/log/mongod

#数据目录
dbpath=/root/software/mongodb/data

#日志以追加方式添加
logappend=true

# 开启后台进程运行
fork = true

#端口
port = 27017

#副本集名称
#192.168.91.128#replSet=gechongrepl/192.168.91.129:27017
replSet=gechongrepl/192.168.91.128:27017

在IP3:192.168.91.130上

#日志目录
logpath=/root/software/mongodb/log/mongod

#数据目录
dbpath=/root/software/mongodb/data

#日志以追加方式添加
logappend=true

# 开启后台进程运行
fork = true

#端口
port = 27017

#副本集名称
#192.168.91.128#replSet=gechongrepl/192.168.91.129:27017
#192.168.91.129#replSet=gechongrepl/192.168.91.128:27017
replSet=gechongrepl/192.168.91.129:27017 , 192.168.91.128:27017

  

6:用如上的配置文件分别启动mongod

在IP1:192.168.91.128上启动mongod

> config_repl={_id:‘gechongrepl‘,members:[
... {_id:0,host:‘192.168.91.128:27017‘,priority:10},
... {_id:1,host:‘192.168.91.129:27017‘,priority:9},
... {_id:2,host:‘192.168.91.130:27017‘,priority:9}]}
{
	"_id" : "gechongrepl",
	"members" : [
		{
			"_id" : 0,
			"host" : "192.168.91.128:27017",
			"priority" : 10
		},
		{
			"_id" : 1,
			"host" : "192.168.91.129:27017",
			"priority" : 9
		},
		{
			"_id" : 2,
			"host" : "192.168.91.130:27017",
			"priority" : 9
		}
	]
}

  

> rs.initiate(config_repl);
{
	"startupStatus" : 4,
	"info" : "gechongrepl/192.168.91.129:27017",
	"ok" : 0,
	"errmsg" : "all members and seeds must be reachable to initiate set"
}

报错了。尝试在IP1上面:telnet 192.168.91.130 27017 发现不通。关掉这几台服务器的iptables重新执行如上命令。

> rs.initiate(config_repl);
{
	"info" : "Config now saved locally.  Should come online in about a minute.",
	"ok" : 1
}

至此,初始化已经OK。在上面3台机器任意一台完成初始化都可以的。

7:验证配置的副本集。

> rs.status()
{
	"set" : "gechongrepl",
	"date" : ISODate("2015-05-05T05:54:20Z"),
	"myState" : 1,
	"members" : [
		{
			"_id" : 0,
			"name" : "192.168.91.128:27017",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 1936,
			"optime" : Timestamp(1430803801, 1),
			"optimeDate" : ISODate("2015-05-05T05:30:01Z"),
			"electionTime" : Timestamp(1430803801, 2),
			"electionDate" : ISODate("2015-05-05T05:30:01Z"),
			"self" : true
		},
		{
			"_id" : 1,
			"name" : "192.168.91.129:27017",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 1459,
			"optime" : Timestamp(1430803801, 1),
			"optimeDate" : ISODate("2015-05-05T05:30:01Z"),
			"lastHeartbeat" : ISODate("2015-05-05T05:54:19Z"),
			"lastHeartbeatRecv" : ISODate("2015-05-05T05:54:19Z"),
			"pingMs" : 1,
			"syncingTo" : "192.168.91.128:27017"
		},
		{
			"_id" : 2,
			"name" : "192.168.91.130:27017",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 1459,
			"optime" : Timestamp(1430803801, 1),
			"optimeDate" : ISODate("2015-05-05T05:30:01Z"),
			"lastHeartbeat" : ISODate("2015-05-05T05:54:19Z"),
			"lastHeartbeatRecv" : ISODate("2015-05-05T05:54:20Z"),
			"pingMs" : 1,
			"syncingTo" : "192.168.91.128:27017"
		}
	],
	"ok" : 1
}

配置已经OK。

时间: 2024-10-13 01:02:44

MongoDB副本集配置系列二:配置MongoDB副本集的相关文章

windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)

windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) 简单说几句 在mongodb中3元素:db(数据库).collection(集合).document(文档) 其中collection类似于数据库中的表,document类似于行,这样一来我们就将内容对比起来记忆学习了. 数据格式 MongoDB documents是BSON格式(一种类json的一种二进制形式的存

windows下mongodb基础玩法系列二CURD附加一

windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下mongodb基础玩法系列二CURD附加一 说在前面的话 在系列二中CURD只是简单的走了一下代码操作的流程,其中全是简单基础操作的内容, 在我仔细看完接下来的内容后决定再丰富一下前面的操作,并实战一个简单的demo出来,demo具体搭配语言暂时决定在PHP与nodejs之间. 增加内容至文档没说完

ldap配置系列二:jenkins集成ldap

ldap配置系列二:jenkins集成ldap jenkins简介 jenkins是一个独立的.开放源码的自动化服务器,它可以用于自动化与构建.测试.交付或部署软件相关的各种任务. jenkins官方文档: https://jenkins.io/doc/ jenkins安装 jenkins下载地址: https://jenkins.io/download/ # jdk1.8下载 [[email protected]_0_15_centos local]# wget http://download

mongo 3.4分片集群系列之四:搭建分片集群--哈希分片 + 安全 + 区域

这个系列大致想跟大家分享以下篇章(我会持续更新的(^ω^)): 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建分片集群--哈希分片 + 安全 4.mongo 3.4分片集群系列之四:搭建分片集群--哈希分片 + 安全 + 区域 5.mongo 3.4分片集群系列之五:详解平衡器 6.mongo 3.4分片集群系列之六:详解配置数据库 7.mongo 3.4分片集群系列之七:配置数

MongoDB副本集配置系列九:MongoDB 常见问题

What is a namespace in MongoDB? If you remove a document, does MongoDB remove it from disk? When does MongoDB write updates to disk? How do I do transactions and locking in MongoDB? How do you aggregate data with MongoDB? Why does MongoDB log so many

搭建高可用MongoDB集群(二): 副本集

在上一篇文章<搭建高可用MongoDB集群(一)--配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了.NoSQL的产生就是为了解决大数据量.高扩展性.高性能.灵活数据模型.高可用性.但是光通过主从模式的架构远远达不到上面几点,由此MongoDB设计了副本集和分片的功能

iBatisnet系列(二) 配置运行环境和日志处理

http://hjf1223.cnblogs.com/archive/2006/04/24/383119.aspx 刚爬完鼓山回来,想到这篇刚刚开始,不敢怠慢,洗完澡休息一下就到电脑旁边来了.现在我开始介绍一下iBatis的配置和日志处理吧. iBatis基本的运行环境配置主要由两个文件组成,分别是SqlMap.config和Provider.config.它们是必需的两个配置文件,基中SqlMap.config的功能类似于web.config或者app.config,是iBatis核心的配置文

MongoDB副本集配置系列十:MongoDB local库详解和数据同步原理

1:local库是MongoDB的系统库,记录着时间戳和索引和复制集等信息 gechongrepl:PRIMARY> use local switched to db local gechongrepl:PRIMARY> show tables me oplog.rs replset.minvalid slaves startup_log system.indexes system.replset temp 2:local库下的每个集合分别记录的内容 local库下面的me集合保存了服务器名称

MongoDB副本集配置系列十一:MongoDB 数据同步原理和自动故障转移的原理

1:数据同步的原理: 当Primary节点完成数据操作后,Secondary会做出一系列的动作保证数据的同步: 1:检查自己local库的oplog.rs集合找出最近的时间戳. 2:检查Primary节点local库oplog.rs集合,找出大于此时间戳的记录. 3:将找到的记录插入到自己的oplog.rs集合中,并执行这些操作. 2:查看副本集的信息 gechongrepl:PRIMARY> rs.status() { "set" : "gechongrepl&quo