MongoDB远程复制集集群((两台服务器,8个实例))

第三阶段基础

时  间: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

MongoDB远程复制集集群((两台服务器,8个实例))_第1张图片

2、上传软件包或下载

MongoDB远程复制集集群((两台服务器,8个实例))_第2张图片

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/ 命令优化

MongoDB远程复制集集群((两台服务器,8个实例))_第3张图片

安装部署

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

mkdir -p /data/mongodb1

mkdir -p /data/logs/mongodb

touch /data/logs/mongodb/mongodb1.log

cd /usr/local/mongodb/

mkdir conf

MongoDB远程复制集集群((两台服务器,8个实例))_第4张图片

2、修改配置文件

vim conf/mongodb1.conf

添加配置如下:

MongoDB远程复制集集群((两台服务器,8个实例))_第5张图片

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

3、启动服务

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

MongoDB远程复制集集群((两台服务器,8个实例))_第6张图片

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

mongo

rs.status()  查看状态

MongoDB远程复制集集群((两台服务器,8个实例))_第7张图片

配置复制集【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"}]}

MongoDB远程复制集集群((两台服务器,8个实例))_第8张图片

rs.initiate(cfg)  配置成功

MongoDB远程复制集集群((两台服务器,8个实例))_第9张图片

rs.status()  查看变化

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

MongoDB远程复制集集群((两台服务器,8个实例))_第10张图片

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

MongoDB远程复制集集群((两台服务器,8个实例))_第11张图片

实  验:

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

【huyang2】宕机主库

MongoDB远程复制集集群((两台服务器,8个实例))_第12张图片

查看复制集内变化

【huyang1】rs.status()

huyang2的27018成为新的主库

MongoDB远程复制集集群((两台服务器,8个实例))_第13张图片

【huyang2】宕机主库

MongoDB远程复制集集群((两台服务器,8个实例))_第14张图片

查看复制集内变化

【huyang1】rs.status()

huyang2的27018成为新的主库

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

MongoDB远程复制集集群((两台服务器,8个实例))_第15张图片

实验二:配置优先级测试

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

MongoDB远程复制集集群((两台服务器,8个实例))_第16张图片

重启复制集查看变化

rs.reconfig(cfg)

只能添加不超过7个

MongoDB远程复制集集群((两台服务器,8个实例))_第17张图片

rs.isMaster()

MongoDB远程复制集集群((两台服务器,8个实例))_第18张图片

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

MongoDB远程复制集集群((两台服务器,8个实例))_第19张图片

重启复制集查看变化

rs.reconfig(cfg)

rs.isMaster()

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

只能建立奇数类的复制集

MongoDB远程复制集集群((两台服务器,8个实例))_第20张图片

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

MongoDB远程复制集集群((两台服务器,8个实例))_第21张图片

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

MongoDB远程复制集集群((两台服务器,8个实例))_第22张图片

rs.reconfig(cfg)

rs.isMaster()

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

MongoDB远程复制集集群((两台服务器,8个实例))_第23张图片

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

MongoDB远程复制集集群((两台服务器,8个实例))_第24张图片

rs.reconfig(cfg)

rs.isMaster()

MongoDB远程复制集集群((两台服务器,8个实例))_第25张图片

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

MongoDB远程复制集集群((两台服务器,8个实例))_第26张图片

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

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

MongoDB远程复制集集群((两台服务器,8个实例))_第27张图片

优先级为:

138:27017=100   27018=95  27019=90

137:27017=85    27018=80

【huyang2】27017主库宕机

MongoDB远程复制集集群((两台服务器,8个实例))_第28张图片

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

MongoDB远程复制集集群((两台服务器,8个实例))_第29张图片

【huyang2】27018主库宕机

MongoDB远程复制集集群((两台服务器,8个实例))_第30张图片

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

MongoDB远程复制集集群((两台服务器,8个实例))_第31张图片

实验结果总结:

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

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

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

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

你可能感兴趣的:(mongodb,数据库)