前言
MongoDB是一款非常流行的开源NoSQL数据库,支持水平扩展和副本集等特性。本篇文章将介绍如何在CentOS 6.4上创建Mongodb副本集。
步骤一:安装MongoDB
首先需要安装MongoDB,可以使用以下命令进行安装:
sudo vi /etc/yum.repos.d/mongodb.repo
添加以下内容:
[mongodb]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.0.asc
保存并退出。
执行以下安装命令:
sudo yum install mongodb-org
步骤二:启动MongoDB
MongoDB安装完成后,需要启动MongoDB服务:
sudo service mongod start
步骤三:创建配置文件
接下来需要创建一个MongoDB的配置文件。在终端中输入以下命令:
sudo vi /etc/mongod.conf
在该文件中添加以下配置:
# 数据库文件
dbpath=/var/lib/mongo
# 日志文件
logpath=/var/log/mongodb/mongod.log
# 端口号
port=27017
# 是否绑定本地IP,只接受本机访问
bind_ip=127.0.0.1
# 设置副本集相关参数
replication:
replSetName: rs0
步骤四:重启MongoDB
保存以上配置后,需要重启MongoDB服务操作生效:
sudo service mongod restart
步骤五:初始化副本集
接下来需要初始化一个副本集,使用以下命令:
mongo
rs.initiate()
执行以上命令后,将会有以下输出:
{
"info2": "no configuration specified. Using a default configuration for the set",
"me": "localhost:27017",
"info": "try querying local.system.replset to see current configuration",
"ok": 1
}
步骤六:添加副本集节点
接下来需要添加副本集节点。在本地终端上,打开另外两个终端,分别执行以下命令:
终端一:
mongo --port 27018
rs.slaveOk()
终端二:
mongo --port 27019
rs.slaveOk()
以上命令将分别在不同的端口上启动MongoDB服务,并且将它们添加到副本集中:
mongo
rs.add("localhost:27018")
rs.add("localhost:27019")
步骤七:检查副本集状态
当以上操作都完成以后,可以检查副本集的状态:
mongo
rs.status()
以上命令将输出副本集的状态:
{
"set" : "rs0",
"date" : ISODate("2022-06-20T01:25:40Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" : NumberLong(2000),
"members" : [
{
"_id" : 0,
"name" : "localhost:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1436,
"optime" : {
"ts" : Timestamp(1655741030, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2022-06-20T01:23:50Z"),
"syncingTo" : null,
"configVersion" : 1,
"self" : true,
"lastHeartbeatMessage" : null,
"lastHeartbeatRecv" : ISODate("2022-06-20T01:25:40.502Z"),
"pingMs" : NumberLong(0),
"electionTime" : Timestamp(1655741044, 2),
"electionDate" : ISODate("2022-06-20T01:24:04Z"),
"configsvr" : false
},
{
"_id" : 1,
"name" : "localhost:27018",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 19,
"optime" : {
"ts" : Timestamp(1655741030, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1655741030, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2022-06-20T01:23:50Z"),
"optimeDurableDate" : ISODate("2022-06-20T01:23:50Z"),
"lastHeartbeatMessage" : null,
"lastHeartbeatRecv" : ISODate("2022-06-20T01:25:39.796Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "localhost:27017",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "localhost:27019",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 19,
"optime" : {
"ts" : Timestamp(1655741030, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1655741030, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2022-06-20T01:23:50Z"),
"optimeDurableDate" : ISODate("2022-06-20T01:23:50Z"),
"lastHeartbeatMessage" : null,
"lastHeartbeatRecv" : ISODate("2022-06-20T01:25:39.797Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "localhost:27017",
"configVersion" : 1
}
],
"ok" : 1
}
以上就是创建Mongodb副本集的步骤,您可以根据自己的需求进行相关修改和配置。