MongoDB分布式部署
http://hi.baidu.com/lzpsky/blog/item/d59af4276c73c50f908f9d5d.html

配置MongoDB集群
http://blog.csdn.net/duck_genuine/archive/2010/10/09/5929743.aspx
MongoDB replica Set配置说明
MongoDB在1.6版本对开发了新功能replica set,这比之前的replication功能要强大一些,auto shard已经明确说明不支持replication paris,建议使用replica set,replica set故障切换完全自动,各个DB之间数据完全一致,大大降低了维护成功。
replica set 配置如下:
1、创建目录 /data/db ,data/db2 ,/data/db3,启动mongod并创建复制集 foo
启动mongod
[root@TEST40]
mongod --shardsvr --fork --replSet foo --logpath /var/log/mongodb.log --logappend --rest
mongod --shardsvr --fork --replSet foo --port 27019 --logpath /var/log/mongodb2.log --logappend --dbpath /data/db2 --rest
mongod --shardsvr --fork --replSet foo --port 27020 --logpath /var/log/mongodb3.log --logappend --dbpath /data/db3 --rest
2、初始化复制集配置信息
初始化时给每个host分配一个ID,该ID在复制集中是唯一的,在测试过程中没有发现该ID和故障切换有直接关系。
> config = {_id: 'foo', members: [
... {_id: 0, host: '192.168.100.212:27018'},
... {_id: 1, host: '192.168.100.212:27019'},
... {_id: 2, host: '192.168.100.212:27020'}]
... }
{
"_id" : "foo",
"members" : [
{
"_id" : 0,
"host" : "192.168.100.212:27018"
},
{
"_id" : 1,
"host" : "192.168.100.212:27019"
},
{
"_id" : 2,
"host" : "192.168.100.212:27020"
}
]
}
> rs.initiate(config);
{
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}
>
已经配置成功
3、查看查看replica set存在的成员
state:1表示该host是当前可以进行读写,2:不能读写
health:1表示该host目前是正常的,0:异常
[root@TEST40 data]# mongo 192.168.100.212:27018
MongoDB shell version: 1.6.0
connecting to: 192.168.100.212:27018/test
> use admin
switched to db admin
> db.runCommand({replSetGetStatus : 1});
{
"set" : "foo",
"date" : "Fri Aug 20 2010 08:35:59 GMT+0000 (UTC)",
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "TEST40:27018",
"health" : 1,
"state" : 1,
"self" : true
},
{
"_id" : 1,
"name" : "192.168.100.212:27019",
"health" : 1,
"state" : 2,
"uptime" : 516,
"lastHeartbeat" : "Fri Aug 20 2010 08:35:58 GMT+0000 (UTC)"
},
{
"_id" : 2,
"name" : "192.168.100.212:27020",
"health" : 1,
"state" : 2,
"uptime" : 508,
"lastHeartbeat" : "Fri Aug 20 2010 08:35:58 GMT+0000 (UTC)"
}
],
"ok" : 1
}
>
4、failover试验
登陆其它的slave,slave是不可以进行读写的。
[root@TEST40 data]# mongo 192.168.100.212:27019
MongoDB shell version: 1.6.0
connecting to: 192.168.100.212:27019/test
> use test
switched to db test
> db.people.find();
error: { "$err" : "not master", "code" : 10107 }
>
[root@TEST40 data]# mongo 192.168.100.212:27020
MongoDB shell version: 1.6.0
connecting to: 192.168.100.212:27020/test
> use test
switched to db test
> db.people.find();
error: { "$err" : "not master", "code" : 10107 }
>
查看复制集合成员状态
登陆192.168.100.212:27020
[root@TEST40 data]# mongo 192.168.100.212:27020
MongoDB shell version: 1.6.0
connecting to: 192.168.100.212:27020/test
> use admin
switched to db admin
> db.runCommand({replSetGetStatus : 1});
{
"set" : "foo",
"date" : "Fri Aug 20 2010 08:36:39 GMT+0000 (UTC)",
"myState" : 2,
"members" : [
{
"_id" : 0,
"name" : "192.168.100.212:27018",
"health" : 1,
"state" : 1,
"uptime" : 546,
"lastHeartbeat" : "Fri Aug 20 2010 08:36:38 GMT+0000 (UTC)"
},
{
"_id" : 1,
"name" : "192.168.100.212:27019",
"health" : 1,
"state" : 2,
"uptime" : 546,
"lastHeartbeat" : "Fri Aug 20 2010 08:36:38 GMT+0000 (UTC)"
},
{
"_id" : 2,
"name" : "TEST40:27020",
"health" : 1,
"state" : 2,
"self" : true
}
],
"ok" : 1
}
将主DB关闭,再次查看发现192.168.100.212:27020DB角色转变为主。原先主库无法登陆,但是state仍然为1 health变为0
> db.runCommand({replSetGetStatus : 1});
{
"set" : "foo",
"date" : "Fri Aug 20 2010 08:41:16 GMT+0000 (UTC)",
"myState" : 1,
"members" : [
{
"_id" : 0,
"name" : "192.168.100.212:27018",
"health" : 0,
"state" : 1,
"uptime" : 0,
"lastHeartbeat" : "Fri Aug 20 2010 08:41:12 GMT+0000 (UTC)",
"errmsg" : "connect/transport error"
},
{
"_id" : 1,
"name" : "192.168.100.212:27019",
"health" : 1,
"state" : 2,
"uptime" : 823,
"lastHeartbeat" : "Fri Aug 20 2010 08:41:16 GMT+0000 (UTC)"
},
{
"_id" : 2,
"name" : "TEST40:27020",
"health" : 1,
"state" : 1,
"self" : true
}
],
"ok" : 1
}
>
分享到:
相关推荐
### MongoDB集群配置详解 #### 一、MongoDB集群与分片概述 MongoDB是一种非常流行的非关系型数据库系统,以其灵活的数据模型、高性能和可扩展性而受到广泛欢迎。随着数据量的增长,单一MongoDB实例可能无法满足高...
### MongoDB集群安装配置详解 #### 一、引言 随着数据量的增长以及对高可用性的需求增加,构建MongoDB集群成为一种常见的解决方案。本文将详细介绍如何在Ubuntu 16环境下配置MongoDB集群,并通过实际步骤演示整个...
"Mongodb 副本集群配置" MongoDB 副本集群配置是 MongoDB 的一个重要概念,它允许用户创建一个高可用性的数据库集群,以确保数据的安全和可靠性。在这个配置文件中,我们将学习如何配置 MongoDB 副本集群,以便在...
提供的"MongoDB集群负载均衡资料"应该包含详细的部署文档,指导如何设置和管理MongoDB副本集;使用文档会介绍如何有效利用副本集特性进行数据操作;问题解决文档则可以帮助用户在遇到问题时找到解决方案。 总结来说...
在这个“MongoDB集群测试代码”中,我们关注的是MongoDB的两个关键特性:副本集(Replica Set)和分片(Sharding),以及如何通过配置文件和脚本来进行集群的设置与测试。 1. **副本集(Replica Set)**: - 副本...
MongoDB集群提供了高可用性和水平扩展性,它由多个组件组成,包括 mongod(数据库进程)、mongos(路由服务)和config servers(配置服务器)。在单个实例模式下,我们只需要运行一个mongod进程,但在集群模式下,...
主要涉及的内容是如何搭建在windows环境下的mongodb集群,包括安装mongodb、mongodb单机下启动、搭建集群环境等内容,适合开始使用mongodb的人使用,很直接明了,很有帮助,值得下载!
mongodb集群部署脚本,包括mongos启动、mongodb config启动,mongodb分片启动,mongodb副本集仲部署等脚本
### MongoDB集群配置详解 #### 启动MongoDB服务与客户端连接 在进行MongoDB集群配置之前,我们需要了解如何启动MongoDB服务以及如何通过客户端连接到MongoDB实例。 **启动服务命令示例:** ```bash d:\mongodb\...
要配置 MongoDB 集群,需要进行以下几个步骤: 1. 软件准备:安装 MongoDB 软件,并创建数据目录。 2. 配置 Replica Sets:配置 shard1 和 shard2 的 Replica Sets。 3. 配置 Config Server:配置 Config Server,...
配置MongoDB集群的sharding模式,需要遵循一系列步骤,包括服务器的准备、下载安装、规划以及启动集群。以下是详细的配置步骤: 1. **确认服务器平台信息**:了解集群中各服务器的硬件配置,如CPU型号、内存大小及...
"MongoDB集群性能优化实践" 本文档主要介绍了MongoDB集群性能优化实践,涵盖了从 MongoDB 集群优化到解决方案的分享。通过本文档,我们可以了解到 MongoDB 集群性能优化的重要性,并学习到实际的解决方案。 知识点...
MongoDB MongoDB集群搭建 环境集群搭建 MongoDB MongoDB集群搭建 环境集群搭建
MongoDB 集群部署是实现高可用性和可扩展性的关键步骤,特别是在处理大量数据时。MongoDB 提供了一种名为分片集群(Sharding Cluster)的架构,它允许...正确配置和管理这些组件是确保 MongoDB 集群高效运行的关键。
MongoDB4.2分片及副本集群搭建 MongoDB集群 MongoDB分片 MongoDB副本 MongoDB副本集群
mongodb集群 shard replset 分片 包括windows 和 linux两个版本
通过合理地配置Replica Sets和Sharding,以及遵循最佳实践,可以打造一个既可靠又能满足业务需求的MongoDB集群。同时,我们也需要不断关注MongoDB的官方文档和社区动态,获取最新的部署和优化建议。
以下是对MongoDB集群架构的详细说明,包括复制集和分片集群的关键概念和最佳实践。 1. **复制集**: - **读写设置**:复制集的主要目的是提供高可用性。默认情况下,所有写操作都会发送到Primary节点,读操作也...
### MongoDB集群搭建教程 #### 一、主从模式详解 **主从模式**是MongoDB中最常见的复制方式之一,主要用于实现数据库同步备份、故障恢复以及读取扩展等功能。该模式的核心在于建立一个主节点和一个或多个从节点,...