我已经为MongoDB配置了切分。我的设置如下:
我现在的数据集作为主切分碎片1。我现在存储在碎片1上的所有数据都存储在碎片1上。我说得对吗?我的碎片1一旦满了,数据就会存储在碎片2上吗?
我现在正在测试一个故障转移场景,当我的Shard 1服务器关闭时,数据应该转到Shard 2,但不会发生吗?它应该自动重新连接到碎片1,对吗?
发布于 2019-11-14 06:08:43
我现在的数据集作为主切分碎片1。我现在存储在碎片1上的所有数据都存储在碎片1上。我说得对吗?我的碎片1一旦满了,数据就会存储在碎片2上吗?
切分是指在一个集合中在碎片之间分配数据。在数据库级别启用切分,但碎片上的实际数据分发处于收集级别。因此,切分数据库可以有切分集合和未切分集合。所有未分割的集合都位于主碎片上。切分收集数据分布在多个碎片上(基于碎片键)。所有对切分数据库的查询(不管是分片的还是未切分的集合)都通过mongos路由器进行。
对于切分集合,可以将初始数据全部存储在一个碎片上。稍后,随着数据的增长,它将被分发到下一个碎片。见数据块分区。
我现在正在测试一个故障转移场景,当我的Shard 1服务器关闭时,数据应该转到Shard 2,但不会发生吗?它应该自动重新连接到碎片1,对吗?
Faliover是一个与复制相关的进程,而不是分片。副本集有多个节点(如您的碎片配置中所指定的,每个碎片是一个副本集)。当副本集中的主节点失败(或下降)时,剩下的两个次要节点将举行选举并选择一个新的主节点。客户端应用程序将自动连接到新主服务器。当前面的主节点再次出现时,它将成为第二天。
见复制故障转移。
https://stackoverflow.com/questions/58842055
复制相似问题