通过向 riak-users@lists.basho.com 发布相同的问题得到答案:
(0) 三个节点不足,您应该有 5 个节点 (1) 您可以迭代并读取集群中的每个对象 - 这也会触发对每个对象的读取修复 (2) - 复制自 Engel Sanchez 对类似问题的回复 April 10th 2014 ) * 如果 AAE 被禁用,您不必停止节点来删除 anti_entropy 目录中的数据 * 如果 AAE 被启用,以滚动方式删除 AAE 数据可能会触发节点之间的读取修复雪崩当数据似乎发散时,坏树和好树节点。
如果您的节点已经启动,并且启用了 AAE 并且混合了旧的不正确的树,那么有更好的方法。您可以使用一些控制台命令动态禁用 AAE。此时,您可以在不停止节点的情况下删除集群中的所有 AAE 数据。在方便的时候,重新启用 AAE。我说方便是因为所有的树都将开始重建,这在过载的集群中可能会出现问题。在周末这样做可能是一个好主意,除非您的集群可以承受额外的负载。
要从 Riak 控制台动态禁用 AAE,您可以运行以下命令:
riak_core_util:rpc_every_member_ann(riak_kv_entropy_manager, 禁用, [], 60000)。
并启用类似的:
riak_core_util:rpc_every_member_ann(riak_kv_entropy_manager, 启用, [], 60000)。
最后一个数字只是 RPC 操作的超时。我希望这可以为您的集群节省一些额外的负载。(3) 这将是: (3a) 使用您选择的客户端列出所有键 (3b) 获取每个对象
https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/reading-objects/
https://www.tiot.jp/riak-docs/riak/kv/2.2.3/developing/usage/secondary-indexes/