MongoDB入门到进阶笔记:07-Mongo 副本集的搭建 添加 删除 延时 仲裁 rs.status replSetName

MongoDB副本集搭建包括添加、删除、延时和仲裁。使用rs.status查看副本集状态,replSetName指定副本集名称。

MongoDB入门到进阶笔记:07Mongo 副本集的搭建 添加 删除 延时 仲裁 rs.status replSetName

在MongoDB中,副本集是一种高可用性解决方案,它允许将数据分布在多个服务器上,从而提高数据的可靠性和可扩展性,本篇笔记将介绍如何搭建MongoDB副本集,以及如何进行添加、删除、延时和仲裁操作。

MongoDB入门到进阶笔记:07-Mongo 副本集的搭建 添加 删除 延时 仲裁 rs.status replSetName

搭建MongoDB副本集

1、准备3台服务器,分别安装MongoDB。

2、修改每台服务器的配置文件/etc/mongod.conf,设置以下参数:

replication:
  replSetName: "rs0" # 副本集名称

3、重启每台服务器上的MongoDB服务。

4、使用mongo命令连接到任意一台服务器,执行以下命令创建副本集:

rs.initiate()

添加副本集成员

1、在新的服务器上安装MongoDB,并修改配置文件/etc/mongod.conf,设置以下参数:

replication:
  replSetName: "rs0" # 副本集名称

2、重启新服务器上的MongoDB服务。

MongoDB入门到进阶笔记:07-Mongo 副本集的搭建 添加 删除 延时 仲裁 rs.status replSetName

3、使用mongo命令连接到任意一台服务器,执行以下命令添加副本集成员:

rs.add("新服务器IP:端口")

删除副本集成员

1、使用mongo命令连接到任意一台服务器,执行以下命令查看当前副本集的成员状态:

rs.status()

2、根据需要删除某个成员,执行以下命令:

rs.remove("成员ID")

延时与仲裁操作

1、延时操作:当主节点出现故障时,副本集中的其他节点会选举出一个新的主节点,这个过程称为“延时”,可以通过以下命令查看当前副本集的主节点状态:

rs.status()

2、仲裁操作:当副本集中的主节点数量为偶数时,可能会出现无法投票选出主节点的情况,此时,需要手动触发一次选举,选择一个新的主节点,可以使用以下命令进行仲裁操作:

rs.stepDown() # 当前节点主动放弃主节点身份,触发选举

常见问题与解答

问题1:为什么执行rs.add("新服务器IP:端口")后,新成员的状态仍然是PRIMARY?

MongoDB入门到进阶笔记:07-Mongo 副本集的搭建 添加 删除 延时 仲裁 rs.status replSetName

答:这是因为在添加新成员时,MongoDB默认将其设置为主节点,如果需要将新成员设置为从节点,可以在添加成员之前,先停止新服务器上的MongoDB服务,然后执行rs.add("新服务器IP:端口"),之后,再启动新服务器上的MongoDB服务,使用rs.slaveOk()命令将新成员设置为从节点。

问题2:为什么执行rs.remove("成员ID")后,副本集中的成员数量没有减少?

答:这是因为在删除成员时,MongoDB不会立即释放该成员的资源,需要等待一段时间(默认为60秒),待该成员的所有数据同步到其他成员后,才会自动释放资源,在此期间,可以通过rs.remove("成员ID")命令强制删除该成员,需要注意的是,强制删除成员可能会导致数据丢失,因此请谨慎操作。

问题3:为什么执行rs.stepDown()后,副本集中的主节点数量没有发生变化?

答:这是因为在执行rs.stepDown()命令时,如果没有指定要降级的节点ID,MongoDB会将当前节点作为主节点进行降级,如果当前节点已经是从节点或者已经降级为主节点的从节点,那么执行此命令不会有任何效果,如果要降级其他主节点,需要指定其ID,rs.stepDown("主节点ID")

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/506007.html

(0)
K-seoK-seoSEO优化员
上一篇 2024年5月21日 17:46
下一篇 2024年5月21日 17:48

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入