设置MongoDB副本集分为4个步骤

介绍

在详细介绍配置MongoDB副本集之前,让我简要介绍一下它们:

  • 副本集是Mongodb数据库提供的功能,可实现高可用性和自动故障转移。
  • 它是一种传统的主从配置,但具有自动故障转移功能。
  • 基本上,它是mongod实例的组/集群,它们进行通信,相互复制以提供高可用性并进行自动故障转移
  • 基本上,副本集中至少存在2个,最多可以存在12个mongod实例
  • 在副本集中,存在以下类型的服务器。 首先,一台服务器始终是主要服务器。
    • Primary:存储数据,所有写/读操作均从任何客户端进行到该服务器。
  • 它提供了自动故障转移功能,这意味着它无需人工干预即可将另一台服务器设置为主服务器,并且具有内部机制来选举新的主服务器。
  • 在副本集中,如果主服务器由于网络错误而停机,或者副本集中的其他服务器无法访问主服务器或主服务器无响应,则由所有服务器在内部触发选举机制以选举新的主服务器,并且这是非常自动的。

在本文中,我将通过4个简单的步骤向您展示3个成员/节点群集副本集的配置。 在此副本集配置中,我们将创建两台数据服务器,其中一台将为主服务器,另一台为辅助服务器,而另一台非仲裁服务器。 因此,让我们继续按照以下4个步骤配置副本:

步骤1:设置副本集的每个实例

正如我在上一篇文章中讨论的那样,使用以下信息创建和设置3个新的mongodb服务器实例实例,但不要启动这些服务器实例:

  • 服务器1
port = 27017directory path =<dir path>\ rs1E.g.directory structure :  I:\workspace\mongo\rs1\bin
  • 服务器2
port = 26017directory path =<dir path>\ rs2E.g.directory structure  I:\workspace\mongo\rs2\bin
  • 服务器3
port = 25017directory path =<dir path>\ rs2E.g.directory structure  I:\workspace\mongo\rs3\bin

步骤2:修改mongodb.conf以包含副本集信息

编辑每个服务器的mongod.conf以包括以下属性:

  • replSet =副本集的唯一名称,赋予所有成员
  • rest =为管理网页启用休息界面

您可以为副本集指定任何名称,但请确保所有成员名称相同。 继续给你想要的名字。 在这里,我使用的是“ damon”

例如,将以下内容附加到mongod.conf文件中

replSet=damon
rest=true

第三步:启动所有服务器

完成必要的配置后,继续以任意顺序启动服务器

rs1 >> mongod -f \rs1\mongod.conf
rs2 >> mongod -f \rs2\mongod.conf
rs3 >> mongod -f \rs3\mongod.conf

步骤4:配置服务器以包含在副本集中

现在,所有服务器都已启动,但它们没有相互连接。 换句话说,它们不是副本集的一部分。 因此,为此,我们需要执行以下操作。 同样,我们将创建两个数据服务器,即一个主服务器,另一个辅助服务器和一个仲裁服务器。 现在,使用MongoDB二进制文件中提供的mongo shell连接到任何一台服务器。

这里。 让我们使用mongodb shell连接到服务器rs1

rs1 > /rs1/bin/mongo.exe --port 27017

之后,您将得到提示,请输入mongo shell,如下图所示:

png; base645e9fd8342dd15fa1

对于副本配置,mongo shell提供了预定义的对象rs,该对象包含以下用于配置的功能:

  • initiate() =>在当前服务器中创建副本集配置
  • status() =>给出服务器所属的副本集的当前状态
  • add(serverInfo) =>在副本集中添加新服务器(作为参数提供)。
  • addArb(serverInfo) =>用于在副本集中添加仲裁器的专用功能

首先,我们需要在其中一台服务器中创建副本集配置。 在mongo shell中执行以下命令:

> rs.initiate()

之后,您会在提示符下看到以下内容:

png; base64838a3d5dc722c104

这将在本地为此服务器创建必要的副本集信息,并且您会注意到提示从初始的'>'变为'damon:STARTUP2>' ,这表明<replicaSetName:服务器的状态>

您可以在shell提示符下输入rs.status()来检查副本集中有多少台服务器:

png; base642ef0ef96d4cc2826

如您所见,我们在副本集中仅添加了一个服务器,它是当前服务器,其状态为“主要”。

检查副本中成员的其他方法是使用浏览器地址栏中的以下URL http:// : / _replSet。 在我们的情况下,http:// localhost:28017 / _replSet
注意,这需要在配置文件中启用rest = true(并且我们已经做到了!)。 这是检查副本集中服务器状态的首选方法。

png; base648c9b0542e15ba78

现在,我们在副本服务器中添加了一个服务器,让我们添加其余服务器。

对于add()addArb()方法,我们将提供包含<machine / host-name>的字符串参数:<port-no-of-server>

(请注意,如果要使用计算机名,请在dos或bash shell中使用hostname命令)

rs.add(“<machine/host-name>:26017”)

png; base6451a8e8144fb9bf78

rs.addArb(“<machine/host-name>:25017”)

png; base6471cda960ad51ffc4

让我们检查是否使用rs.status()命令添加了节点/成员:

png; base64bc2381387562ac74

或使用基于浏览器的:

png; base64281be3bd5613c0e2

在这里,我们配置了3节点副本集MongoDB数据库集群。 尽管此信息可以应用于配置任何编号。 副本集中节点的数量。

参考: 设置MongoDB副本通过 JCG合作伙伴 Abhijeet Sutar在Another Java Duke博客上的四个步骤进行设置 。

翻译自: https://www.javacodegeeks.com/2013/07/setup-mongodb-replica-set-in-4-steps.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP ajax跨域问题最佳解决方案

一、本文通过设置Access-Control-Allow-Origin来实现跨域。 例如&#xff1a;客户端的域名是client.runoob.com&#xff0c;而请求的域名是server.runoob.com。 如果直接使用ajax访问&#xff0c;会有以下错误&#xff1a; XMLHttpRequest cannot load http://server.runoob.co…

java jpa 注解_Java : JPA相关以及常用注解

SpringDataJPA自定义的查询方法 定义规范And 并且Or     或Is,Equals    等于Between     两者之间LessThan      小于LessThanEqual   小于等于GreaterThan     大于GreaterThanEqual  大于等于After    之后(时间) >Before    之前(时间)…

一篇文章搞定css3 3d效果

css3 3d学习心得 卡片反转魔方banner图 首先我们要学习好css3 3d一定要有一定的立体感 通过这个图片应该清楚的了解到了x轴 y轴 z轴是什么概念了。 首先先给大家看一个小例子&#xff1a; 卡片反转 这个例子只是简单的纯css3 3d 关于y轴旋转 下面是代码&#xff1a; 这是HT…

5个编码技巧以减少GC开销

在本文中&#xff0c;我们将介绍五种方法&#xff0c;这些方法可以使用有效的编码来帮助垃圾回收器减少分配和释放内存的CPU时间&#xff0c;并减少GC开销。 较长的GC通常会导致我们的代码在回收内存时被停止&#xff08;也称为“停止世界”&#xff09;。 一些背景 GC的建立…

c#阿里云服务器发送邮件

public static void SendMailUse(){string host "smtp.lotusest.com";// 邮件服务器smtp.163.com表示网易邮箱服务器 string userName "s********t.com";// 发送端账号 string password "11111111";// 发送端密码(这个客户端重置后的密码…

java usb 无驱打印_Windows Usb 无驱动打印

\?\USB#VID_8866&PID_0100#0001B0000000#{a5dcbf10-6530-11d2-901f-00c04fb951ed}USB小票打印解决办法一、需要驱动&#xff0c;无需更改程序安装USB打印驱动&#xff0c;然后共享打印机&#xff0c;通过 “\\计算机\打印机名”的形式&#xff0c;按端口方式写。1二、直接…

需要学习的东西列表

1.Python2.webservice3.requirejs4.idea5.webService6.redis7.doubble8.mongDB9.zookper 大数据学习曲线&#xff1a;课程一、大数据运维之Linux基础课程二、大数据开发核心技术-Hadoop 2.x从入门到精通课程三、大数据开发核心技术-大数据仓库Hive精讲课程四、大数据协作框架-S…

微信小程序 引用其他js里的方法

微信小程序中&#xff0c;在微信官方开发文档我们可以知道 小程序的目录结构 。 一个小程序页面由四个文件组成&#xff0c;一个小程序页面的四个文件具有相同路径与文件名&#xff0c;由此我们可知一个小程序页面对应着一个跟页面同名的js文件。可是当有些公共方法&#xff0…

集成JavaFX和Swing(修订版)

我刚刚完成了对使用Swing的应用程序组件的重写&#xff0c;现在正在使用JavaFX&#xff0c;最后得到了与更大的swing应用程序集成的JavaFX组件。 这是一个很大的应用程序&#xff0c;重写花了我一段时间&#xff0c;最后一切都很好&#xff0c;我很高兴自己做到了。 您可能想在…

C++内存模型

C内存模型 一文了解所有C内存的问题 AlexCool 目录 一 C内存模型 二 C对象内存模型 三 C程序运行内存空间模型 四 C栈内存空间模型 五 C堆内存空间模型 六 C内存问题及常用的解决方法 七 C程序内存性能测试 环境&#xff1a; uname -a Linux alexfeng 3.19.0-15-generic #…

java bag_Java - T---bag - 博客园

Java是一门面向对象编程语言&#xff0c;不仅吸收了C语言的各种优点&#xff0c;还摒弃了C里难以理解的多继承、指针等概念&#xff0c;因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表&#xff0c;极好地实现了面向对象理论&#xff0c;…

IT服务(运维)管理实施的几个要点--序言

IT服务&#xff08;运维&#xff09;管理&#xff08;不是IT运维技术&#xff09;是IT行业当中相对比较“窄”的一个分支&#xff0c;通常只被金融、电信等大型数据中心的中高层管理人员所关注。但是根据笔者多年从事IT服务和服务管理的经验来看&#xff0c;IT服务并不是一件容…

HTML条件注释

前面的话 IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句&#xff0c;作用是可以灵活的为不同IE版本浏览器导入不同html元素。很显然这种方法的最大好处就在于属于微软官方给出的兼容解决办法而且还能通过W3C的效验 识别IE 因为从IE10开始&#xff0c;IE浏览器已经不再支…

MongoDB主键是您的朋友

MongoDB集合中的所有文档都有一个主键&#xff0c;称为_id 。 该字段在插入后自动分配给文档&#xff0c;因此几乎不需要提供它。 _id字段的有趣之处在于它是基于时间的 。 也就是说&#xff0c;基础类型的_id &#xff0c;这是ObjectId &#xff0c;是一个12字节的BSON型 &…

java getqueue 0_Java Queue的使用

Queue 实现一个先进先出的队列获取队列长度&#xff1a;size()添加元素到队尾&#xff1a;boolean add(E e) /boolean offer(E e)获取队列头部元素并删除&#xff1a;E remove() / E poll()获取队列头部元素但不删除&#xff1a;E element() / E peek()当添加或获取元素失败时t…

1015. Reversible Primes (20)

生词以及在文中意思prime 素数1.java十进制转为N进制&#xff1a;Integer.toString(int i,int radix)//返回的是i的二进制表示&#xff0c;返回类型为String&#xff0c;但是负数不适用。 N进制转为十进制&#xff1a;Integer.parseInt(String s,int radix)//radix进制的s&…

PAT 乙级 1029 旧键盘

1029 旧键盘 分数 20 作者 CHEN, Yue 单位 浙江大学 旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字&#xff0c;请你列出肯定坏掉的那些键。 输入格式&#xff1a; 输入在 2 行中…

css之absolute

一、absolute和float有相同的特性&#xff0c;包裹性和破坏性 1、absolute和float的相似(看下面的demo&#xff0c;如果图片在左上角&#xff0c;那么用float和absolute都一样) 1 <!doctype html>2 <html>3 <head>4 <meta charset"utf-8">5…

Spring Data Solr教程:分页

在我的Spring Data Solr教程的较早部分中&#xff0c;我们实现了一个简单的搜索功能&#xff0c;该功能用于搜索待办事项的信息。 我们搜索功能的当前实现将所有搜索结果显示在一个页面中。 对于大多数现实生活中的应用程序而言&#xff0c;这不是可行的解决方案&#xff0c;因…

消息队列01

公司项目里面用到了这个rabbitmq&#xff0c;自己以前不熟悉&#xff0c;看了代码里面的应用&#xff0c;自己也准备试着搭建下。 可以参照其他博主的这篇优秀博文&#xff1a; https://www.cnblogs.com/chengpeng15/p/5814197.html 一 前期需要了解的概念 1.什么是异步&#x…