MongoDB数据库多节点副本集安装配置

版权声明:转载请注明出处! https://blog.csdn.net/ywd1992/article/details/81946975

一、基础环境

(1)操作系统:CentOS 7.3

(2)MongoDB:3.6.5  链接:https://pan.baidu.com/s/14_F9PUycakX5tt6kQ2hqDw 密码:udc0

二、安装MongoDB

(1)解压安装

tar -xvf mongodb-linux-x86_64-rhel70-3.6.5.tgz

mv mongodb-linux-x86_64-rhel70-3.6.5 /usr/local/mongodb

(2)创建数据库目录及日志目录

mkdir /usr/local/mongodb/dbs
touch /usr/local/mongodb/logs

(3)创建mongodb配置文件并启动mongodb

touch /usr/local/mongodb/bin/mongod.conf

# 数据库文件位置
dbpath=/usr/local/mongodb/dbs
# 数据库日志位置
logpath=/usr/local/mongodb/logs
# 进程文件
pidfilepath=/usr/local/mongodb/mongodb.pid
# 是否以守护进程方式启动
fork=true
# 错误日志采用追加模式
logappend=true
# 端口号
port=27017
# 绑定地址,本机地址
bind_ip=192.168.0.101

添加权限,启动数据库

chmod 777 /usr/local/mongodb/bin/mongod.conf

/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongod.conf

可通过如下命令登录mongodb数据库

/usr/local/mongodb/bin/mongo IP:27017

(4)配置开机自启

chmod +x /etc/rc.d/rc.local

vi /etc/rc.d/rc.local

添加以下配置
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongod.conf

三、配置副本集

(1)设置复制集集群名称

开启复制集并为复制集设置名称,需要在所有节点添加

vim /usr/local/mongodb/bin/mongod.conf

#replication:
replSet=GRIDSUM  #复制集名称

(2)主节点登录Mongo进行配置

/usr/local/mongodb/bin/mongo 10.201.82.18:27017 #登录

config = {_id : "GRIDSUM",members : [{_id : 0, host : "10.201.82.18:27017"},{_id : 1, host : "10.201.82.19:27017" },{_id : 2, host : "10.201.82.21:27017" , arbiterOnly: true}]}

其中,“GRIDSUM”为复制集集群,将三台机器加入复制集集群,“arbiterOnly: true”为指定此台机器所在节点为仲裁节点,不接收数据,回车之后看到如下提示

{
	"_id" : "GRIDSUM",
	"members" : [
		{
			"_id" : 0,
			"host" : "10.201.82.18:27017"
		},
		{
			"_id" : 1,
			"host" : "10.201.82.19:27017"
		},
		{
			"_id" : 2,
			"host" : "10.201.82.21:27017",
			"arbiterOnly" : true
		}
	]
}

运行rs.initiate(config);命令看到如下提示,说明配置成功

{
	"ok" : 1,
	"operationTime" : Timestamp(1534388033, 1),
	"$clusterTime" : {
		"clusterTime" : Timestamp(1534388033, 1),
		"signature" : {
			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
			"keyId" : NumberLong(0)
		}
	}
}

通过rs.status();查看复制集的状态,可以看出哪个是主节点,哪个是从节点,哪个是仲裁节点

{
	"set" : "GRIDSUM",
	"date" : ISODate("2018-08-16T03:03:27.337Z"),
	"myState" : 1,
	"term" : NumberLong(1),
	"heartbeatIntervalMillis" : NumberLong(2000),
	"optimes" : {
		"lastCommittedOpTime" : {
			"ts" : Timestamp(1534388605, 1),
			"t" : NumberLong(1)
		},
		"readConcernMajorityOpTime" : {
			"ts" : Timestamp(1534388605, 1),
			"t" : NumberLong(1)
		},
		"appliedOpTime" : {
			"ts" : Timestamp(1534388605, 1),
			"t" : NumberLong(1)
		},
		"durableOpTime" : {
			"ts" : Timestamp(1534388605, 1),
			"t" : NumberLong(1)
		}
	},
	"members" : [
		{
			"_id" : 0,
			"name" : "10.201.82.18:27017",
			"health" : 1,
			"state" : 1,
			"stateStr" : "PRIMARY",
			"uptime" : 756,
			"optime" : {
				"ts" : Timestamp(1534388605, 1),
				"t" : NumberLong(1)
			},
			"optimeDate" : ISODate("2018-08-16T03:03:25Z"),
			"electionTime" : Timestamp(1534388044, 1),
			"electionDate" : ISODate("2018-08-16T02:54:04Z"),
			"configVersion" : 1,
			"self" : true
		},
		{
			"_id" : 1,
			"name" : "10.201.82.19:27017",
			"health" : 1,
			"state" : 2,
			"stateStr" : "SECONDARY",
			"uptime" : 573,
			"optime" : {
				"ts" : Timestamp(1534388605, 1),
				"t" : NumberLong(1)
			},
			"optimeDurable" : {
				"ts" : Timestamp(1534388605, 1),
				"t" : NumberLong(1)
			},
			"optimeDate" : ISODate("2018-08-16T03:03:25Z"),
			"optimeDurableDate" : ISODate("2018-08-16T03:03:25Z"),
			"lastHeartbeat" : ISODate("2018-08-16T03:03:26.562Z"),
			"lastHeartbeatRecv" : ISODate("2018-08-16T03:03:26.914Z"),
			"pingMs" : NumberLong(0),
			"syncingTo" : "10.201.82.18:27017",
			"configVersion" : 1
		},
		{
			"_id" : 2,
			"name" : "10.201.82.21:27017",
			"health" : 1,
			"state" : 7,
			"stateStr" : "ARBITER",
			"uptime" : 573,
			"lastHeartbeat" : ISODate("2018-08-16T03:03:26.592Z"),
			"lastHeartbeatRecv" : ISODate("2018-08-16T03:03:26.001Z"),
			"pingMs" : NumberLong(2),
			"configVersion" : 1
		}
	],
	"ok" : 1,
	"operationTime" : Timestamp(1534388605, 1),
	"$clusterTime" : {
		"clusterTime" : Timestamp(1534388605, 1),
		"signature" : {
			"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
			"keyId" : NumberLong(0)
		}
	}
}

猜你喜欢

转载自blog.csdn.net/ywd1992/article/details/81946975
今日推荐