Replica Set使用指南(在单机上配置)
简介:
一个Replica-Set是在一组N个mongod服务一起协作来进行后援支持。
搭建一个replica-set需要两个步骤:在每个节点上启动服务;初始化这个set。
标准模式下,1个set包含3个节点。我们现在就在同一个服务器上搭建一个。
一旦mongod服务节点都启动了,我们需要一个指令来初始化这个set。几秒钟之后,三个节点中会选择出一个
主控节点(master node),之后我们就可以向这个set中写入或者查询数据了。
步骤一:
分别为3个节点分配数据存放的位置空间
$ mkdir -p /data/r0
$ mkdir -p /data/r1
$ mkdir -p /data/r2
之后,使用 --replSet 参数启动mongod服务,这个参数需要我们指定replica-set的名称,这里我们称我们的这个set为“foo”
$ mongod --replSet foo --port 27017 --dbpath /data/r0
$ mongod --replSet foo --port 27018 --dbpath /data/r1
$ mongod --replSet foo --port 27019 --dbpath /data/r2
现在3个节点都跑起来了。这时,每个节点应该都打出如下的警告信息:
————————
Mon Aug 2 11:30:19 [startReplSets] replSet can't get local.
system.replset config from self or any seed (EMPTYCONFIG)
————————
不要紧张,这是因为我们还没有初始化这个set.
步骤二:
我们可以从任意3个节点中的一个来运行 replSetInitiate 命令来初始化这个set.
[kyle@arete ~$]$ mongo localhost:27017
MongoDB shell version: 1.6.3
connecting to: localhost:27017/test
> config = {_id: 'foo', members: [
{_id: 0, host: 'localhost:27017'},
{_id: 1, host: 'localhost:27018'},
{_id: 2, host: 'localhost:27019'}]
}
> rs.initiate(config);
{
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}
我们需要配置config这个对象,指明set的名称和这个set下的成员。然后将config传递给rs.initiate().
如果到这里一切都顺利的话,我们会得要一个信息说:这个set会在1分钟内启动完成。在这个时间段内,有一个
节点会被选择为主控节点(master节点)。
如果想查看这个set的当前状态的话,使用rs.status这个命令:
> rs.status()
{
"set" : "foo",
"date" : "Mon Aug 02 2010 11:39:08 GMT-0400 (EDT)",
"myState" : 1,
"members" : [
{
"name" : "arete.local:27017",
"self" : true,
},
{
"name" : "localhost:27019",
"health" : 1,
"uptime" : 101,
"lastHeartbeat" : "Mon Aug 02 2010 11:39:07 GMT-0400",
},
{
"name" : "localhost:27018",
"health" : 1,
"uptime" : 107,
"lastHeartbeat" : "Mon Aug 02 2010 11:39:07 GMT-0400",
}
],
"ok" : 1
}
这里有个值"myState",如果这个值为1,说明是主控节点(master);如果是 2 ,说明是从属节点(slave).
我们还可以从 Replica Set Admin UI[ http://<hostname>:28017]查看,稍后会讲到这个。
分享到:
相关推荐
在部署 MongoDB 分片(Sharding)和副本集(Replica Set)后,我们需要配置 MongoDB 的配置文件,以便 MongoDB 可以连接到 Kubernetes 集群并使用持久存储。 本解决方案的优点主要包括: * 高可用性:MongoDB 分片...
MongoDB的复制集(Replica Set)是一种高可用性架构,用于确保数据的冗余和容错性。在MongoDB中,复制集是由多个具有相同数据副本的节点组成,其中一个是主节点(Primary),其余是次级节点(Secondary)。主节点...
MongoDB的副本集(Replica Set)是一种高可用性解决方案,它通过在多个节点之间复制数据来确保数据的冗余和容错性。在MongoDB中,副本集由一组 MongoDB实例组成,包括一个主节点(Primary)和多个从节点...
5. **添加成员**:在secondary节点上,使用`rs.slaveOk()`命令允许读操作,然后使用`rs.add()`命令加入Replica Set。 ```javascript rs.add('127.0.0.1:27018') rs.add('127.0.0.1:27019') ``` 6. **监控状态*...
该文件描述了如何在 Docker 上运行 Mongo DB Replica Set。 我们假设主机上的 Docker IP 地址是172.17.42.1 (并且在大多数情况下是正确的)。 您可以通过运行ifconfig docker0并检查 ip 地址来验证它。 我们正在...
使用ansible搭建的一个精简版的mongo replicaset。安装的服务器centos7。 安装思路 1、通过rpm安装mongo的包,然后安装依赖的程序 2、配置mongo.service 3、配置mongo.conf,初始化的mongo是没有账号密码的,所以先...
在高可用性设置中,MongoDB 使用副本集(Replica Sets)来实现数据冗余和故障转移。副本集中,每个成员都有一个唯一的ID,且所有成员的副本集ID应该相同,以确保它们属于同一个集合。在本文中,我们将探讨如何解决在...
在实际应用中,Replica Sets和Sharding常被结合使用,提供更高的可用性和可扩展性。每个分片都可以是一个副本集,这样既保证了分片内的高可用性,又实现了整体系统的水平扩展。当某个分片的主节点发生故障时,副本集...
MongoDB使用分片键(Shard Key)来决定数据应存储在哪个分片上。分片集群通常包括分片服务器、路由进程(Mongos)和配置服务器(Config Server)。路由进程负责接收客户端请求,根据分片键将请求路由到正确的分片,...
Centos7 安装Mongo replica set做读写分离.md 存放这里,让大家下载快捷一点
在大型分布式系统中,为了实现水平扩展和数据冗余,MongoDB提供了分片(Sharding)和复制集(Replica Set)的功能。本文将深入探讨如何使用这两种技术来设置MongoDB集群。 **一、MongoDB分片** 1. **分片概念**: ...
通过阅读源码,我们可以学习如何管理Activity的创建、暂停、恢复和销毁过程,以及如何在不同屏幕尺寸和方向上实现响应式设计。 其次,源码中包含的游戏逻辑和动画系统是Android图形编程的重要实践。Android使用...
Linux运维-运维课程MP4频11-18-08-deployment和replicaset小结.mp4
MongoDB的复制集(Replica Set)是一种高可用性解决方案,它可以确保数据的冗余和在主节点故障时提供自动故障转移。复制集通常由多个成员组成,包括一个主节点(Primary)、一个或多个次级节点(Secondary)以及可选...
在高可用性场景下,MongoDB 提供了副本集(Replica Set)功能,用于实现数据冗余和故障转移。在本项目中,我们将使用SpringBoot集成MongoDB副本集,探讨读写操作如何自动分发到主从节点。 1. **MongoDB 副本集** -...
Android 游戏源代码 Replicaisland(含截图)Android 游戏源代码 Replicaisland(含截图)Android 游戏源代码 Replicaisland(含截图)Android 游戏源代码 Replicaisland(含截图)Android 游戏源代码 Replicaisland...