在您的业务低峰期或Shard节点规模超过实际需求时,可以通过释放Mongos节点或Shard节点以达到节省成本的目的。本文介绍如何释放分片集群实例的Mongos节点或Shard节点。
注意事项
释放节点的过程中,分片集群实例的状态会变为删除节点中,此时,您将无法对该实例进行密码重置、角色切换、变更节点连接地址或修改参数等操作,建议您在业务低峰期释放。
请确保业务已经不再使用待释放的节点。
Mongos节点数量为2时不支持释放Mongos节点。
释放Shard节点:
释放Shard节点前,请确保已开启MongoDB均衡器Balancer。开启Balancer,请参见管理MongoDB均衡器Balancer。
Shard节点数据量、Balancing Window和Jumbo Chunk等因素会影响释放节点的实际耗时。
说明关于Balancing Window和Jumbo Chunk的更多信息,请参见Balancing Window和Jumbo Chunk。
请确保剩余的Shard节点有足够的存储空间。
Shard节点在释放过程中,会将存储的数据迁移至剩余Shard节点。当剩余Shard节点的存储空间被占满时,为避免数据丢失,实例会自动锁定。
数据从待释放的Shard节点迁移至剩余Shard节点时,若出现
duplicated key
报错,请排查唯一索引字段的值是否相同。例如:不同的Shard节点上存储着分片键不同的两个文档,但是主键却相同。
说明duplicated key
报错通常是因为数据库中存在孤立文档所致,建议您在释放Shard前先清理孤立文档。清理操作,请参见清理孤立文档。
操作步骤
登录MongoDB管理控制台。
在左侧导航栏,单击分片集群实例列表。
在页面左上角,选择实例所在的资源组和地域。
单击目标实例ID或目标实例所在行操作列管理。
根据释放的节点类型,选择对应的操作。
释放Mongos节点
在Mongos列表区域,单击目标Mongos节点所在行操作列的,并选择释放。
释放Shard节点
重要释放Shard节点前,请确保剩余的Shard节点有足够的存储空间。
Shard节点在释放过程中,会将存储的数据迁移至剩余Shard节点。当剩余Shard节点的存储空间被占满时,为避免数据丢失,实例会自动锁定。
在Shard列表区域,单击目标Shard节点所在行操作列的,并选择释放。
在释放节点对话框中,单击确定。
执行释放节点操作时,实例状态为删除节点中。