系列十一、MongoDB副本集

一、概述

        MongoDB副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或者多个Secondary节点组成。副本集没有固定的主节点,当主节点发生故障时,整个集群会选举一个主节点 为系统提供服务以保证系统的高可用。

系列十一、MongoDB副本集_第1张图片

 1.1、Automatic Failover

        中文名称:自动故障转移机制,当主节点未与集合中的其他成员通信超过配置的选举超时时间(默认为10秒)时,合格的辅助节点将调用选举方式将自己提名为新的主节点。集群尝试完成新主节点的选举并恢复正常操作。

系列十一、MongoDB副本集_第2张图片

二、搭建副本集

2.1、创建数据目录

# 在 /usr/local/mongodb5 目录分别创建如下文件夹:
mkdir -p ./rep1/data1
mkdir -p ./rep1/data2
mkdir -p ./rep1/data3

系列十一、MongoDB副本集_第3张图片

 2.2、搭建副本集

# 打开三个窗口,分别在/usr/local/mongodb5/bin 目录执行如下指令
./mongod --port=27017 --dbpath=/usr/local/mongodb5/rep1/data1 --bind_ip 0.0.0.0 --replSet myreplace/[localhost:27018,localhost:27019]
./mongod --port=27018 --dbpath=/usr/local/mongodb5/rep1/data2 --bind_ip 0.0.0.0 --replSet myreplace/[localhost:27019,localhost:27017]
./mongod --port=27019 --dbpath=/usr/local/mongodb5/rep1/data3 --bind_ip 0.0.0.0 --replSet myreplace/[localhost:27017,localhost:27018]

 2.3、配置副本集,连接任意节点

2.3.1、连接27017

./mongo --port 27017

系列十一、MongoDB副本集_第4张图片

 2.3.2、初始化副本集

var config = {
	_id: "myreplace",
	members: [
		{_id:0,host:"localhost:27017"},
		{_id:1,host:"localhost:27018"},
		{_id:2,host:"localhost:27019"}
	]
}

# 初始化配置:作用是选举主节点
rs.initiate(config);	

# 说明
主节点具有可读可写的权限

系列十一、MongoDB副本集_第5张图片

 2.4、测试一(27017主节点、27018&27019副节点)

# 1、创建索引(db)& 查询表
use ruoyi
show tables

# 2、插入数据
for (let i = 1; i <= 100; i++) {
    db.users.insert({_id:i,name:'李白_' + i,age:10 + i})
}

# 3、查询表
show tables

# 4、查询表中的数据(默认前20条)
db.users.find().pretty()

# 5、观察27018和27019子节点中的索引、集合、文档数据
第一步:打开新窗口,连接27018
第二步:设置副节点可以临时访问。指令:rs.secondaryOk();

2.4.1、创建索引&查询表

2.4.2、插入数据

2.4.3、查询表

2.4.4、查询表中的数据

系列十一、MongoDB副本集_第6张图片

 2.4.5、观察27018和27019子节点中的索引、集合、文档数据

系列十一、MongoDB副本集_第7张图片

 说明:27019节点同上

2.5、测试二(27017节点宕机,竞选主节点测试)

步骤:
1、将27017节点退出。模拟宕机

2、观察27018、27019节点

3、结果:重新竞选了主节点

系列十一、MongoDB副本集_第8张图片

你可能感兴趣的:(MongoDB系列教程,mongodb,数据库,nosql)