从新分片环节复杂且须要手动分片。
方法一:先dump整个集合,而后用新的分片键把数据库从新加载到一个新的集合中。
由于这是一个须要离线处置的环节,因此你的运行程序在从新加载成功之前须要终止停服较常年间。例如:在一个三分片的集群上dump和从新加载一个10 TB以上的集合或者须要几天时间。
方法二:新建一个分片集群并从新设定集合的分片键,而后经过定制迁徙方式,将旧分片集群中须要从新分片的集合,按新的分片键写入到新的分片集群中。
该环节须要你自行处置查问路由和迁徙逻辑、不时审核迁徙进展,以确保一切数据迁徙成功。
定制迁徙是高度复杂的、休息密集型的、有危险的义务,而且耗时很长。例如:某个MongoDB用户花了三个月才成功100亿个document的迁徙。
命令即可启动从新分片。
并不是繁难地从新平衡数据,而是在后盾将一切集合的数据复制并从新写入新集合,同时与运行程序新的写入坚持同步。
从新分片是齐全智能化的。
将从新分片破费的期间从几周或几个月紧缩到几分钟或几小时,防止了简短冗杂的手动数据迁徙。
经过经常使用在线从新分片,可以繁难地在开发或测试环境中评价不同分片键的成果,也可以在你须要时修正分片键。
你可以在业务运转(数据不时增长)的状况下,按需扭转集合的分片键(Shard key),而不须要数据库停机或在数据集合中启动复杂的迁徙。你只要要在MongoDB Shell中运转 命令,选用你须要从新分片的数据库和集合,指定新的分片键即可。
<database>:须要从新分片的数据库称号。
<collection>:须要从新分片的集合称号。
当你调用reshardCollection命令时,MongoDB会克隆现有集合,而后将现有集合中一切oplog运行到新集合中,当一切oplog被经常使用后,MongoDB会智能切换到新集合,并在后盾删除旧集合。
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/7068.html