服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - MongoDB - CentOS 6.4创建Mongodb副本集

CentOS 6.4创建Mongodb副本集

2020-05-08 16:01朱 茂海 MongoDB

这篇文章主要为大家详细介绍了CentOS 6.4创建Mongodb副本集的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

MongoDB是一个开源的non-SQL数据库引擎。 MongoDB是可扩展的,是标准关系数据库管理系统(RDBMS)的替代品。 副本集可以使在节点发生故障时还能提供对您的数据的访问。

安装MongoDB

1.确保在副本集的每个成员设置好hostname
nano /etc/hostname
/etc/hostname:
europa

2.创建一个文件以保存MongoDB存储库的配置信息:
sudo touch /etc/yum.repos.d/mongodb.repo

3.如果运行的是64位系统,请使用以下配置:

?
1
2
3
4
5
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

对于32位系统,请使用以下配置:

?
1
2
3
4
5
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/
gpgcheck=0
enabled=1

4.使用如下命令安装MongoDB:
sudo yum install mongo-10gen-server

配置网络

请正确配置网络,否则将无法向副本集添加成员。 本节将详细介绍如何将三(3)个服务器配置为MongoDB副本集。
设置hosts文件
/etc/hosts
192.168.160.1 mongo1
192.168.170.1 mongo2
192.168.180.1 mongo3

使用您自己的IP地址代替上述示例中的地址。 副本集中的成员名称也可以根据你的需要设置名称。

编辑Mongo Conf文件
1.编辑mongod.conf文件以添加IP地址和端口号。
/etc/mongod.conf:

?
1
2
3
4
5
# fork and run in background
fork = true
 
bind_ip = 192.168.135.24
port = 27017

输入您在bind ip中服务器的私有IP地址。 如果bind_ip不存在,则需要添加它。 保留默认端口号27017,并取消注释行fork = true。
2.仍然在mongodb.conf文件中滚动到底部并添加副本集信息:
/etc/mongod.conf:
replSet = rs1

在此示例中,副本集为rs1,但是,您可以根据选择更改名称。

副本集

副本集将允许您的数据“复制”或传播到集合中的所有其他节点。 它在系统故障的情况下提供冗余。 建议副本集节点个数为奇数,因为这会使选举更容易。
选举是选择哪个节点成为主节点。 选举在副本集初始化之后和主节点不可用时发生。 主节点是唯一可以接受写操作的节点。 如果主节点不可用,则进行选举选出新的主节点。 选举操作自动进行,无需人工干预。

创建副本集

mongod.conf文件在安装过程中就创建好了。 需要用这个配置文件在副本集的每个节点上启动守护程序。

1.命令如下:

mongod --config /etc/mongod.conf

守护程序启动后,输出如下。
[user@europa mongo]# mongod –config /etc/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 20955
all output going to: /var/log/mongo/mongod.log
child process started successfully, parent exiting

2.仅在副本集的一个节点上启动MongoDB客户端:
mongo --host <mongo0>

3.在MongoDB提示符下,使用命令切换到admin:
use admin

您应该看到消息switched to db admin.

4.运行rs.initiate()命令,该命令将在当前节点中创建副本集。 输出应类似于以下内容:

?
1
2
3
4
5
6
> rs.initiate()
{
“info2” : “no configuration explicitly specified — making one”,
“me” : “192.168.160.1:27017”,
“info” : “Config now saved locally. Should come online in about a minute.”,
“ok” : 1

5.要查看当前配置,运行命令:
rs.conf()

输出应类似于以下内容:

?
1
2
3
4
5
6
7
8
9
10
11
rs.conf()
{
  "_id" : "rs1",
  "version" : 8,
  "members" : [
    {
      "_id" : 0,
      "host" : "192.168.160.1:27017"
    }
  ]
}

6.要将成员添加到副本集,请使用命令:
rs.add("mongo1:27017")

输出:
rs1:PRIMARY> rs.add(“mongo2:27017”)
{ “ok” : 1 }

7.要验证节点是否已正确添加,请再次运行rs.conf()命令。 输出应类似于以下内容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
rs1:PRIMARY> rs.conf()
{
“_id” : “rs0”,
“version” : 8,
“members” : [
{
“_id” : 0,
“host” : “192.168.160.1:27017”
},
{
“_id” : 1,
“host” : “mongo1:27017”
},
{
“_id” : 2,
“host” : “mongo2:27017”
}
]
}

验证副本集
验证副本集是否正常并且节点都进行正常通信的最佳方法是创建新的测试数据库。 默认情况下,当您连接到MongoDB时,将使用现有的测试数据库。 为了保存新数据库,需要添加数据。 创建和插入数据的过程如下:
1.创建数据库
use <products>
用您喜欢的任何名称替换变量products。
2.添加数据
db.products.insert( {item: "paint", qty: 10 } )
如果您不在副本集的主节点上,您将收到消息not master。 切换到主节点并再次运行命令。 现在使用命令:
show dbs
显示数据库列表。 您的新应该出现在列表中。 连接到副本集的其他节点,查看新创建的数据库是否已复制过去。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.centos.bz/2016/10/creating-a-mongodb-replication-set-on-centos-6-4/

延伸 · 阅读

精彩推荐
  • MongoDBMongoDB多条件模糊查询示例代码

    MongoDB多条件模糊查询示例代码

    这篇文章主要给大家介绍了关于MongoDB多条件模糊查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MongoDB具有一定的参考学习价值...

    浅夏晴空5902020-05-25
  • MongoDB在mac系统下安装与配置mongoDB数据库

    在mac系统下安装与配置mongoDB数据库

    这篇文章主要介绍了在mac系统下安装与配置mongoDB数据库的操作步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪...

    CXYhh1219312021-11-14
  • MongoDBMongoDB系列教程(五):mongo语法和mysql语法对比学习

    MongoDB系列教程(五):mongo语法和mysql语法对比学习

    这篇文章主要介绍了MongoDB系列教程(五):mongo语法和mysql语法对比学习,本文对熟悉Mysql数据库的同学来说帮助很大,用对比的方式可以快速学习到MongoDB的命...

    MongoDB教程网3252020-05-01
  • MongoDBMongoDB的索引

    MongoDB的索引

    数据库中的索引就是用来提高查询操作的性能,但是会影响插入、更新和删除的效率,因为数据库不仅要执行这些操作,还要负责索引的更新 ...

    MongoDB教程网2532020-05-12
  • MongoDBMongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    MongoDB查询之高级操作详解(多条件查询、正则匹配查询等)

    这篇文章主要给大家介绍了关于MongoDB查询之高级操作(多条件查询、正则匹配查询等)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者...

    w田翔3872020-12-19
  • MongoDBWindows下MongoDB配置用户权限实例

    Windows下MongoDB配置用户权限实例

    这篇文章主要介绍了Windows下MongoDB配置用户权限实例,本文实现需要输入用户名、密码才可以访问MongoDB数据库,需要的朋友可以参考下 ...

    MongoDB教程网3082020-04-29
  • MongoDBmongodb数据库基础知识之连表查询

    mongodb数据库基础知识之连表查询

    这篇文章主要给大家介绍了关于mongodb数据库基础知识之连表查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mongodb具有一定的参...

    ZJW02155642020-05-22
  • MongoDBMongodb索引的优化

    Mongodb索引的优化

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。接下来通过本文给大家介绍Mongodb索引的优化,本文介绍的非常详细,具有参考借鉴价值,感...

    MRR3252020-05-05