版权声明:本文为博主原创文章,未经博主允许不得转载。http://mp.blog.csdn.net/configure#i https://blog.csdn.net/wangming520liwei/article/details/85295765
Centos 下MongoDB 集群安装
架构
准备三台服务器
172.31.1.135
172.31.1.136
172.31.1.137
创建目录
mkdir /data
mkdir /data/log
mkdir /data/log/mongodb/
mkdir /data/mongodb/data
下载二进制包
cd /data
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.3.tgz
tar -zxvf mongodb-linux-x86_64-rhel62-3.6.3.tgz
mv mongodb-linux-x86_64-rhel62-3.6.3 /data/mongodb
三台机器编写mongodb.conf
cd /data/mongodb
vi mongodb.conf
三台机器分别添加如下内容:
bind_ip=172.31.1.135
fork = true
port = 27017
dbpath = /data/mongodb/data
logpath = /data/log/mongodb/mongodb.log
logappend = true
replSet = Jackie
directoryperdb = true
journal = true
bind_ip=172.31.1.136
fork = true
port = 27017
dbpath = /data/mongodb/data
logpath = /data/log/mongodb/mongodb.log
logappend = true
replSet = Jackie
directoryperdb = true
journal = true
bind_ip=172.31.1.137
fork = true
port = 27017
dbpath = /data/mongodb/data
logpath = /data/log/mongodb/mongodb.log
logappend = true
replSet = Jackie
directoryperdb = true
journal = true
保存退出
配置参数说明
dbpath = \ 指定数据的存放位置,必需项
logpath = \ 指定日志的存放位置
logappend = \ 日志以追加方式写入
pidfilepath = \ 存放启动mongod是分配的进程号
bind_ip = \ mongod监听的ip,可以不设置,不设置时,通过机器的ip访问
port = \监听的端口号,务必设置,默认的端口不安全
directoryperdb = \为每个数据库的数据分配一个存储目录,建议设置,数据更好管理
journal=\ 启用恢复日志,如果mongod意外退出,下一次启动时会根据恢复日志进行恢复,但恢复日志所占空间比较大。建议设置true
keyFile = \指定使用的key的路径,集群中的所有节点都要使用相同的key才能相互连接。(在集群搭建完成之前,不应当使用keyFile,否则在部署副本集和分片时会出现没有权限操作的情况)
auth = \ 是否使用授权认证机制,集群使用时,应当使用auth=true,但在集群部署时不应该使用auth=true
noprealloc = \ 是否预分配空间,预分配空间比较占空间;不预分配空间可能对性能有影响。
replSet = \节点所属副本集的名称
fork 务必将fork选项设置为true,否则当启动节点的终端意外退出时,节点的运行进程会被杀掉
三台机器启动
启动mongodb
cd /data/mongodb
bin/mongod -f mongodb.conf
启动成功如下
任意一台登录
/data/mongodb/bin/mongo 172.31.1.135:27017
这里的 _id: ” Jackie ” 和上面配置文件中“replSet = Jackie” 要保持一样
在连接mongdo后,输入一下内容:
config = {"_id" : "Jackie",
"members" : [
{"_id" : 0, "host" : "172.31.1.135:27017"},
{"_id" : 1, "host" : "172.31.1.136:27017"},
{"_id" : 2, "host" : "172.31.1.137:27017"}
]}
然后回车,执行初始化副本集配置命令:
rs.initiate(config);
返回ok =1 表示成功
查看集群状态
Jackie:PRIMARY> rs.status()
{
"set" : "Jackie",
"date" : ISODate("2018-12-28T02:32:44.359Z"),
"myState" : 1,
"term" : NumberLong(1),
"heartbeatIntervalMillis" : NumberLong(2000),
"optimes" : {
"lastCommittedOpTime" : {
"ts" : Timestamp(1545964363, 1),
"t" : NumberLong(1)
},
"readConcernMajorityOpTime" : {
"ts" : Timestamp(1545964363, 1),
"t" : NumberLong(1)
},
"appliedOpTime" : {
"ts" : Timestamp(1545964363, 1),
"t" : NumberLong(1)
},
"durableOpTime" : {
"ts" : Timestamp(1545964363, 1),
"t" : NumberLong(1)
}
},
"members" : [
{
"_id" : 0,
"name" : "n1:27017",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 486,
"optime" : {
"ts" : Timestamp(1545964363, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-12-28T02:32:43Z"),
"electionTime" : Timestamp(1545963891, 1),
"electionDate" : ISODate("2018-12-28T02:24:51Z"),
"configVersion" : 1,
"self" : true
},
{
"_id" : 1,
"name" : "n2:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 484,
"optime" : {
"ts" : Timestamp(1545964363, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1545964363, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-12-28T02:32:43Z"),
"optimeDurableDate" : ISODate("2018-12-28T02:32:43Z"),
"lastHeartbeat" : ISODate("2018-12-28T02:32:43.346Z"),
"lastHeartbeatRecv" : ISODate("2018-12-28T02:32:44.138Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "n1:27017",
"configVersion" : 1
},
{
"_id" : 2,
"name" : "n3:27017",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 484,
"optime" : {
"ts" : Timestamp(1545964363, 1),
"t" : NumberLong(1)
},
"optimeDurable" : {
"ts" : Timestamp(1545964363, 1),
"t" : NumberLong(1)
},
"optimeDate" : ISODate("2018-12-28T02:32:43Z"),
"optimeDurableDate" : ISODate("2018-12-28T02:32:43Z"),
"lastHeartbeat" : ISODate("2018-12-28T02:32:43.346Z"),
"lastHeartbeatRecv" : ISODate("2018-12-28T02:32:44.140Z"),
"pingMs" : NumberLong(0),
"syncingTo" : "n1:27017",
"configVersion" : 1
}
],
"ok" : 1,
"operationTime" : Timestamp(1545964363, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1545964363, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
也可配置环境变量
export MONGODB_HOME=/data/mongodb
export PATH=.:$MONGODB_HOME/bin:$PATH
登录:
mongo 172.31.1.135:27017