【发布时间】:2018-05-30 16:31:09
【问题描述】:
我们需要将我们的 solr 云集群从一个云供应商转移到另一个云供应商,该集群由 8 个分片组成,具有 2 个副本因子,分布在 8 个服务器之间,总共大约有 500GB 的数据。
我想知道迁移集群的常用方法是什么,尤其是对可用性和性能等影响较小的数据。
我正在考虑某种初始转储副本,然后在保持同步后同步它们以赶上差异(可能很大),只要从另一边准备好一切就切换。
这是可行的吗?我应该/可以使用哪些工具?
谢谢!
【问题讨论】:
-
您是要在新的提供者上复制相同的服务器结构,还是仅仅索引相同的数据集?如何知道数据是否已更新? Solr 是您的主要数据存储(即您能否在后台重新索引当前状态,然后将所有更新发送到两个集群一段时间)?你有与文档相关的时间戳吗?你有looked at the BACKUP/RESTORE commands in the collections api吗?
-
嗨@MatsLindh,我正在考虑复制相同的服务器结构,但无论使迁移更容易对我来说,这是一个很好的点 solr 不是我们的主要数据存储,因此我们可能会从那里重新索引,我可以开始重新索引过程并在完成之前开始发送新的更新吗?如何处理重复条目?我也会看看备份/恢复命令,谢谢!
-
然后我会考虑重新索引,它可以让你保持两个集群都是最新的,并在构建新集群时搜索当前集群。它还可以避免版本之间的任何问题,并且集群的布局不必相同。
-
听起来不错,solr 如何处理添加重复条目?我的意思是假设重新索引作业和新更新之间会有一些重叠?我猜 solr 会透明地处理它......验证两个集群是否同步的最佳方法是什么?那里有任何可用的工具/方法吗?谢谢一百万
-
如果你有一个与你的记录相关的时间戳,我会在开始重新索引时记下当前状态,然后重新索引在那个时间戳之后更新的任何内容..然后再做一次,直到增量0(如果可能的话,可能与另一个维护任务一起计时并进行最后一点更新)。重复的 id 将覆盖以前的文档,但您可以使用
_version_字段进行乐观更新(即,如果内容已更新为比您提交的内容更新的版本标签,则会出错),但是我还不会花时间在这上面。