`
275553385
  • 浏览: 721351 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
文章分类
社区版块
存档分类
最新评论

NOSQL之Mongodb副本集配置与管理

阅读更多
NOSQL之Mongodb副本集配置与管理

首先从概念上说一下MongoDB副本集和主从复制的区别。
主从复制实现了数据备份+读扩展,但是master一旦down掉,需要手动启动slave。
副本集(Replica Set)是主从复制的高级形式。副本集在此基础上实现了备份自动重启的功能,也就是某一台slave会挺身而出,担当起master的职责。所以有三个角色,master(Primary),slave(Secondary),还有仲裁服务器。

一台master(primary):wxseio-web  172.16.2.123
两台slave(secondary):
                      web1 : 172.16.2.109 
                      web2 : 172.16.2.19
全是CentOS6.4-64位, MongoDB 2.4.6


配置和实现方法:

1)、 配置/etc/hosts,把上面三台机器的IP信息写到里面

2)、 配置/usr/local/momgodb/config/mongodb27017.conf,需要修改的东西真是不多,最主要的是屏蔽掉master slave这部分东西,也就是主从复制里面的修改,然后配置replSet=true,有没有空格无所谓,三台虚拟机都只这么配置,可见我们并没有指定谁是master。
port = 27017
logpath = /data/mongodb/27017/mongodb.log
logappend = true
fork = true
dbpath = /data/mongodb/27017
journal = true
replSet = true
rest = true
oplogSize = 64 #单位是M

3)、 先把master跑起来。进入你想成为master的那台机器,重启mongod,然后进入该机器mongo的客户端,进行一下很简单的设置。
rsconf = {
           _id: "true",
           members: [
                      {
                       _id: 0,
                       host: "wxseio-web:27017"
                      }
                    ]
         }

rs.initiate( rsconf )

这是构建一个配置的对象,然后初始化一下。第一个ID是副本集的名字,member里面是指定了成员机器的id和网络位置。这里先把master添加进来就好了,下面可以一台一台依次添加其它成员。注意要稍等一段时间,MongoDB需要时间来转换他的状态。该机器被默认为了master(primary)。
4)、 再把slave加进副本集里面。现在master里面add一个slave
rs.add("<hostname>:27017")

然后到这台slave所在的机器上面去,重启MongoDB,进入Mongo客户端,一分钟后你会发现slave变成了Secondary,并且同步了数据。但是,事情还没有完。你测试会发现,不能读取数据,虽然数据同步了。没关系,这这MongoDB slave还需要你确认一下,只要输入
rs.slaveOk()

5)、 添加仲裁服务器。这个我是删除了一种一台slave2,然后通过命令rs.addArb("host:port")添加上仲裁服务器,然后测试的,不需要其他配置。当master被关掉后,能够实现转换,测试成功。注意,根据我看到的资料,没有仲裁是不能实现自动转换的,仲裁服务器参考资料:http://docs.mongodb.org/manual/tutorial/add-replica-set-arbiter/
参考文献 http://docs.mongodb.org/manual/tutorial/deploy-replica-set/
分享到:
评论
1 楼 275553385 2014-01-13  
有人可能会问建立Replica Set之后,万一出现Primary宕机,IP地址的问题如何解决。没有问题,读者可以查阅下资料,MongoDB的API已经提供了解决的方法。我使用的libmongo-client是c语言的API,里面提供的mongo_sync_reconnect()函数,自动找到新的Primary的IP,进行重连。

注意配置oplogSize这个参数,以M为单位,否则可能出现oplog.rs预分配空间过大的问题。

相关推荐

    NoSQL Manager for MongoDB中文版(免安装).zip

    4. **复制集管理**:管理MongoDB的复制集,监控副本状态,确保数据的高可用性。 5. **脚本编辑器**:内置脚本编辑器,支持编写和执行MongoDB命令,方便进行复杂操作。 6. **安全设置**:帮助用户配置MongoDB的权限...

    mongodb副本集+权限

    MongoDB是一种流行的NoSQL数据库,它支持高性能、高可用性和易扩展的数据存储。副本集是MongoDB中的一种机制,旨在提供数据...通过上述步骤,可以成功配置和部署一个MongoDB副本集,并为数据库设置适当的权限管理机制。

    MongoDB副本集集群

    副本集集群的搭建步骤包括成员的初始化、配置副本集的配置文件、启动副本集成员服务、加入副本集以及副本集功能扩展。副本集工作机制包括主从复制机制和选举机制等。分片功能是MongoDB用于实现大数据量自动分片,...

    NoSQL数据库之MongoDB源码和PPT

    5. **复制集**:为了实现高可用性和数据冗余,MongoDB提供了复制集功能,其中多个副本节点保持同步,当主节点故障时,可以自动切换到一个副本节点。 6. ** CRUD操作**:MongoDB提供了创建(Create)、读取(Read)...

    NoSQL-MongoDB大型部署详细方案

    MongoDB作为NoSQL数据库的一种,因其高性能、易扩展、分布式存储等特点,在大数据处理领域获得了广泛的应用。在部署大规模的MongoDB数据库时,需要考虑到数据的高可用性、负载均衡、数据备份和故障转移等需求。下面...

    NoSql数据库mongodb应用说明.pdf

    - 副本集:MongoDB 的复制功能允许创建多个数据副本,以确保高可用性和故障切换。 - 备份与恢复:MongoDB 提供了工具进行数据备份和恢复,如 mongodump 和 mongorestore。 6. **安全与认证** - 用户权限管理:...

    NoSQL数据库-MongoDB和Redis

    - **分片的配置和管理**:涉及配置分片集群、选择分片键和管理分片策略。 #### 八、Redis简介 Redis是一个开源的、基于内存的键值存储系统,支持多种数据结构,如字符串、列表、集合和有序集合等。Redis的特点...

    CentOS 6.4创建Mongodb副本集

    创建MongoDB副本集是为了实现数据的冗余和故障转移,当集群中的某个节点出现问题时,其他节点可以接管服务,保证业务连续性。在CentOS 6.4上设置MongoDB副本集的步骤如下: 1. **设置hostname**:首先,确保在副本...

    MongoDB数据库安全配置规范

    MongoDB是一款非常流行的文档型NoSQL数据库,被广泛应用于多种业务场景之中。为了确保数据的安全性,MongoDB提供了丰富的权限控制机制。本文将详细介绍MongoDB的安全配置规范,帮助用户更好地管理和保护数据库资源。...

    Linux运维-03-NoSQL数据库之MongoDB-01文档.zip

    本资料包"Linux运维-03-NoSQL数据库之MongoDB-01文档.zip"将带你深入理解MongoDB的基础知识和关键特性。 首先,MongoDB采用的是文档型数据库模型,它存储数据的形式是JSON(JavaScript Object Notation)文档,这种...

    搭建Nosql MongoDB高可用集群

    为了实现MongoDB的高可用性,MongoDB 3.0及以上版本引入了副本集(Replica Sets)的概念,副本集提供了自动故障转移和数据冗余的功能,是推荐的高可用性解决方案。副本集由一组mongod进程组成,其中一个为primary...

    Linux运维-03-NoSQL数据库之MongoDB-05资料.zip

    4. **MongoDB安装与启动**:在Linux上,通常通过包管理器如`apt`或`yum`来安装MongoDB,然后使用`mongod`命令启动数据库服务。同时,需要配置`/etc/mongod.conf`以适应特定环境。 5. **数据模型**:MongoDB使用BSON...

    NoSql MongoDB权威指南.zip

    此外,还会讲解到更高级的主题,如副本集的配置、分片策略、备份与恢复、性能调优、安全控制和监控工具等。 通过阅读这本书,你将掌握MongoDB的实战技巧,理解其设计理念,并能有效地利用MongoDB解决实际的业务问题...

    实验五 MongoDB分片部署与启动

    3. **配置Shard副本集**:在各服务器上登录MongoDB客户端,初始化各个Shard的副本集。 4. **查看Shard副本集状态**:通过执行`rs.status()`命令查看副本集的状态。 ##### 部署mongos 1. **创建配置文件**:在...

    Mongodb3.0.5 副本集搭建及spring和java连接副本集配置详细介绍

    这样,你的应用程序就可以安全地连接到MongoDB副本集,并从中读取和写入数据。 总之,MongoDB的副本集是实现高可用性和数据容错的重要工具。正确配置和连接副本集可以极大地提升应用的稳定性和可靠性。在Spring和...

    MongoDB分片集群搭建教程:副本集创建与数据分片

    内容概要:本文提供了详细的MongoDB分片集群的搭建指导,涵盖了从环境准备、配置文件编写、副本集的建立、主节点的选择、配置服务器和数据分片服务器的配置到最后的路由节点的搭建与操作整个流程,以及对数据库的...

    mongoDB非关系型数据库安装以及使用指南

    复制集是MongoDB提供高可用性的一种方式,它包含了多个副本节点,当主节点出现问题时,副本可以自动接管。设置复制集涉及配置文件修改和初始选举过程。 十、MongoDB的分片 对于大数据处理,MongoDB支持分片...

    MongoDB集群配置

    - **配置连接**:在Spring Boot应用程序中,可以通过配置文件来指定连接MongoDB副本集或分片集群的必要信息,包括主机地址、端口、认证信息等。 - **连接池管理**:Spring Data MongoDB支持连接池的管理,可以配置...

Global site tag (gtag.js) - Google Analytics