MongoDB实战系列之四:mongodb副本集部署

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

简述:副本集合(Replica Sets),是一个基于主/从复制机制的复制功能,但增加了自动故障转移和恢复特性。一个集群最多可以支持7个服务器,并且任意节点都可以是主节点。所有的写操作都被分发到主节点,而读操作可以在任何节点上进行。

环境:CentOS 5.5 x64

md01           10.0.0.11
md02           10.0.0.12
md03           10.0.0.14

把以上主机名对应IP 添加到hosts文件 

方法一:设置优先级

启动各节点:
md01

 
  1. /elain/apps/mongodb/bin/mongod --rest --replSet elain/md01:27017 --master --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log 
  2. md02 
  3. /elain/apps/mongodb/bin/mongod --rest --replSet elain/md02:27017  --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log 
  4. md03 
  5. /elain/apps/mongodb/bin/mongod --rest --replSet elain/md03:27017  --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log 

初始化节点:
md01:(登录其中任何一个节点操作皆可)

 
  1. mongo --port 27017 
  2.  
  3. > rs.initiate({ 
  4.     _id : "elain", 
  5.     members : [ 
  6.     {_id : 1, host : "md01:27017", priority:2}, 
  7.     {_id : 2, host : "md02:27017", priority:3}, 
  8.     {_id : 3, host : "md03:27017", priority:4}, 
  9.     ] 
  10.     }); 
#priority 是设置优先级的,默认优先级为1,可以是1-1000的数字 注:通常在同一个交换机上,同一个网内,通常使用优先级来设置 副本集就已经足够使用了 方法二:添加仲裁节点(这里设置在md02): 启动各节点: md01
 
  1. /elain/apps/mongodb/bin/mongod --rest --replSet elain/md01:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log 
  2. md02 
  3. /elain/apps/mongodb/bin/mongod --rest --replSet elain/md02:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log 
  4. md03 
  5. /elain/apps/mongodb/bin/mongod --rest --replSet elain/md03:27017 --fork --port 27017 --dbpath /elain/data/mongodb/db/ --logpath /elain/logs/mongodb/mongodb.log 

#启动仲裁节点
在md02上

 
  1. mkdir /elain/data/mongodb/arb 
  2. /elain/apps/mongodb/bin/mongod --fork --rest --replSet elain --dbpath /elain/data/mongodb/arb --port 27015 --logpath /elain/logs/mongodb/mongodb.log 

初始化节点:
md01:(登录其中任何一个节点操作皆可)

 
  1. > rs.initiate({ 
  2.     _id : "elain", 
  3.     members : [ 
  4.     {_id : 1, host : "md01:27017"}, 
  5.     {_id : 2, host : "md02:27017"}, 
  6.     {_id : 3, host : "md03:27017"}, 
  7.     {_id : 4, host : "md02:27015", "arbiterOnly": true}, 
  8.     ] 
  9.     });
#验证
 
  1. PRIMARY> rs.status() 
也可浏览:http://10.0.0.11:28017/_replSet  查看状态 #设置从库可读(从库上执行)
 
  1. >rs.slaveOk(); 
查看副本集状态
 
  1. >rs.status() 
  2. >user local; 
  3. >rs.isMaster() 
  4. >db.system.replset.find()
查看当前主库:
 
  1. >db.$cmd.findOne({ismaster:1}); 

 

转载请注明: 转载自http://www.elain.org

本文链接地址:MongoDB实战系列之四:mongodb副本集部署

 


本文转自 elain2012 51CTO博客,原文链接:http://blog.51cto.com/elain/764536


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
1月前
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
|
2月前
|
存储 NoSQL MongoDB
MongoDB 复制(副本集)
10月更文挑战第17天
46 2
MongoDB 复制(副本集)
|
1月前
|
存储 NoSQL MongoDB
【赵渝强老师】部署MongoDB复制集
本文介绍了如何在单个节点上搭建MongoDB复制集环境,通过监听不同端口实现多节点配置。详细步骤包括创建数据目录、编辑配置文件、启动节点、初始化复制集、查看状态以及测试主从库的读写操作。文中还提供了视频讲解和代码示例,帮助读者更好地理解和操作。
|
3月前
|
存储 NoSQL Shell
MongoDB复制(副本集)总结
这篇文章是关于MongoDB副本集的总结,包括复制原理、设置副本集、案例分析等内容。
50 1
|
4月前
|
存储 NoSQL JavaScript
MongoDB存储过程实战:聚合框架、脚本、最佳实践,一文全掌握!
【8月更文挑战第24天】MongoDB是一款备受欢迎的文档型NoSQL数据库,以灵活的数据模型和强大功能著称。尽管其存储过程支持不如传统关系型数据库,本文深入探讨了MongoDB在此方面的最佳实践。包括利用聚合框架处理复杂业务逻辑、封装业务逻辑提高复用性、运用JavaScript脚本实现类似存储过程的功能以及考虑集成其他工具提升数据处理能力。通过示例代码展示如何创建订单处理集合并定义验证规则,虽未直接实现存储过程,但有效地演示了如何借助JavaScript脚本处理业务逻辑,为开发者提供更多实用指导。
91 2
|
4月前
|
存储 NoSQL MongoDB
今日分享MongoDB一键部署脚本
今日分享MongoDB一键部署脚本
43 0
|
4月前
|
NoSQL Java 测试技术
5-MongoDB实战演练
本文档详细介绍了如何使用MongoDB实现头条文章的评论系统。主要功能包括基本的增删改查API、根据文章ID查询评论、以及评论的点赞功能。文章分析了表结构设计,明确了各字段的意义,并给出了具体的字段类型。技术选型方面,文档推荐使用mongodb-driver作为Java连接MongoDB的驱动包,同时介绍了Spring Data MongoDB这一更高层次的持久层框架。此外,文档还提供了搭建文章微服务模块的具体步骤,包括项目工程的搭建、实体类的编写、索引的添加方式等,并展示了如何使用MongoTemplate实现评论点赞功能。
|
4月前
|
NoSQL MongoDB Windows
MongoDB 读写分离——Windows MongoDB 副本集配置
MongoDB 读写分离——Windows MongoDB 副本集配置
95 0
|
6月前
|
存储 NoSQL MongoDB
MongoDB实战面试指南:常见问题一网打尽
MongoDB实战面试指南:常见问题一网打尽
|
7月前
|
监控 NoSQL MongoDB
【MongoDB 专栏】MongoDB 的副本集故障转移与恢复
【5月更文挑战第11天】MongoDB的副本集是高可用性关键,提供数据冗余和自动故障转移。由主节点和从节点组成,主节点处理写操作,从节点同步数据。当主节点故障,副本集通过选举产生新主节点,确保服务不间断。故障转移涉及节点优先级和数据同步状态的考量。恢复阶段解决数据不一致,重点包括节点部署监控、数据同步策略、选举机制和备份恢复计划。网络延迟和大规模数据可能带来挑战,需优化网络、性能调优和定期演练。随着技术进步,副本集的故障转移与恢复将更高效、智能,保障数据安全,支撑业务系统的稳定运行。
366 3
【MongoDB 专栏】MongoDB 的副本集故障转移与恢复