返回顶部
首页 > 资讯 > 操作系统 >Linux下如何配置MongoDB副本集
  • 205
分享到

Linux下如何配置MongoDB副本集

2023-06-27 14:06:50 205人浏览 薄情痞子
摘要

这篇文章给大家分享的是有关linux下如何配置MongoDB副本集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据

这篇文章给大家分享的是有关linux下如何配置MongoDB副本集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

mongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。复制还允许您从硬件故障和服务中断中恢复数据。

Linux下如何配置MongoDB副本集

配置环境

这个教程里,我们会配置一个包括一个主节点以及两个副节点的副本集。

Linux下如何配置MongoDB副本集

为了达到这个目的,我们使用了3个运行在 VirtualBox 上的虚拟机。我会在这些虚拟机上安装 ubuntu 14.04,并且安装 MonGoDB 官方包。

我会在一个虚拟机实例上配置好所需的环境,然后将它克隆到其他的虚拟机实例上。因此,选择一个名为 master 的虚拟机,执行以下安装过程。

首先,我们需要给 apt 增加一个 MongoDB 密钥:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

然后,将官方的 MongoDB 仓库添加到 source.list 中:

$ sudo su# echo "deb Http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

接下来更新 apt 仓库并且安装 MongoDB。

$ sudo apt-get update$ sudo apt-get install -y mongodb-org

现在对 /etc/mongodb.conf 做一些更改

auth = truedbpath=/var/lib/mongodblogpath=/var/log/mongodb/mongod.loglogappend=truekeyFile=/var/lib/mongodb/keyFilereplSet=myReplica

第一行的作用是表明我们的数据库需要验证才可以使用。keyfile 配置用于 MongoDB 节点间复制行为的密钥文件。replSet 为副本集设置一个名称。

接下来我们创建一个用于所有实例的密钥文件。

$ echo -n "MyRandomStringForReplicaSet" | md5sum > keyFile

这将会创建一个含有 MD5 字符串的密钥文件,但是由于其中包含了一些噪音,我们需要对他们清理后才能正式在 MongoDB 中使用。

$ echo -n "MyReplicaSeTKEy" | md5sum|grep -o "[0-9a-z]\+" > keyFile

grep 命令的作用的是把将空格等我们不想要的内容过滤掉之后的 MD5 字符串打印出来。

现在我们对密钥文件进行一些操作,让它真正可用。

$ sudo cp keyFile /var/lib/mongodb$ sudo chown mongodb:nogroup keyFile$ sudo chmod 400 keyFile

接下来,关闭此虚拟机。将其 Ubuntu 系统克隆到其他虚拟机上。

Linux下如何配置MongoDB副本集

这是克隆后的副节点1和副节点2。确认你已经将它们的Mac地址重新初始化,并且克隆整个硬盘。

Linux下如何配置MongoDB副本集

请注意,三个虚拟机示例需要在同一个网络中以便相互通讯。因此,我们需要它们弄到“互联网”上去。

这里推荐给每个虚拟机设置一个静态 IP 地址,而不是使用 DHCP。这样它们就不至于在 DHCP 分配IP地址给他们的时候失去连接。

像下面这样编辑每个虚拟机的 /etc/networks/interfaces 文件。

在主节点上:

auto eth2    iface eth2 inet static    address 192.168.50.2    netmask 255.255.255.0

在副节点1上:

auto eth2    iface eth2 inet static    address 192.168.50.3    netmask 255.255.255.0

在副节点2上:

auto eth2    iface eth2 inet static    address 192.168.50.4    netmask 255.255.255.0

由于我们没有 DNS 服务,所以需要设置设置一下 /etc/hosts 这个文件,手工将主机名称放到此文件中。

在主节点上:

127.0.0.1 localhost primary192.168.50.2 primary192.168.50.3 secondary1192.168.50.4 secondary2

在副节点1上:

127.0.0.1 localhost secondary1192.168.50.2 primary192.168.50.3 secondary1192.168.50.4 secondary2

在副节点2上:

127.0.0.1 localhost secondary2192.168.50.2 primary192.168.50.3 secondary1192.168.50.4 secondary2

使用 ping 命令检查各个节点之间的连接。

$ ping primary$ ping secondary1$ ping secondary2

配置副本集

验证各个节点可以正常连通后,我们就可以新建一个管理员用户,用于之后的副本集操作。

在主节点上,打开 /etc/mongodb.conf 文件,将 auth 和 replSet 两项注释掉。

dbpath=/var/lib/mongodblogpath=/var/log/mongodb/mongod.loglogappend=true#auth = truekeyFile=/var/lib/mongodb/keyFile#replSet=myReplica

在一个新安装的 MongoDB 上配置任何用户或副本集之前,你需要注释掉 auth 行。默认情况下,MongoDB 并没有创建任何用户。而如果在你创建用户前启用了 auth,你就不能够做任何事情。你可以在创建一个用户后再次启用 auth。

修改 /etc/mongodb.conf 之后,重启 mongod 进程。

$ sudo service mongod restart

现在连接到 MongoDB master:

$ mongo :27017

连接 MongoDB 后,新建管理员用户。

> use admin> db.createUser({user:"admin",pwd:"})

重启 MongoDB:

$ sudo service mongod restart

再次连接到 MongoDB,用以下命令将 副节点1 和副节点2节点添加到我们的副本集中。

> use admin> db.auth("admin","myreallyhardpassWord")> rs.initiate()> rs.add ("secondary1:27017")> rs.add("secondary2:27017")

现在副本集到手了,可以开始我们的项目了。参照 官方驱动文档 来了解如何连接到副本集。如果你想要用 shell 来请求数据,那么你需要连接到主节点上来插入或者请求数据,副节点不行。如果你执意要尝试用副本集操作,那么以下错误信息就蹦出来招呼你了。

myReplica:SECONDARY>myReplica:SECONDARY> show databases2015-05-10T03:09:24.131+0000 E QUERY    Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" }    at Error ()    at Mongo.getDBs (src/mongo/shell/mongo.js:47:15)    at shellHelper.show (src/mongo/shell/utils.js:630:33)at shellHelper (src/mongo/shell/utils.js:524:36)    at (shellhelp2):1:1 at src/mongo/shell/mongo.js:47

如果你要从 shell 连接到整个副本集,你可以安装如下命令。在副本集中的失败切换是自动的。

$ mongo primary,secondary1,secondary2:27017/?replicaSet=myReplica

如果你使用其它驱动语言(例如,javascript、Ruby 等等),格式也许不同。

感谢各位的阅读!关于“Linux下如何配置MongoDB副本集”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Linux下如何配置MongoDB副本集

本文链接: https://lsjlt.com/news/311234.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linux下如何配置MongoDB副本集
    这篇文章给大家分享的是有关Linux下如何配置MongoDB副本集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据...
    99+
    2023-06-27
  • 如何配置 MongoDB 副本集
    MongoDB 已经成为市面上最知名的 NoSQL 数据库。MongoDB是面向文档的,它的无模式设计使得它在各种各样的WEB 应用当中广受欢迎。最让我喜欢的特性之一是它的副本集(Replica Set),...
    99+
    2024-04-02
  • 配置mongodb副本集
    主机信息:[root@my2 db]# cat /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 loca...
    99+
    2024-04-02
  • MongoDB安装与副本集配置
    副本集是一组,由N个mongo节点组成并协同工作的,提供自动的故障集群转移。...
    99+
    2024-04-02
  • MongoDB中怎么配置副本集
    MongoDB中怎么配置副本集,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。环境准备三台服务器,地址分别是:192.168.248.128192.168.248.13519...
    99+
    2023-06-19
  • mongodb如何更换副本集
    要更换MongoDB副本集,需要遵循以下步骤:1. 添加新副本集成员:首先,在新服务器上安装MongoDB,并确保它可以连接到现有的...
    99+
    2023-08-23
    mongodb
  • 【MongoDB学习笔记32】MongoDB修改副本集配置
    一、删除副本集成员spock:PRIMARY> rs.config()    {       &nb...
    99+
    2024-04-02
  • 如何进行MongoDB副本集搭建
    如何进行MongoDB副本集搭建,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我们之前的案例都是在单个节点上实现的,在生产环境中这种做法是有风险的,如果服务宕机...
    99+
    2023-06-19
  • mongo副本集集群安装配置
    新建用户和目录 useradd mongodb mkdir  -p /comm/mg10000/data mkdir  -p /comm/mg10001/data mkdir...
    99+
    2024-04-02
  • 如何为MongoDB添加分片副本集
    目录01 新建副本集02 副本集添加到已有的集群中(addShard)03 添加分片时间标签(addShardTag)04 给打好的标签添加具体的数值范围(addTagRange)0...
    99+
    2024-04-02
  • MongoDB如何删除添加副本集并修改副本集IP等信息
    本篇文章为大家展示了MongoDB如何删除添加副本集并修改副本集IP等信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MongoDB 删除,添加副本集,并修改副本...
    99+
    2024-04-02
  • mongodb副本集如何添加删除节点
    这期内容当中小编将会给大家带来有关mongodb副本集如何添加删除节点,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。环境介绍:三个节点的mongodb 副本集10.9.2...
    99+
    2024-04-02
  • MongoDB的副本集与自动故障转移怎么配置
    在MongoDB中配置副本集和自动故障转移需要以下步骤: 配置副本集的成员:打开MongoDB配置文件(通常是mongod.con...
    99+
    2024-05-07
    MongoDB
  • MongoDB访问控制的副本集如何部署
    这篇文章主要介绍了MongoDB访问控制的副本集如何部署的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MongoDB访问控制的副本集如何部署文章都会有所收获,下面我们一起来看看吧。版本及环境 MongoDB4....
    99+
    2023-06-29
  • MongoDB为何要部署单机副本集
    部署单机副本集最终目的:以后扩展的时候也好进行扩展。在不用停机的情况下,进行添加节点。添加用户组groupadd -g 355 mongodb     &n...
    99+
    2024-04-02
  • MongoDB如何修改副本集节点的优先值
    这篇文章主要介绍MongoDB如何修改副本集节点的优先值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 复制集节点的优先级影响了 elections 的...
    99+
    2024-04-02
  • MongoDB副本集如何添加和删除仲裁节点
    小编给大家分享一下MongoDB副本集如何添加和删除仲裁节点,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2024-04-02
  • Linux上如何配置mongodb
    这篇文章给大家分享的是有关Linux上如何配置mongodb的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高...
    99+
    2023-06-27
  • Linux如何创建副本
    这篇文章主要介绍了Linux如何创建副本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linux系统可以用cp命令来实现对文件和目录的备份,操作步骤如下:首先复制一个文件,需...
    99+
    2023-06-10
  • Linux下MongoDB安装与配置
    CentOS6上安装MongoDB3.0.3版本:mongodb-linux-x86_64-rhel62-3.0.5.tgz安装openssl#yum install -y openssl-devel op...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作