MongoDB主从集群配置
#MongoDB 系统版本:CentOS 7 1804 x64
mongodb: 4.0.10
节点数量:3
默认情况下,MongoDB使用mongod用户帐户运行并使用以下默认目录,用户权限为mongod:
/var/lib/mongo (数据目录) /var/log/mongodb (日志目录)
安装mongodb
配置yum源:
vi /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.ascyum install -y mongodb-org如果想安装指定版本,执行如下命令
yum install -y mongodb-org-4.0.10 mongodb-org-server-4.0.10 mongodb-org-shell-4.0.10 mongodb-org-mongos-4.0.10 mongodb-org-tools-4.0.10如果不想在使用yum update时更新mongodb版本,可以在/etc/yum.conf配置文件中添加如下配置
vi /etc/yum.conf
exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools修改所有节点配置文件
vi /etc/mongo.conf
bindIp: 0.0.0.0
replication:
replSetName: rs0启动服务
systemctl start mongod配置集群,任选一个节点,执行如下命令即可。
官方推荐节点host建议用域名,以防IP变动
mongo
>config = {
_id : "rs0",
members: [
{ _id: 0, host: "1.1.1.1:27017" },
{ _id: 1, host: "1.1.1.2:27017" },
{ _id: 2, host: "1.1.1.3:27017" }
]
}
rs.initiate(config)查看集群配置信息
rs.conf()查看集群状态及主从信息:
rs.status()
{
"set" : "rs0",
"date" : ISODate("2019-07-03T05:55:41.262Z"),
"myState" : 1,
"term" : NumberLong(1),
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(0, 0),
"t" : NumberLong(-1)
},
"appliedOpTime" : {
"ts" : Timestamp(1562133341, 4),
"t" : NumberLong(1)
},
"durableOpTime" : {
"ts" : Timestamp(1562133341, 4),
"t" : NumberLong(1)
}
},
"lastStableCheckpointTimestamp" : Timestamp(0, 0),
"members" : [
{
"_id" : 0,
"name" : "1.1.1.1:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 267,
"optime" : {
"ts" : Timestamp(1562133341, 4),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2019-07-03T05:55:41Z"),
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "could not find member to sync from",
"electionTime" : Timestamp(1562133340, 1),
"electionDate" : ISODate("2019-07-03T05:55:40Z"),
"configVersion" : 1,
"self" : true,
"lastHeartbeatMessage" : ""
},
{
"_id" : 1,
"name" : "1.1.1.2:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 12,
"optime" : {
"ts" : Timestamp(1562133328, 1),
"t" : NumberLong(-1)
},
"optimeDurable" : {
"ts" : Timestamp(1562133328, 1),
"t" : NumberLong(-1)
},
"optimeDate" : ISODate("2019-07-03T05:55:28Z"),
"optimeDurableDate" : ISODate("2019-07-03T05:55:28Z"),
"lastHeartbeat" : ISODate("2019-07-03T05:55:40.023Z"),
"lastHeartbeatRecv" : ISODate("2019-07-03T05:55:40.996Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "1.1.1.3:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 12,
"optime" : {
"ts" : Timestamp(1562133328, 1),
"t" : NumberLong(-1)
},
"optimeDurable" : {
"ts" : Timestamp(1562133328, 1),
"t" : NumberLong(-1)
},
"optimeDate" : ISODate("2019-07-03T05:55:28Z"),
"optimeDurableDate" : ISODate("2019-07-03T05:55:28Z"),
"lastHeartbeat" : ISODate("2019-07-03T05:55:40.025Z"),
"lastHeartbeatRecv" : ISODate("2019-07-03T05:55:41.139Z"),
"pingMs" : NumberLong(0),
"lastHeartbeatMessage" : "",
"syncingTo" : "",
"syncSourceHost" : "",
"syncSourceId" : -1,
"infoMessage" : "",
"configVersion" : 1
}
],
"ok" : 1,
"operationTime" : Timestamp(1562133341, 4),
"$clusterTime" : {
"clusterTime" : Timestamp(1562133341, 4),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}移除、添加复制节点,在PRIMARY节点上操作
rs.remove("1.1.1.1:27017")
rs.add("1.1.1.1:27017")最后更新于