`
小网客
  • 浏览: 1240982 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mongoDB之Replica Set集群安装

    博客分类:
  • DB
 
阅读更多

Replica Set准确讲不完全是集群,只是一个主从复制的加强版

概念如下:

primary:主节点客户端写操作发生在这里。

secondary:副本,可以负载读操作,通过复制primary的oplog来实现数据同步

arbiter:仲裁节点,作用是当primary宕掉之后从secondarys选择一个变成primary



 

环境准备:

linux系统版本:

 

$ cat /proc/version
Linux version 2.6.32-358.el6.x86_64 (mockbuild@x86-022.build.eng.bos.redhat.com) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ) #1 SMP Tue Jan 29 11:47:41 EST 2013

三台服务器,详情如下:

 

 

192.168.38.17   --primary
192.168.38.18   --secondary
192.168.38.19   --arbiter

mongoDB版本:

 

mongodb-linux-x86_64-2.6.9

安装部署:

1.配置primary.conf,secondary.conf和arbiter.conf

#primary.conf:

 

#primary.conf
dbpath=/home/admin/data/p
logpath=/home/admin/log/primary.log
pidfilepath=/home/admin/data/primary.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=192.168.38.17
port=27017
oplogSize=10000
fork=true
noprealloc=true

#secondary.conf:

 

 

#secondary.conf
dbpath=/home/admin/data/s
logpath=/home/admin/log/secondary.log
pidfilepath=/home/admin/data/secondary.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=192.168.38.18
port=27017
oplogSize=10000
fork=true
noprealloc=true

#arbiter.conf:

 

 

dbpath=/home/admin/data/a
logpath=/home/admin/log/arbiter.log
pidfilepath/home/admin/data/arbiter.pid
directoryperdb=true
logappend=true
replSet=testrs
bind_ip=192.168.38.19
port=27017
oplogSize=10000
fork=true
noprealloc=true

上述配置文件最好在每个集群上都放置,这样就能保证配置文件一致

2.启动

 

分别在不同的节点上加载不同的配置

192.168.38.17启动:

 

bin/mongod -f /home/admin/mongodb/primary.conf

192.168.38.18启动:

 

 

bin/mongod -f /home/admin/mongodb/secondary.conf

192.168.38.19启动:

bin/mongod -f /home/admin/mongodb/arbiter.conf

3.登陆系统配置各个节点

bin/mongo 192.168.38.17:27017   

执行如下命令:

>use admin
>cfg={
    "_id": "testrs",
    "members": [
        {
            "_id": 0,
            "host": "192.168.38.17:27017",
            "priority": 2
        },
        {
            "_id": 1,
            "host": "192.168.38.18:27017",
            "priority": 1
        },
        {
            "_id": 2,
            "host": "192.168.38.19:27017",
            "arbiterOnly": true
        }
    ]
}; 
>rs.initiate(cfg)  

此时配置已生效,可以通过命令查看相应的信息

4.查看目前各个节点的状态:

rs.status()

结果如下:

{
        "set" : "testrs",
        "date" : ISODate("2015-04-03T09:02:29Z"),
        "myState" : 1,
        "members" : [
                {
                        "_id" : 0,
                        "name" : "192.168.38.17:27017",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 21104,
                        "optime" : Timestamp(1428032802, 2),
                        "optimeDate" : ISODate("2015-04-03T03:46:42Z"),
                        "electionTime" : Timestamp(1428030689, 1),
                        "electionDate" : ISODate("2015-04-03T03:11:29Z"),
                        "self" : true
                },
                {
                        "_id" : 1,
                        "name" : "192.168.38.18:27017",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 21070,
                        "optime" : Timestamp(1428032802, 2),
                        "optimeDate" : ISODate("2015-04-03T03:46:42Z"),
                        "lastHeartbeat" : ISODate("2015-04-03T09:02:27Z"),
                        "lastHeartbeatRecv" : ISODate("2015-04-03T09:02:28Z"),
                        "pingMs" : 0,
                        "syncingTo" : "192.168.38.17:27017"
                },
                {
                        "_id" : 2,
                        "name" : "192.168.38.19:27017",
                        "health" : 1,
                        "state" : 7,
                        "stateStr" : "ARBITER",
                        "uptime" : 21070,
                        "lastHeartbeat" : ISODate("2015-04-03T09:02:29Z"),
                        "lastHeartbeatRecv" : ISODate("2015-04-03T09:02:29Z"),
                        "pingMs" : 0
                }
        ],
        "ok" : 1
}

此时配置已经完成,kill主节点之后查看状态会自动切换

 

PS:默认情况下副本是不会负载读操作的,如果打算让副本负载一部分读操作那么可以参见另外一篇博客

  • 大小: 26.1 KB
0
1
分享到:
评论

相关推荐

    k8s 安装 mongodb 分片(Sharding)+ 副本集(Replica Set)

    k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set) k8s 安装 MongoDB 分片(Sharding)+ 副本集(Replica Set)是结合 Kubernetes(k8s)和 MongoDB 实现高可用性和高性能的解决方案。本解决方案通过使用 ...

    MongoDB的replica set的部署,检测优化,

    MongoDB的复制集(Replica Set)是一种高可用性架构,用于确保数据的冗余和容错性。在MongoDB中,复制集是由多个具有相同数据副本的节点组成,其中一个是主节点(Primary),其余是次级节点(Secondary)。主节点...

    mongodb Replica Sets +Sharding高可用集群搭建

    在搭建MongoDB的高可用集群时,首先需要安装MongoDB服务器,然后按照以下步骤进行: 1. **创建副本集**: - 初始化主节点,指定其他从节点的连接信息。 - 在从节点上,使用`rs.initiate()`命令加入副本集。 - ...

    Mongodb_集群分片部署

    Mongodb_集群分片部署 Mongodb_集群分片部署 Mongodb_集群分片部署

    centos7下mongodb4.0.6分片集群搭建-单体升级成绩群方案.pdf

    1. **复制集(Replica Set)**:提供数据冗余和故障转移,确保高可用性。每个复制集由多个成员组成,其中一个是主节点,其他是副节点。数据变更首先发生在主节点,然后同步到副节点。 2. **分片(Sharding)**:...

    mongodb高可用完全分布集群搭建

    为了实现高可用性,需要使用副本集(Replica Set)来确保数据的可用性。在高性能方面,需要使用分片(Sharding)来分布式存储数据。 设计框架 mongodb集群的设计框架主要包括三个部分:mongod、mongos和config ...

    小米电商Mongodb集群文档

    - **标题**:“小米科技 电商部门 Mongodb sharding Cluster with Replica Set 集群 文档” - **描述**:“小米科技 电商部门 Mongodb sharding Cluster with Replica Set 集群 文档” 该文档主要介绍了小米电商...

    MongoDB集群测试代码

    在这个“MongoDB集群测试代码”中,我们关注的是MongoDB的两个关键特性:副本集(Replica Set)和分片(Sharding),以及如何通过配置文件和脚本来进行集群的设置与测试。 1. **副本集(Replica Set)**: - 副本...

    mongodb集群配置文档

    - **复制集**(Replica Set):为确保数据的高可用性,每个分片可以配置成一个复制集。 #### 三、分片与集群的部署步骤 **1. Mongodb的安装** 首先需要在各台服务器上安装MongoDB。根据提供的部分内容,可以看到...

    MongoDB伪分布集群搭建

    1. **复制集(Replica Set)**:MongoDB复制集是数据库的冗余拷贝,可以提供数据备份和故障转移。在伪分布集群中,我们将在同一台机器上运行多个副本,模拟多个独立的MongoDB实例。 2. **数据目录(Data Directory...

    MongoDB添加仲裁节点报错:replica set IDs do not match的解决方法

    总结来说,理解并处理 "replica set IDs do not match" 错误需要对MongoDB副本集的工作原理有深入的了解。正确的配置和操作流程对于保持副本集的正常运行至关重要。遇到此类问题时,应首先检查副本集配置的一致性,...

    C#开发的Mongodb集群自动部署工具

    4. MongoDB Replica Set 自动部署.exe和MongDB Replica Set 自动部署.pdb:这是实际的自动部署程序和其对应的调试信息文件。exe文件是可执行程序,可以直接运行在Windows环境下,通过SSH连接到Linux服务器并执行部署...

    深入浅出MongoDB应用实战集群及系统架构

    MongoDB支持多种部署方式,包括单节点部署、副本集(Replica Set)、分片集群(Sharded Cluster)等。其中,副本集和分片集群是构建高可用和高性能MongoDB系统的关键。 ##### 副本集 副本集是MongoDB的一个关键...

    mongodb安装集群

    配置服务器是 MongoDB 集群的重要组成部分之一,它负责维护集群的状态信息,如分片信息、路由信息等。 ```bash ./mongodb/bin/mongod --configsvr --dbpath /data/mongodb/config/data --port 21000 --logpath /...

    单台windows搭建mongoDb主从集群

    4. **配置复制集**:在每个节点(包括主节点和从节点)上,需要在配置文件中启用复制集模式,并设置replicaSet参数,如`replicaSet=myReplicaSet`。还需要指定每个节点的角色,如`hidden=true`(隐藏从节点,只用于...

    mongodb replica set 添加删除节点的2种方法

    MongoDB的复制集(Replica Set)是一种高可用性解决方案,它可以确保数据的冗余和在主节点故障时提供自动故障转移。复制集通常由多个成员组成,包括一个主节点(Primary)、一个或多个次级节点(Secondary)以及可选...

Global site tag (gtag.js) - Google Analytics