我们正在开发 MarkLogic 9.0.8.2
我们正在 Azure 上设置 MarkLogic 集群(3 个 VM),并且根据故障转移设计,希望在 Azure Blob 中有 3 个森林(每个用于节点)。
我完成了设置,当开始摄取时,我发现文档分布在 3 个森林中,而不是全部存储在每个森林中。
例如
我摄取了 30000 条记录,每个森林包含 10000 条记录。
我需要的是拥有 30000 条记录的所有森林。
是否有任何配置(在数据库或森林级别)我需要实现这一点?
我们正在开发 MarkLogic 9.0.8.2
我们正在 Azure 上设置 MarkLogic 集群(3 个 VM),并且根据故障转移设计,希望在 Azure Blob 中有 3 个森林(每个用于节点)。
我完成了设置,当开始摄取时,我发现文档分布在 3 个森林中,而不是全部存储在每个森林中。
例如
我摄取了 30000 条记录,每个森林包含 10000 条记录。
我需要的是拥有 30000 条记录的所有森林。
是否有任何配置(在数据库或森林级别)我需要实现这一点?
MarkLogic 的工作方式与其他一些 noSQL 文档数据库故障转移不同,后者可能会在每个主机上保留每个文档的副本。
MarkLogic 的集群特性将文档分布在主机之间,以提供可用性和资源消耗的平衡。对于故障转移保护,您必须在每台主机上创建额外的林并将它们作为副本附加到现有林。这确保了 3 台主机中的任何一台出现故障时的可用性。
这是一个示例森林布局:
Host 1: primary_forest_01 replica_forest_03
Host 2: primary_forest_02 replica_forest_01
Host 3: primary_forest_03 replica_forest_02
副本林必须与主林位于不同的主机上,如果每个主机有多个林,则应将它们跨主机条带化,以便在故障转移时最好地平衡资源消耗。
同样重要的是要注意,对于 HA,您还需要为系统数据库配置副本。
所以没有将所有文档放在每个主机上的数据库设置,因为这不是 MarkLogic 设计的工作方式。可扩展性、可用性和故障转移指南提供了非常丰富的信息,在这种情况下,具有故障转移的数据节点的高可用性部分特别相关。我还强烈建议您查看 MarkLogic 提供的免费培训。