第三阶段基础

时  间:2023年7月4日

参加人:全班人员

内  容:

MongoDB远程复制集集群

目录

MongoDB远程复制集集群

实验环境:(两台服务器,8个实例)

环境部署:

安装部署

实  验:

实验结果总结:


MongoDB远程复制集集群

实验环境:(两台服务器,8个实例)

Huyang1

Node1

Node2

Node3

Node4

192.168.59.137

27017

27018

27019

27020

Huyang2

Node1

Node2

Node3

Node4

192.168.59.138

27017

27018

27019

27020

环境部署:

1、关闭防火墙

systemctl stop firewall

iptables -F

setenforce 0

两台物理机搭建redis 主从群集_mongodb

2、上传软件包或下载

两台物理机搭建redis 主从群集_数据库_02

3、解包、移动位置,命令优化

tar xf mongodb-linux-x86_64-rhel70-4.0.6.tgz

mv mongodb-linux-x86_64-rhel70-4.0.6

/usr/local/mongodb

ln -s /usr/local/mongodb/bin/* /bin/ 命令优化

两台物理机搭建redis 主从群集_优先级_03

安装部署

1、创建数据目录,日志文件及目录并创建相应配置文件

mkdir -p /data/mongodb1

mkdir -p /data/logs/mongodb

touch /data/logs/mongodb/mongodb1.log

cd /usr/local/mongodb/

mkdir conf

两台物理机搭建redis 主从群集_mongodb_04

2、修改配置文件

vim conf/mongodb1.conf

添加配置如下:

两台物理机搭建redis 主从群集_mongodb_05

  同理,配置huyang1/huyang2上的27018/27019

3、启动服务

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

两台物理机搭建redis 主从群集_优先级_06

4、进入数据库,配置复制集

mongo

rs.status()  查看状态

两台物理机搭建redis 主从群集_mongodb_07

配置复制集【huyang1或huyang2操作,另一方不操作】

cfg={"_id":"huyang","members":[{"_id":0,"host":"192.168.59.138:27017"},{"_id":1,"host":"192.168.59.138:27018"},{"_id":2,"host":"192.168.59.138:27019"},{"_id":10,"host":"192.168.59.137:27017"},{"_id":11,"host":"192.168.59.137:27018"},{"_id":12,"host":"192.168.59.137:27019"}]}

两台物理机搭建redis 主从群集_mongodb_08

rs.initiate(cfg)  配置成功

两台物理机搭建redis 主从群集_mongodb_09

rs.status()  查看变化

【huyang1】   无状态--->成为从库

两台物理机搭建redis 主从群集_优先级_10

【huyang2】   无状态--->从库--->主库

两台物理机搭建redis 主从群集_复制集_11

实  验:

实验一:在没有配置优先级下,模拟故障转移

【huyang2】宕机主库

两台物理机搭建redis 主从群集_两台物理机搭建redis 主从群集_12

查看复制集内变化

【huyang1】rs.status()

huyang2的27018成为新的主库

两台物理机搭建redis 主从群集_mongodb_13

【huyang2】宕机主库

两台物理机搭建redis 主从群集_复制集_14

查看复制集内变化

【huyang1】rs.status()

huyang2的27018成为新的主库

可见,在没有配置优先级的情况下,主库随机产生

两台物理机搭建redis 主从群集_数据库_15

实验二:配置优先级测试

【huyang2】配置8个hosts,六个优先级,一从,一仲裁

两台物理机搭建redis 主从群集_优先级_16

重启复制集查看变化

rs.reconfig(cfg)

只能添加不超过7个

两台物理机搭建redis 主从群集_数据库_17

rs.isMaster()

两台物理机搭建redis 主从群集_数据库_18

【huyang2】配置7个hosts,5个优先级,一从,一仲裁

两台物理机搭建redis 主从群集_mongodb_19

重启复制集查看变化

rs.reconfig(cfg)

rs.isMaster()

建立成功,五个优先,一从一仲裁

只能建立奇数类的复制集

两台物理机搭建redis 主从群集_数据库_20

【huyang2】配置7个hosts,4个优先级,一从,两仲裁

两台物理机搭建redis 主从群集_mongodb_21

【huyang2】配置7个hosts,4个优先级,一从,三仲裁

两台物理机搭建redis 主从群集_数据库_22

rs.reconfig(cfg)

rs.isMaster()

建立均不成功,只能建立一个仲裁(奇数偶数都不可以)

两台物理机搭建redis 主从群集_数据库_23

【huyang2】配置7个hosts,4个优先级,两从,一仲裁

两台物理机搭建redis 主从群集_两台物理机搭建redis 主从群集_24

rs.reconfig(cfg)

rs.isMaster()

两台物理机搭建redis 主从群集_数据库_25

配置四从,结果都可以建立

两台物理机搭建redis 主从群集_两台物理机搭建redis 主从群集_26

实验三:配置了优先级后,测试故障转移

当前为5hosts,1从,1仲裁

两台物理机搭建redis 主从群集_数据库_27

优先级为:

138:27017=100   27018=95  27019=90

137:27017=85    27018=80

【huyang2】27017主库宕机

两台物理机搭建redis 主从群集_两台物理机搭建redis 主从群集_28

【huyang1】rs.status() 查看变化 138:27018成为主库

两台物理机搭建redis 主从群集_优先级_29

【huyang2】27018主库宕机

两台物理机搭建redis 主从群集_数据库_30

【huyang1】rs.status() 查看变化 138:27019成为主库

两台物理机搭建redis 主从群集_数据库_31

实验结果总结:

1、mongodb远程复制集建立hosts,只能建立奇数个hosts,不能建立偶数个hosts;

2、mongodb远程复制集建立仲裁点,只能建立一个仲裁(奇数偶数都不可以);

3、mongodb远程复制集建立从库,可以建立多个,(奇数偶数都可以);

4、配置了优先级后的mongodb远程复制集,由仲裁点和优先级决定主库宕机之后的新主库。