mongodb副本集搭建

钟逸 55 2024-02-28 18:30:10

如何配置MongoDB副本集

MongoDB已经成为市面上最知名的 NoSQL数据库。MongoDB是面向文档的,它的无模式设计使得它在各种各样的WEB应用当中广受欢迎。

MongoDB已经成为市面上最知名的 NoSQL数据库。MongoDB是面向文档的,它的无模式设计使得它在各种各样的WEB应用当中广受欢迎。最让我喜欢的特性之一是它的副本集(Replica Set),副本集将同一数据的多份拷贝放在一组 mongod节点上,从而实现数据的冗余以及高可用性。

这篇教程将向你介绍如何配置一个 MongoDB副本集。

副本集的最常见配置需要一个主节点以及多个副节点。这之后启动的复制行为会从这个主节点到其他副节点。副本集不止可以针对意外的硬件故障和停机事件对数据库提供保护,同时也因为提供了更多的节点从而提高了数据库客户端数据读取的吞吐量。

配置环境

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

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

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

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

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

$ sudo su

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

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

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

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

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

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

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

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

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

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

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

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

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

在主节点上:

在副节点1上:

在副节点2上:

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

在主节点上:

在副节点1上:

在副节点2上:

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

配置副本集

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

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

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

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

$ sudo service mongod restart

现在连接到 MongoDB master:

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

重启 MongoDB:

$ sudo service mongod restart

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

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

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

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

希望这篇教程能对你有所帮助。你可以使用Vagrant来自动完成你的本地环境配置,并且加速你的代码。

MongoDB 3.0正式版发布下载

CentOS编译安装MongoDB

CentOS编译安装 MongoDB与mongoDB的php扩展

CentOS 6使用 yum安装MongoDB及服务器端配置

Ubuntu 13.04下安装MongoDB2.4.3

MongoDB入门必读(概念与实战并重)

Ubunu 14.04下MongoDB的安装指南

《MongoDB权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]

Nagios监控MongoDB分片集群服务实战

基于CentOS 6.5操作系统搭建MongoDB服务

MongoDB的详细介绍:请点这里MongoDB的下载地址:请点这里

via: How to set up a Replica Set on MongoDB

作者:Christopher Valerio译者:mr-ping校对:wxy

本文由 LCTT原创翻译,Linux中国荣誉推出

本文永久更新链接地址:

上一篇:地下城手游什么时候出
下一篇:梦幻西游手游校验失败
相关文章
返回顶部小火箭