我需要将Marklogic DB内容(5000万xml文档)从一个数据库主机复制到另一个数据库主机。我们可以通过执行备份/恢复来完成此操作。但我需要将两个森林中的数据(每个2500万个)复制到20个森林(每个250万个)并均匀分配。可以使用xqsync或任何其他实用程序来完成吗?
答案 0 :(得分:1)
我本周正在进行相同的迁移。 14M文档,从一个主机上的两个森林到一个集群和六个森林。我们已完成迁移的几次试运行并使用备份/恢复,然后进行林重命名,然后将新林添加到群集中。然后我们使用CORB进行重新平衡。稍微调整以优化线程数量,我们必须调整linux TCP超时,以确保CORB进程在重新平衡的过程中没有失败。我认为我们最终使用的是基于我们目前正在运行的旧版ML的CORB。
如果你很幸运能够在ML7下运行,那么这一切都会轻松得多,并且森林存储需求会大大减少。
答案 1 :(得分:0)
正如wst所示,Marklogic 7将默认为您自动为新数据库执行此操作。对于从早期版本升级的数据库,您需要从Admin界面手动启用重新平衡。您可以在靠近底部的数据库配置选项卡上找到该设置。
之后,您只需根据需要向数据库添加新林,并在稍微延迟(基于像reindexer之类的限制级别)之后自动触发重新分配,也可以在群集中进行。您可以从Admin界面的Database Status页面跟踪重新平衡。可能需要一段时间,它可以在背景上以低干扰运行。
反过来几乎一样容易。转到“数据库”下的“森林”页面,然后选择要删除的林旁边的“已停用”。这会自动触发远离该林的重新平衡文档。完成后,您只需将其从数据库中分离。
所有这些数据都是完全可搜索和可访问的,但响应时间可能相对较慢,因为缓存也需要刷新。
HTH
答案 2 :(得分:0)
使用ML6或更早版本,我会使用返回和恢复来移动森林,然后https://github.com/mblakele/task-rebalancer重新平衡。之后你可能想要强制合并,去除原始森林中删除的片段。